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

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

目錄
今天又是充滿希望的一天呢

一.python迴圈

1.wuile與else連用

 當while沒有被關鍵'break'主動結束的情況下 正常結束迴圈體程式碼之後會執行else的子程式碼
"""
while 條件:迴圈體程式碼
else 條件:迴圈體程式碼正常執行結束 則會執行該行子程式碼塊
"""

count = 1  # 計數
    while count < 10:  # 迴圈9次
        if count == 4:  # 到3結束因為4-1
            break  #結束本層程式碼
        print(count)  #
        count += 1
    else:
        print('gg')  # 以上條件不成立該條子程式碼執行
"""
結果: 1 2 3 
"""

2.死迴圈

 注:死迴圈有些時候會極度影響電腦的效能 甚至會造成檔案損壞
但是往往通常使用的電腦會有這種保護機制 自動關機等

count = 10
while True:
    count += 1
    print(count)
"""
結果是 10+1+1+1+1 無線迴圈
"""

3while的鑲嵌

flag = True  # 伏爾值
while flag:  # 迴圈
    username = input('username>>>:')  # 使用者輸入
    password = input('password>>>:')  # 使用者輸入
    if username == 'jason' and password == '123':  # 判斷成立的話執行該行子程式碼
        print('登入成功')
        while flag:  # 巢狀 迴圈 伏爾值為成立
            cmd = input('請輸入您的指令>>>:')  # 輸入使用者名稱
            if cmd == 'q':  # 判斷成立執行該行子程式碼
                print('下次光臨')  # 子程式碼
                flag = False  # 迴圈 伏爾值true 轉換為 false 可以變為不可以
            print('正在執行您的指令:%s' % cmd)  # 迴圈 判定不可以再次迴圈 使用者名稱輸入
    else:  # 以上條件都不成立執行該行子程式碼
        print("使用者名稱或密碼錯誤")  # 子程式碼

二.for迴圈

注:for迴圈更為簡單 使用頻率更高一般涉及到迴圈取值的時候都會考慮用for
"""
for的語法結構:for 變數名 in for 迴圈物件:#字串符, 列表, 字典, 元組, 集合。
for 迴圈每次執行都會給迴圈內的元素都賦一個變數名
變數名都應該做到:見明知意.
常見的變數名有 i, j, k, v, num, item 等等
"""

1.fuo和whlie迴圈

# 列表
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
count = 0  # 計數
while count < 5:  # 迴圈5次
    print(name_list[count])  # 提取出變數值
    count += 1  # 迴圈增量賦值
  for迴圈
# 列表
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
count = 0  # 計數
for name in name_list:  #  分別給列表中資料賦值變數名
    print(name)  # 執行
"""
'jason', 'kevin', 'tony', 'tank', 'oscar'
兩個迴圈的結果都是相同的

"""

2.迴圈字串

依次取出每一個字元
for i in 'hello world':  # 給後邊字串賦值變數名i 
    print(i)  # 執行 i
"""
結果:h o l l o w o r l d
"""

3.迴圈字元

迴圈字典只能獲取到key value無法直接獲取
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
for i in userinfo_dict:  #給後邊字典賦值變數名i
    print(i)  # 執行
"""
結果:username  age  gender
"""

4.迴圈元祖

for i in (11, 22, 33, 44, 55):  #給後邊字串賦值變數名i 
     print(i) # 執行
"""
結果:11 22 33 44 55
"""

5.迴圈元組

for i in (11, 22, 33, 44, 55):  # 給元組中的資料賦值變數名
     print(i) # 執行

6.迴圈集合

注:字典內部和集合內部元素都是無序的 因為在pucharm字典用的最多所以有優化
for i in {11, 22, 33, 44, 55, 66}:  # 括號內元素賦值變數名
    print(i)  # 執行
"""
結果:33  66 55 11 22 44
"""

三.range關鍵字

range方法在python2直譯器和python直譯器是有區分的:
在python2中range是直接產生一個列表 元素很多的情況下比較佔用空間
    	在python2中有一個xrange 其實就是python3裡面的range
  在python3中range相當於哆啦A夢的口袋 不佔空間但是可以取出很多資料
    	在python3中就只有一個range了
在whlie迴圈中
while count < 101:
     print(count)
     count += 1
在for迴圈中:
for i in range(101):  # 從0開始到100結束的資料集 顧頭不顧尾
     print(i) #執行
"""
結果都是0 - 100
for迴圈從0開始到100結束的資料集 顧頭不顧尾
range其實是個迭代器用於產生資料 節省空間
"""
# 用法1  括號內只寫一個數字  預設從0開始  顧頭不顧尾
for i in range(10):
    print(i)
# 用法2  括號內寫兩個數字  自定義起始位置 顧頭不顧尾
for i in range(1, 10):
    print(i)
# 用法3  括號內寫三個數字  第三個數字表示的是等差數列的差值  預設情況下是1
for i in range(1, 10, 2):
    print(i)
"""
結果分別為:0-9
1-9 和1 3 5 7 9

"""

四.for迴圈補充

#for+break
break結束本層for迴圈
#for+continue
continue結束本層for迴圈後直接開始下次以for迴圈
for+else
for迴圈正常結束之後執行else子程式碼
注:與while一致

五.如何檢視資料型別內建方法

可以藉助於程式設計軟體的自動提示 採用句點符快速檢視

六.資料型別的內建方法

1.int整型

1.1整型型別轉換
age = int(input('123'))
將int整型執行後結果賦值變數給age
"""
int整型方式只能轉換純數字的子串符
"""
#也可以將十進位制轉換為其他進位制
 print(bin(100))  # 0b1100100    二進位制(0b開頭)
 print(oct(100))  # 0o144        八進位制(0o開頭)
 print(hex(100))  # 0x64         十六機制(0x開頭)
#也可以將其他機制轉換為十進位制
print(int('0b1100100', 2))
print(int('0o144', 8))
print(int('0x64', 16))

2.float浮點型

1.浮點型轉換
res = float('11.11')
print(res, type(res))
"""
float浮點型方式只能轉換字串內小數或者多為小數
"""

3.str字串

str字串可以轉所有基本型別的轉換
print(str(11), type(str(11)))
print(str(11.11), type(str(11.11)))
print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
print(str({'name': 'jason'}), type(str({'name': 'jason'})))
print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
print(str(True), type(str(True)))

七.字串內用常操作

s1 = 'hello world'
1.索引取值
print(s1[2])#提取(l)
2.切片操作
print(s1[6])#提取(wo)顧頭不顧尾
3.步長
print(s1[2:9:1])#提取(llo wor)第三個引數是步長 預設是1 如果print(s1[2:9:2])#提取(lowr)那麼就是隔一個取一個
4.所引取切片擴充套件
print(s1[-1])#提取(d)獲取最後一個字元
print(s1[-1:-5:-1])#提取(dlro)倒著數也是顧頭不顧尾 
5.5.成員運算
print('ll' in s1)#(對)in成員運算裡的查詢
6.移除字串首位指定的字元(使用頻率較高)
name = '  jason  '
print(len(name))
res = name.strip()  
print(res, len(res))#提取(jason)預設移除字串首尾的空格
username = input('username>>>>:').strip() #輸入使用者名稱
if username == ' jason ': #判斷成立後執行子程式碼
     print('我太困了!!!')