python3筆記(四)while迴圈、for迴圈
阿新 • • 發佈:2018-12-10
Python中有兩種迴圈,分別為:for迴圈和while迴圈。
while迴圈
while 語句的基本用法如下:
while 條件表示式:
迴圈體
while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。比如我們要計算100以內所有奇數之和,可以用while迴圈實現:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
在迴圈內部變數n不斷自減,直到變為-1時,不再滿足while條件,迴圈退出。
例項程式碼:
'''
作者:Wei
日期:2018/9/15 17:20
Python版本:3.7
'''
import random
times = 3
secret = random.randint(1,10)
print('------------------遊戲開始------------------')
# 這裡先給guess賦值(賦一個絕對不等於secret的值)
guess = 0
# print()預設是列印完字串會自動新增一個換行符,end=" "引數告訴print()用空格代替換行
print("請猜一個數字:", end=" ")
while (guess != secret) and (times > 0):
temp = input()
guess = int(temp)
times = times - 1 # 使用者每輸入一次,可用機會就-1
if guess == secret:
print("猜中了!!!")
print("哼,猜中了也沒有獎勵!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 0:
print("再試一次吧:", end=" ")
else:
print("機會用光咯T_T" )
print("遊戲結束,不玩啦^_^")
for迴圈
for 語句的基本用法如下:
for 迭代變數 in 物件:
迴圈體
其中,迭代變數用於儲存讀取出的值;物件為要遍歷或迭代的物件,該物件可以是任何 有序的序列物件,如字串、列表和元組等;迴圈體為一組被重複執行的語句。
如果我們想要某件事情重複執行具體次數的時候可以使用for迴圈。
for迴圈主要用來遍歷、迴圈、序列、集合、字典,檔案、甚至是自定義類或函式。
for迴圈用來遍歷列表
lists=['one','two','three','four ']
for i in lists:
print(i)
print("結束遍歷")
執行結果:
one
two
three
four
結束遍歷
for迴圈修改列表中的元素
#把 two 改為 新值
lists=['one','two','three','four ']
for i in range(len(lists)):
if lists[i] == 'two':
lists[i] = '新值'
print(lists)
執行結果:
['one', '新值', 'three', 'four '] #這只是因為執行了上面程式碼的臨時結果,並不是把記憶體地址的值真正給更新了,可以再執行一次你會發現結果一樣,如如真的給替換第二次執行two不是不存在了嗎
for迴圈刪除列表中的元素
lists=['one','two','three','four ']
for i in lists:
if i == 'two':
lists.remove(i)
print(lists)
執行結果:
['one', 'three', 'four ']
for迴圈統計列表中某一元素的個數
count = 0
lists=['one','two','three','four ','two']
for i in lists:
if i == 'two': #判斷two的個數
count += 1
print(count)
執行結果:
2
for迴圈的常用搭檔range()
range(開始數,結束數,步長)
1到10之間的奇數
'''
作者:Wei
日期:2018/9/15 17:20
Python版本:3.7
'''
#列印1到10之間的奇數
for i in range(1,10,2):
print(i)
執行結果:
1
3
5
7
9
也可以不寫開始數(預設為0開始)
#列印1到10之間的數
for i in range(10):
print(i)
執行結果:
0
1
2
3
4
5
6
7
8
9
注意:
如果你這樣寫range(10,2)
你不寫開始數,他不會認為你寫的是0到10步長為2
for迴圈變數字串
#遍歷字串
strs = "abcd"
for i in strs:
print(i)
執行結果:
a
b
c
d
遍歷檔案
for Verse in open("D:\\demo.txt"):
print(Verse)
結果演示:
床前明月光,疑是地上霜。
舉頭望明月,低頭思故鄉。
遍歷字典
#遍歷字典
count = 0
for key,value in {"name":'zhang',"sex":'男',"age":18}.items():
count += 1
print(f"鍵{count}:"+key)
print(f"值{count}:"+str(value))
執行結果:
鍵1:name
值1:zhang
鍵2:sex
值2:男
鍵3:age
值3:18