Python:流程控制及內建方法
Python:流程控制及內建方法
流程控制之while+else
昨天我們講了結束while迴圈可以加關鍵字“break”,那麼while+else的用法呢就是在沒有用關鍵字“break”的情況下,while迴圈正常結束,就可以執行else程式碼。來看一下程式碼結構:
''' while 條件: 迴圈體程式碼 else: while迴圈正常結束執行的程式碼 '''
我們可以來看一段程式碼,可以更加直觀的瞭解它:
count = 0 while count < 10: print(count) count += 1 # break # 如果在這裡加一個break下面的程式碼就不會執行else: print('正常結束可以執行程式碼')
流程控制之while巢狀
while巢狀就是字面意思,while迴圈裡面巢狀一個while迴圈,用程式碼來演示一下:
count = 0 is_teg = True while is_teg: while count < 3: username = input('輸入你的使用者名稱>>:') password = int(input('輸入你的密碼>>:')) if username == 'oscar' and password == 123:print('登入成功') break else: print('登入失敗') count += 1 if count == 3: again = input('你的次數用完了,是否繼續(y/n)>>:') if again == 'y': count = 0 else: is_teg = False
死迴圈
死迴圈這個我們也是要講一下的,死迴圈就是一直無法結束的迴圈,一直佔用CPU工作,會造成電腦的卡頓,嚴重的會損傷硬體。看一段簡單的死迴圈程式碼:
# 這就是最簡單的一段死迴圈程式碼,一直列印1,不會結束 while True: print(1)
流程控制之for迴圈
for迴圈能做的是while迴圈都做得到,那為什麼還要學習for迴圈呢,那是因為for迴圈更簡潔,使用率更高。先來看一下它的語法結構:
''' for 變數名 in for迴圈對像: # 字典、字串、元組、集合、列表 for迴圈的迴圈體程式碼 ''' # 每次迴圈都會將for迴圈物件中的元素賦值給變數名
一般情況下有關取值的我們都用for迴圈,很少用while迴圈,來看一個例子:
# 取出name中的元素 name = ['oscar', 'jason', 'tony'] # while迴圈 count = 0 while count < 3: print(name[count]) count += 1 # for迴圈 for i in name: print(i)
我們可以看到while迴圈要四行程式碼才能完成的,for迴圈兩行就可以,而且while還存在一些弊端,一旦“name”的元素數量比較大,while迴圈的劣勢就會更加明顯。
for迴圈字串型別,列印字串的所有字母
# for迴圈字串,列印所有字母 count = 'oscar' for i in count: print(i)
for迴圈字典
for迴圈集合
range關鍵字
如果我們想要列印0-100,我們可以分別用while迴圈和for迴圈先看一下:
# 列印1-100 #while迴圈 count = 0 while count < 101: print(count) count += 1 # for迴圈 for i in range(101): print(i)
可以看到for迴圈是非常簡潔的,但是也引出了一個新的知識點“range”關鍵字,“range”是一個迭代器,用於產生資料集,但是節省記憶體空間,它的取值方法式“顧頭不顧尾”。“range”在python2和python3中是有區別的:
python2中的range是直接產生一個列表,佔有記憶體空間大。
但是python2中的“xrange”是跟python3中的“range”一樣的。
python3中的“range”就是產生一個數據集,佔用記憶體空間小。
for+break迴圈
break結束本層迴圈。
# for+break for i in range(10): print(i) break # 沒有break的時候列印0-9,加了break列印0之後遇到break直接結束for迴圈
for+continue迴圈
continue結束本次迴圈。
# continue+for for i in range(10): if i == 4: continue # 當i等於4的時候遇到continue直接結束,開始下輪迴圈 print(i)
for+else迴圈
for迴圈正常結束之後執行else的語句。
# for+else迴圈 for i in range(10): print(i) else: print('正常結束可以列印的')
內建方法:整型(int)
整型的內建方法有型別轉換和進位制數轉換。
型別轉換(只能轉換純數字不帶小數點的字串):
進位制數轉換:
1.將十進位制轉換成其它進位制:
print(bin(100)) # 0b1100100 二進位制(0b) print(oct(100)) # 0o144 八進位制 (0o) print(hex(100)) # 0x64 十六進位制 (0x)
2.將其它進位制轉換成十進位制:
print(int('0b1100100', 2)) print(int('0o144', 8)) print(int('0x64', 16))
內建方法:浮點型(float)
型別轉換(只能轉換純數字的字串):
內建方法:字串(str)
1.型別轉換
字串可以轉換所有的基本資料型別。
2.索引取值
可以跟列表一樣根據下標索引取值。
name = 'oscar' print(name[1])
3.切片
可以取指定的值。
# 取hello name = 'oscar hello' print(name[6:11]) # 顧頭不顧尾
4.步長
間隔多少個步長取一個值。
5.統計字串中字元的個數
# 統計字串的個數 name = 'oscar hello' print(len(name))
6.成員運算
判斷某個字串在不在某個字串裡面。
7.移除字串首位指定的字元
8.按照指定的字元切割字串
URL = '127.0.0.1' print(URL.split('.')) # 根據句點符切割 print(URL.split('.', 2)) # 可以指定切割的次數
這裡是IT小白陸祿緋,歡迎各位大佬的指點!!!