迴圈與基本資料型別的內建方法
阿新 • • 發佈:2022-03-08
1. 迴圈
1. while + else迴圈
當while迴圈條件不滿足,並且沒有break主動退出的情況下,就會執行else中的子程式碼塊
語法結構:
while + 條件:
迴圈體程式碼
else:
迴圈體程式碼條件不滿足,並且不被主動退出時,執行的子程式碼塊
while與else 程式碼示例 count = 1 while count < 3: print(count) count += 1 else: print('while迴圈已結束')
2.
while巢狀示例 data = ['jason|123', 'tony|123', 'tank|123'] count = 1 flag = True while flag: input_username = input('請輸入使用者名稱: ').strip() input_password = input('請輸入密碼: ').strip() for name_pwd indata: username, pwd = name_pwd.split('|') if username == input_username and pwd == input_password: while flag: input_print = input('請輸入執行的命令: ').strip() if input_print == 'exit': flag = False else:print(input_print) if flag: print('賬號密碼錯誤,還有%s次機會' % (3 - count)) count += 1 if count == 4: is_again = input('是否繼續:y/n') if is_again == 'y': count = 1 else: break
3. 死迴圈
死迴圈就是永遠無法結束的迴圈並且一直佔用CPU工作
死迴圈示例 count = 1 while True: count += 1 count *= 100
4.
while迴圈可以做到,那麼for迴圈可以做到的事情,但是for迴圈語法更加簡單 ps:一般情況下涉及到迴圈取值的時候 都會考慮使用for迴圈而不是while迴圈
語法結構:
for 變數名 in 迴圈物件: ps:迴圈物件可以為字串,元組,列表,集合,字典
for迴圈的迴圈體程式碼
注: 每次執行迴圈都會將變數名指向新的記憶體空間,並且會將迴圈物件中的一個元素賦值給變數名
for迴圈示例 # 如果for迴圈,迴圈物件是字串,那麼會將字串中每個字元,一個個取出 for i in 'lisi': print(i) >>>'l' >>>'i' >>>'s' >>>'i' # 如果for迴圈的迴圈物件是列表,那麼會將列表中每個元素逐一取出 index_list = [1, 2, 3, 4] for index in index_list: print(index) >>>1 >>>2 >>>3 >>>4 # 如果for迴圈的迴圈物件是字典,那麼會將字典的key值逐一取出,但是value無法直接獲取 userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'} for i in userinfo_dict: print(i) >>>username >>>age >>>gender # 如果for迴圈的迴圈物件是元組,那麼會將元組中每個元素逐一取出 for i in (1, 2, 3, 4, 5): print(i) >>>1 >>>2 >>>3 >>>4 >>>5 # 如果for迴圈的迴圈物件是集合,那麼會將集合中每個元素逐一取出 for i in {11, 22, 33, 44, 55}: print(i) >>>11 >>>22 >>>33 >>>44 >>>55 # 迴圈字典與集合內部的元素都是無序的,但是使用pycharm,那麼會發現字典中迴圈出來是按順序的,因為字典比較熱門,所以pycharm對字典輸出進行了優化
# for+break break結束本層for迴圈 與while + break用法一致 示例 for i in [1, 2, 3, 4, 5]: if i == 4: break print(i) # for+continue continue結束本次for迴圈 直接開始下一次 與while + continue用法一致 示例 for i in ['tony', 'tank', 'egon', 'alex']: if i == egon: continue print(i) # for+else for迴圈正常結束之後執行else子程式碼 與while + else用法一致 示例 for i in [1, 2, 3, 4, 5]: print(i) else: print('迴圈結束')
5.資料型別的內建方法
5.1 int整型的內建方法
1.型別轉換 能將字串轉換成int型別(字串必須是純數字的字串) 示例: print(int('11')) >>>11 print(int('11.1')) >>>報錯 因為此字串除了數字還有.號 2.進位制數轉換
示例:
# 將其他機制轉換成十進位制 print(int('0b110010', 2)) >>>50 print(int('0o62', 8)) >>>50 print(int('0x32', 16)) >>>50
5.2 float浮點型內建方法
型別轉換 print(float('11.11')) >>>11.11 # float型別的型別轉換能轉換純數字與.號的字串 print(float('11')) >>>11.0 # 當型別轉換的字串是存數字組成,那麼轉換後,會在末尾增加.0,代表是浮點型
5.3 str
1.型別轉換 # 字串的型別轉換是可以轉換所有基本資料型別 print(str(11)) >>>'11' print(str(11.11)) >>>'11.11' print(str([1, 2, 3, 4])) >>>'[1, 2, 3, 4]' print(str({'name': 'jason'})) >>>"{'name': 'jason'}" print(str((1, 2, 3, 4))) >>>'(1, 2, 3, 4)' print(str({1, 2, 3, 4})) >>>'{1, 2, 3, 4}' print(str(True)) >>>'True' text = 'hello world' # 1.索引取值 print(text[4]) >>>'o' # 2.切片操作 # 顧頭不顧尾,只能獲取頭部,但是尾部的索引是獲取不到的 print(text[1:4]) >>>'ell' # 3.步長 則為規定的數字-1就是間隔數 print(text[1:9:1]) # 第三個引數是步長 預設是1 依次獲取 >>>'ello wor' # print(text[2:9:2]) # 間隔一個取一個 >>>'lowr' # print(text[2:9:3]) # 間隔兩個個取一個 >>>'l r' # 索引取切片擴充套件 # 第三個引數還可以控制索引的方向 如果為負數,則是從右往左,預設為從左往右 # print(text[-1] # 如果第一個與第二個引數為負數,那麼就是從左邊開始取值 >>>'d' # print(text[-1:-5:-1]) >>>'dlro' # print(text[-5:-1]) >>>'worl' # 4.統計字串中字元的個數 print(len(text)) >>>11 # 6.移除字串首位指定的字元(使用頻率較高) name = ' lisi ' res = name.strip() # 預設移除字串首尾的空格,如果填寫了單詞,那麼就會移除你填寫的單詞 print(res) >>>'lisi' # 7.按照指定的字元切割字串 # 字串被切割完之後,形成的是一個列表 data = 'jason|123|DBJ' print(data.split('|')) >>>['jason', '123', 'DBJ']