1. 程式人生 > 其它 >迴圈與基本資料型別的內建方法

迴圈與基本資料型別的內建方法

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的巢狀

    語法結構:

      while + 條件1:

        迴圈體程式碼

        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 in
data: 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. for迴圈

    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']