python入門,300行代碼例子


此隨筆是微信公眾號:Python技術迷文章內容,只用於學習使用。

1、目標讀者

 

為了讓這篇博文看着正式些,我得說一下本文的目標讀者:

 

  • 沒有了解過python,但有其他語言基礎的讀者

  • 了解部分python基礎語法,但是沒有編過程序練習的讀者

  • 完全沒有了解過python,但是知道部分程序理論的讀者

  • 完全不懂程序,准備入門python的(不是很推薦)

  • 當然,如果你是python的大佬,還請大佬幫忙指出程序中不合理的地方。

 

2、 這個例子長啥樣

 

寫在程序之前

 

整個程序包含了138個知識點,哈哈,不要看着知識點多,其實每個知識點在代碼中我就寫了一句。所以這些知識點也就138行代碼。

 

在python,可以利用#號進行注釋,我的程序里面也都會采取#來講解代碼含義。同時給予知識點的編號。

 

並且,python利用代碼間的縮進表示隸屬關系,簡單來說如下

i =int(input())
if i>0:
    print('hello world')  #一定要有之前的縮進,以表示這條語句屬於if
else:
    print('world hello')

 

  好了,接下來給出我的300行例子吧👇

注:如果是初學,可以將每個函數單獨截取閱讀並運行查看。當然咯,代碼不能光讀不寫,一定要動手去編。如果不動手編,可能看完運行完你依舊還是不是很懂(本例子可以直接跟着指令直接運行)

  1 #注:在python中需要注意代碼之間的縮進,通常以一個tab的距離表示隸屬關系
  2 
  3 
  4 import os #1、利用import語句進行導入模塊,用逗號分隔可以導入多個包
  5 import math,copy,random,time
  6 from collections import Counter  #2、利用from...import ....進行導入
  7 import numpy as np  #3、利用as關鍵字重命名包名,以后再使用就可以直接用np了
  8 
  9 
 10 def hello_world():  #4、利用def關鍵字創建函數,簡單來說:函數就是將具有獨立功能的代碼塊組織成一個模塊,需要的時候調用
 11 #創建函數格式:def name(參數1,參數2....):
 12 yourname = input('你好,請輸入你的名字:')  #5、輸入函數,input(),若input中有字符串可以輸出
 13 print('歡迎來到Python的世界,',yourname)  #6、輸出函數,print(),若要輸出多個對象,利用逗號分隔
 14 print('讓我們開始學習吧~')
 15 
 16 
 17 def hello_twice():
 18 global yourname,yourheight,yourweight  #7、利用global關鍵字定義全局變量,使之在整個程序運行周期能夠被調用
 19 yourname = input('請輸入你的名字:')
 20 yourheight = input('請輸入你的身高:')
 21 yourweight = input('請輸入你的體重:')
 22 
 23 
 24 #python中字符串的部分操作
 25 def deviding_line():
 26 word1 = 'i am line'  #8、字符串的創建,利用單引號' 或者雙引號" 進行創建
 27 word2 = word1.upper()  #9、字符串的函數,利用運算符.進行調用,該語句中的upper()可以將字符串轉換為全大寫字母
 28 word3 = word1.lower()  #10、lower()函數,將字符串轉換為全小寫
 29 word4 = word1.title()  #11、title()函數,可以將字符串標題化
 30 #以上三個函數僅為字符串的部分函數
 31 words = [word1,word2,word3,word4]  #12、[]可以創建一個列表,列表可以存放很多的對象
 32 line = '-' * 40  #13、利用*運算符創建串,這里就是有40個-符號
 33 
 34 
 35 endReturn = line+words[random.randint(0,3)]+line #14、字符串可以利用+號直接相連
 36 #15、上面出現的random.randint()可以創建隨機整數,0和3為隨機數的上下限
 37 return endReturn  #16、函數返回值,可以在被調用時將這個值返回
 38 
 39 
 40 #學習python中的數字模型
 41 def study_number():
 42 num1 = input('請輸入一個數字:')
 43 print('你輸入的是數字%s'%num1,'可它的類型為:',type(num1)) #17、輸出函數格式控制
 44 #18、type()函數可以返回該值的類型
 45 num2 = int(input('再輸入一個數字:'))  #19、利用int()函數進行數值類型轉換,將數字轉換為int整型
 46 print('你輸入的是數字%s' % num2, '它的類型為:', type(num2))
 47 num3 = float(input('再輸入一個數字:'))  #20、float()函數可以轉換為浮點數類型
 48 print('你輸入的是數字%s' % num3, '它的類型為:', type(num3))
 49 print('num1+num2={}'.format(int(num1)+num2)) #21、數字加法
 50 # 22、format()函數格式化輸出,在字符串中的{}符號將被替換為format()的參數
 51 print('num1-num2={}'.format(int(num1)-num2))   #23、數字減法
 52 print('num1*num2={}'.format(num1*num2)) #24、num1*num2並不會是你想要的數據,因為input()函數,默認輸入為字符類型
 53 print('num1*num2={}'.format(int(num1) * num2))  #25、數字乘法
 54 print('num2//num3={:.3f}'.format(num2//num3)) #26、數字整除,同時{:.3f}表示輸出格式小數點后面保留三位
 55 print('num2/num3={:.4f}'.format(num2/num3)) #27、數字除法,保留小數點后四位
 56 print('num2%num3={:.4f}'.format(num2 % num3)) #28、求余數
 57 print('num2%num3={:.4%}'.format(num2%num3)) #29、求余數,{:.4%}輸出格式為百分比格式
 58 print('num1**num2={}'.format(int(num1)**num2))  #30、冪運算
 59 print('This is the {a},and {b}'.format(a='numbers',b='some operations')) #31、format多參數,標記位置對應輸出
 60 
 61 
 62 one,two,three = True,True,False  #32、bool值
 63 print(one,two,three)
 64 print('and運算符:',one and two,one and three) #33、and運算,當兩個值同時為真時才為真
 65 print('or運算符:',one or two,one or three) #34、or運算符,當兩個值同假時為假
 66 print('not運算符:',not one,not two,not three)  #35、not運算符,得到相反的值
 67 
 68 
 69 #學習python中的列表模型
 70 def study_list(length): #36、帶有參數的函數
 71 l1 = [1,2,3,4,5,9.0]   #37、創建列表,利用符號[]
 72 l2 = list(range(10,10+length))  #38、創建列表,也可以用list()
 73 #39、range()函數,可以創建一個整數列表,格式為range(start,end,step),start為開始位置,end為結束位置,前閉后開,step為步長
 74 print('l1的類型為:',type(l1))
 75 print(l1[1],l2[1])  #40、訪問列表值,可以直接用list[num]的方式進行訪問
 76 l3 = l2  #41、將l2的引用賦給l3
 77 print(id(l1),id(l2),id(l3)) #42、id()函數可以獲取對象的內存地址,在這里可以看到l3的的地址和l2是一樣的
 78 l3[0]=99  #43、更新列表值
 79 print('l2==l3么?',l2==l3)   #44、更新l3后依舊等於l2,因為l3和l2本來就是一個對象,不過換了個名字
 80 l4 = l2.copy()  #45、復制一個l2給l4,copy()創建一個一模一樣的列表
 81 l4[0]=999
 82 print('l4==l2么?',l4==l2)  #46、此時l4不等於l2
 83 print('刪除前',l4)
 84 del l4[0]  #47、del語句進行刪除列表值,在python中del可以刪除所有的變量
 85 print('刪除后',l4)
 86 l4.append(30)  #48、給列表添加值
 87 l4.extend(l1)  #49、給列表追加一個序列多個值
 88 print('添加l1后:',l4)
 89 l4.reverse()  #50、列表反轉
 90 print('反轉后:',l4)
 91 l4.sort()  #51、sort()函數,將列表進行排序
 92 print('排序后:',l4)
 93 
 94 
 95 #學習python中的元組模型
 96 def study_tuple(length:int)->bool:  #52、解釋參數類型的函數創建,->為返回值類型
 97 tuple1 = (1,2,3,4)  #53、創建元組,利用()符號,元組的特性是不可以改變
 98 tuple2 = tuple(range(10,10+length))  #54、利用tuple創建元組
 99 
100 
101 print(tuple1.count(1))  #55、元組函數count(),用於輸出某個值的數量
102 print(tuple1.index(1)) #56、元組函數index(),可以按照索引得到值
103 try:    #57、python中的異常處理,try:語句內部如果出現錯誤則會轉入到except中
104 tuple1[0] = 9  #58、因為元組的不可改變性,所以該語句會出錯
105 except TypeError:
106 print('元組插入失敗')
107 finally:  #59、finally內語句不管是否出現錯誤都會執行
108 print('不管插入成不成功我都會執行')
109 
110 
111 try:
112 print(id(tuple1),id(tuple2))
113 except:
114 return False
115 else:
116 tuple3 = tuple1+tuple2  #60、元組雖然不可改變,但是可以通過+號進行合並為另一個元組
117 print(tuple3,id(tuple3))
118 return True
119 
120 
121 def study_dict():  #學習python中的字典模型,字典是  鍵->值 的映射
122 dict1 = {1:'',2:'',3:'',4:''}  #61、以下為創建字典的5種方法
123 dict2 = dict(one=1,two=2,three=3)
124 dict3 = dict(zip([6,7,8,9],['Six','Seven','Eight','Nine']))
125 dict4 = dict([('One',1),('Two',2),('Three',3)])
126 dict5 = dict({1:'',2:'',3:'',4:''})
127 print(type(dict1),dict1==dict5)  #62、可以看到,dict1和dict5是等價的
128 print(dict1[1],dict2['one'],dict3[6],dict4['One'],dict5[1])  #63、通過字典的鍵訪問
129 print(dict1.get(4)) #64、通過get函數訪問內容
130 
131 
132 dict1[1] = '' #65、修改字典內容
133 dict1[5] = '' #66、添加字典
134 print(dict1)
135 print(1 in dict1, 6 in dict1, 7 not in dict1) #67、in和not in關鍵字,可以判斷值是否在序列中
136 dict6 = dict1.copy()  #68、字典的復制
137 dict6[1] = 'One'
138 print(dict1,'<dict1------------dict6>',dict6)
139 
140 
141 dict1.clear() #69、字典的清空
142 print(dict1)
143 del dict1,dict2,dict3,dict4,dict5,dict6 #70、刪除字典,也可以用del dict[key]的方式刪除某個鍵
144 
145 
146 def study_set(): #python中集合的學習,集合中不存在相等的值
147 set1 = set(['You','Are','Not','Beautiful']) #71、利用set()函數進行創建集合
148 set2 = {'You','Are','So','Beautiful'}  #72、利用{}創建集合,創建空集合的時候不能用{},因為{}表示字典
149 set3 = set2.copy() #73、集合的復制
150 
151 
152 print(type(set1))
153 print(set1,set2)
154 print(set1|set2)  #74、集合或運算符,得到兩個集合中所有元素
155 print(set1&set2)  #75、集合與運算符,得到兩個集合共同元素
156 print(set1^set2)  #76、不同時包含於set1和set2的元素
157 print(set1-set2)  #77、集合差運算,得到set1有,set2沒有的元素
158 print(set1<=set2,set3<=set2,set3<set2)  #78、<=符號,判斷是否為子集,<符號,判斷是否為真子集
159 
160 
161 
162 
163 set1.add('Me too') #79、集合添加元素
164 print('is語句用法',set3==set2,set3 is set2,set1 is not set2) #80、is和is not語句,is語句用於判斷對象是否一樣,==判斷值是否一樣
165 set3.clear()  #81、清空集合,集合變為空
166 print(set3)
167 del set3
168 
169 
170 def study_Some_functions(): #python中一些函數
171 list1 = [1,2,3,4,5,6]  #同學們,眼熟不,這就是之前的列表,下面的這些大家都認認是啥
172 tuple1 = (11,12,13,14,15,16)  #元組
173 set1 = set(list1)  #集合
174 dict1 = dict(zip([1,2,3,4,5],['one','Two','Three','Four','Five']))  #字典
175 
176 
177 print(max(list1),max(tuple1),max(set1),max(dict1))  #82、max()函數,得到序列中最大值
178 print(min(list1),min(tuple1),min(set1),min(dict1))  #83、min()函數,得到最小值
179 print(sum(list1),sum(tuple1),sum(set1),sum(dict1))  #84、sum()函數,得到序列和
180 print(len(list1),len(tuple1),len(set1),len(dict1))  #85、len()函數,得到序列長度
181 print(divmod(list1[0],tuple1[0]))  #86、divmod()函數,計算兩個數的商和余數,結果兩個格式為(商,余數)
182 print(list(enumerate(tuple1)))  #87、enumerate(),給元組添加一個索引
183 
184 
185 list2 = list(tuple1)  #88、利用list()將元組,字典等等轉換為列表
186 list3 = list(set1)
187 list4 = list(dict1)
188 tuple2 = tuple(list1)  #89、利用tuple()將列表,字典等轉換為元組
189 
190 
191 print(list2,list3,list4)
192 
193 
194 for i in range(len(list1)):  #90、for循環語句
195 print(list1[i],end=' ')  #91、print的屬性end,可以使輸出格式為end的內容,而不是默認換行
196 print()
197 for i in dict1:  #92、for循環遍歷
198 print(i,dict1[i],end=' ')
199 
200 
201 list5 = list(reversed(list1))  #93、reversed()函數,可以反轉序列
202 print('\n',list5)  #94、\n,換行符
203 
204 
205 testStr = "The mountains and rivers are different, the wind and the moon are the same"
206 words = testStr.split(' ')  #95、split()函數,以split()內參數分割字符串,返回一個列表
207 print(words)
208 words.sort(key=len)  #96、sort()函數,進行排序,參數key=len時,以字符串長度為標准排序
209 print('以長度排序:',words)
210 words.sort(key=len, reverse=True)  #97、reverse參數,結果反轉
211 print('以長度排序並且反轉:', words)
212 words.sort(key=str)  #98、以字典序進行排序
213 print('以字典序排序:',words)
214 
215 
216 ct = Counter(testStr)  #99、collections模塊中的Counter,可以得到字符串中每個數字出現次數
217 print(ct)
218 ct.update('eeeexxxxxlllll')  #100、更新
219 print(ct)
220 print(ct.most_common(5))  #101、得到字符數最多的前五位
221 
222 
223 def study_Slice():  #python的切片操作,得到序列的部分內容
224 str1 = 'I hope one day, I can find you, my sweet dream'
225 list1 = list(range(10))
226 tuple1 = tuple(list1)
227 
228 
229 print(str1[:])  #102、切片格式為str[start:end:step],前閉后開,step可為正負,默認步長為1
230 print(str1[::-1])  #103、當步長為負數的時候,反轉
231 print(str1[:15])  #104、只有end時,截取最開始到end
232 print(str1[15:])  #105、只有start時,截取從start到末尾的所有字符
233 print(str1[::2])  #106、步長為2
234 print(str1[1::2])
235 
236 
237 print(list1[:])  #107、和str一樣
238 print(list1[2:])
239 print(list1[:2])
240 print(list1[::-1])
241 
242 
243 list1[1:5] = [10] #切片賦值,右邊必須為一個可以遍歷的序列
244 #list1[1:5] = 10   這樣就會報錯
245 print(list1)
246 
247 
248 def study_loop_select():  #python中的循環和選擇語句
249 list1 = [1,2,3,4,5]
250 num = int(input('while循環,輸入你想要循環的次數:'))
251 i = 1
252 while i<=num:  #108、while expression:當expression為真的時候進行循環
253 if i<5:  #109、if...elif...else選擇語句,如果判斷結果只有兩個,可以使用if...else
254 print('我打印了',i,'')
255 elif i<10:
256 print('打印了',i,'次,真累啊')
257 elif i<15:
258 print('打印太多啦,再打印我就要停止了...')
259 elif i<20:
260 print('continue...')
261 i+=1
262 continue   #110、continue語句,用在循環中,continue后的所有語句都不允許,直接進入下次循環
263 print('我想我可能輸出不了了')
264 else:
265 print('累死我了,休息。都',i,'次了~_~')
266 break  #111、break語句,運用在循環中,直接退出循環,所以,在本例子中,這個循環最多循環20次
267 i+=1
268 time.sleep(0.5)  #112、time庫為python中的時間庫,time.sleep(second)可以使程序暫停運行second秒
269 else:  #113、while循環后接一個else語句,當執行完所有循環后執行一次,可以省略(個人感覺用處不大)
270 print('while結束了')
271 
272 
273 for i in list1:   #113、for循環,上面代碼有用到過
274 print(i,end=' ')
275 print()
276 for i in range(5):
277 print(i)
278 
279 
280 
281 
282 def study_expression_deduction(): #114、python表達式推導
283 list1 = [i for i in range(10)]   #115、利用該語句推導出列表
284 list2 = [x for x in range(20) if x%2==0]  #116、語句中增加if,滿足if后表達式的才會是列表
285 print(list1,'<list1--------------list2>',list2)
286 
287 
288 print(deviding_line())  #117、函數可以在任何地方被調用,如果是自己調用自己就可以稱為遞歸調用
289 
290 
291 list3 = [['_'] * 3 for i in range(3)]
292 print(list3)
293 
294 
295 fruits = ['Apple','Banana','Pear']
296 colors = ['Red','Yellow','Green']
297 suitcolor = [(color,fruit) for color,fruit in zip(colors,fruits)] #118、兩個列表合並
298 print(suitcolor)
299 cartesian = [(color,fruit) for color in colors for fruit in fruits] #119、兩個列表的笛卡爾積
300 print(cartesian)
301 
302 
303 dict1 = {fruit:color for fruit,color in suitcolor}  #120、字典的推導,只要是帶有鍵值對的任何序列,都可以推導出字典
304 print(dict1)
305 
306 
307 def study_files():
308 filepath = input('請輸入你的文件路徑(輸入quit退出):')
309 if filepath=='quit':
310 return True
311 try:
312 file = open(filepath,'w') #121、打開文件,'w'為寫格式打開
313 file.write('哈哈,現在開始寫文件')  #122、向文件寫入字符串
314 file.close()  #123、關閉文件
315 file = open(filepath,'r')  #122、以'r'讀格式打開
316 print('從文件中讀出的內容:\n',file.read())  #123、read()函數可以得到文件內容
317 except FileNotFoundError:
318 print('文件未找見請重新輸入')
319 study_files()  #124、這就是上面所說的遞歸調用
320 except:
321 print('出現錯誤,請重新輸入路徑')
322 study_files()
323 
324 
325 class Users():  #125、面向對象編程,python中創建類class,類包含有屬性與方法,包括有私有變量,共有變量等等
326 def __init__(self,name,height,weight):  #126、類的構造方法,創建實例時自動調用
327 self.name = name
328 self.height = height
329 self.weight = weight
330 self.yanzhi = 100
331 
332 
333 def display(self): #127、類方法
334 print('大家好,我是{},身高{},體重{},顏值超高{}'.format(self.name,self.height,self.weight,self.yanzhi))
335 
336 
337 if __name__=="__main__":  #128、無論之前有什么,程序都會從這里開始運行
338 hello_world()  #129、所以這是運行的第一句,調用該函數
339 deviding_line()
340 try:
341 print(yourname)  #130、調用完hello_world()函數后,因為在hello_world()函數內部有一個yourname變量,所以我們進行輸出,看在這里能不能找見這個變量
342 except:
343 print('  未能找見該變量  ')#131、不可能找見這個變量的,因為yourname是局部變量,只存在於hello_world()函數內部
344 deviding_line()
345 hello_twice()  #132、因為在該函數中定義了global語句,所以該函數中的變量在以下程序中都可以使用
346 
347 
348 user = Users(yourname,yourheight,yourweight) #133、實例化對象,創建Users類的實例
349 user.display()  #134、對象調用方法
350 
351 
352 #135、在python中,可以用三引號進行多行注釋,但是如果用變量接收注釋的話也可以是一個有格式的字符串,如下
353 chooseinformation = '''Input the number of the function you want to Run(quit is exit):
354 1、study_number2、study_list
355 3、study_tuple4、study_dict
356 5、study_set6、study_Some_functions
357 7、study_Slice8、study_loop_select
358 9、study_expression_deduction
359 10、study_files    
360 '''
361 deviding_line()
362 while True: #136、while循環進行運行程序,只有當輸入quit時才會退出循環(不過你強制退出當然也可以退出)
363 input('按鍵繼續') #137、為了讓輸出不那么快,等待按鍵后才輸出以下內容
364 print(chooseinformation)
365 num = input('輸入序號:')
366 #138、在以下if...elif...else選擇中,我們來選擇運行不同的函數
367 if num=='quit':
368 break
369 elif num=='1':
370 study_number()
371 elif num=='2':
372 study_list(10)
373 elif num=='3':
374 study_tuple(10)
375 elif num=='4':
376 study_dict()
377 elif num=='5':
378 study_set()
379 elif num=='6':
380 study_Some_functions()
381 elif num=='7':
382 study_Slice()
383 elif num=='8':
384 study_loop_select()
385 elif num=='9':
386 study_expression_deduction()
387 elif num=='10':
388 study_files()
389 deviding_line()
390 print('哈哈,恭喜你,這個程序結束咯~')

這個程序里面包含了python的一些基本語法,比如說有幾種常見數據結構:列表,元組,字典,集合,字符串,也有他們的基本操作,有面向對象的類,循環語句,選擇語句,函數的創建,包的導入,文件的讀取,切片,表達式推導。

 

但是這依舊是python中最基礎的部分,如果想要精通一門語言,沒有自己的親自實踐,不一行行的去敲打鍵盤,不一個bug一個bug的去尋找,永遠也難以掌握它的精髓。

 來源:https://blog.csdn.net/the_sangzi_home/article/details/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM