一、for循環
1、for循環是Python中的第二種循環機制
理論上for循環能做的事情,while循環都可以做,用for循環是因為在(遍歷取值)上比while循環更簡潔。
2、for循環的語法
語法:
for 變量名 in 可迭代對象: (可迭代對象可以是:列表、字典、字符串、元組、集合)
代碼1
代碼2
代碼3
二、與while循環對比
需求:讀取列表值並打印出來
點擊打開 示例
# 例1:循環列表取值
# 簡單版:
l = ['v1_xx', 'v2_xx', 'v3_xxx', 'v4_xxx']
for x in l:
print(x)
# 簡單版 輸出結果
# v1_xx
# v2_xx
# v3_xxx
# v4_xxx
# ========================================
# 復雜版:
l1 = ['v1_xx', 'v2_xx', 'v3_xxx', 'v4_xxx']
i = 0
while i < 4:
print(l1[i])
i += 1
# 復雜版輸出
# v1_xx
# v2_xx
# v3_xxx
# v4_xxx
# =======================================
'例2:循環字典取值'
# 簡單版:
dic = {'k1': 1111, 'k2': 2222, 'k3': 3333}
for k in dic:
print(k, dic[k])
# 結果輸出
# k1 1111
# k2 2222
# k3 3333
# 復雜版:while循環可以遍歷字典過於麻煩,不推薦使用
# ==================================
'案例3: 字符循環取值'
# 簡單版
msg = "you er message"
for x in msg:
print(x)
# 結果輸出
# y
# o
# u
#
# e
# r
#
# m
# e
# s
# s
# a
# g
# e
1、相同之出:都是循環,for循環可以做的,while也循環也可以做。
2、不同之處:while循環為條件循環,循環次數取決於條件何時變假;
for循環為“取值循環”,循環次數取決與in后包含值的個數;
三 、for 循環的循環次數
for x in 'abc': # 這里的值是三個,那么下面的代碼會循環3次
inp_name = input('請輸入你的賬號:')
inp_pwd = input('請輸入你密碼:')
但這種方式存在是有缺陷的,我們可以用Python的Range來產生值控制循環次數。
-
for 循環之 range功能
range功能就是按照安置定制造出值來
for i in range(10) # 類似於造出了一個[0,1,2,3,4,5,6,7,8,9]的列表取值0到9,共10個元素,顧頭不顧尾!
print(i) #輸出結果 0 ...5....9
-
for 循環之結束循環
for + break:同while循環一樣
for + else: 同while循環一樣
for + while + break + else 示例
username = 'hyjkk'
password = '123456'
for i in range(3): #3次循環條件
inp_name = input('請輸入你的賬號:')
inp_pwd = input('請輸入你的密碼:')
if inp_name == username and inp_pwd == password:
print('登錄成功')
while True:
cmd = input("需要執行的命令")
if cmd == 'exit': # 退出整個程序,循環結束
print('程序退出')
break # 結束內部while循環
else:
print('代碼{xxx}正在運行'.format(xxx=cmd))
break # 內部循環結束后,運行到這行,結束主循環
else:
print('賬號或密碼錯誤')
else: # 判斷條件3次循環結束后,運行。
print("3次錯誤,請一小時后再試")
以上代碼 在賬號密碼輸錯3次后會通過range(3)三次限制結束循環,並通過else提示輸錯三次錯誤。
四、補充
1、for搭配range,可以按照索引取值,但是需要自己去數元素的索引數量。
可以搭配 len() 關鍵字來實現 自動遍歷。
點擊看 示例
l=['aaa','bbb','ccc'] # len()竅門
for i in range(len(l)):
print(i,l[i])
# 輸出結果
aaa
bbb
ccc
2、Python 3 以后對range做了優化;
原理:
不再像以前的版本把設置好的值,制造好了以后放到容器里。Python 3 以后的版本是需要多少值就制造多少直接給你,提升了內存使用效率。
五、for + continue 的應用
比while循環要簡潔一點
點擊看 示例
for i in range(6): # 不管情況如何 這里只循環6次
if i == 4: # i等於4時,執行continue。
continue
print(i)
# 輸出結果
# 0
# 1
# 2
# 3
# 5
六、for 循環嵌套
for循環嵌套;外層循環一次,內層需要循環完成,再循環外層的次數。
點擊看 示例
for i in range(3):
print('外層',i)
for j in range(5):
print('內存',j)
'# 輸出結果'
# 外層 0
# 內存 0
# 內存 1
# 內存 2
# 內存 3
# 內存 4
# 外層 1
# 內存 0
# 內存 1
# 內存 2
# 內存 3
# 內存 4
# 外層 2
# 內存 0
# 內存 1
# 內存 2
# 內存 3
# 內存 4
補充:終止for循環只有break一種方案!!!