循環語句
for...in..循環語句
1.空房間
#元素(item) 可以當成是一個變量
for i in [1,2,3,4,5]: #變量i是“空房間”
print(i)
#有一群數字在排隊辦業務,也就是列表[1,2,3,4,5]
#它們中的每一個被叫到號的時候(for i in),就輪流進去一個空房間辦業務
#每一個數字進去房間之后,都對計算機說:“喂,我要辦這個業務:幫忙把我自己打印出來”,也就是print(i)
#然后計算機忠實的為每一個數字提供了打印服務,將1,2,3,4,5都打印在了屏幕上
2.一群等着辦業務的人
列表/字典/字符串 【遍歷】
for i in '吳承恩':
print(i)
吳
承
恩
a = str(100)
for i in a: #遍歷數據結構
print(i)
1
0
0
3.業務流程
for子句
格式是【冒號】后另起一行,【縮進】寫命令
——————————————————————————
range()函數
for i in range(3):
print(i)
0
1
2 #生成一個從0到x-1的整數序列,取頭不取尾
for i in range(0,10,3):
print(i)
0
3
6
9 #從0數到9(取頭不取尾),數數的間隔為3
###################################################################
while循環語句
在一定的條件下,按照流程辦事
————————————————————————————————————
a = 0 #先定義變量a,並賦值
while a < 5: #設定一個放行條件:a要小於5,才能辦事
a = a + 1 #滿足條件時,就辦事:將a+1
print(a) #繼續辦事:將a+1的結果打印出來
————————————————————————————————————
password = '' #變量password用來保存輸入的密碼
while password != '816':
password = input('請嘗試輸入密碼:')
print('歡迎回家!')
#######################################################
兩種循環對比
工作量確定用for
工作量不確定時用while
相同點
把一件事情做N遍,for循環的代碼比較簡潔
n = 0
while n < 7:
n = n+1
if n != 4: # 當num != 4,執行打印語句;等於4時不打印。
print(n)
for num in range(1,8):
if num != 4: # 當num != 4,執行打印語句;等於4時不打印。
print(num)
#############################################################
練習
小明、小紅、小剛是同班同學,且坐在同一排,分別坐在第一位、第二位、第三位。
由於他們的身高都差不多,所以,老師計划讓他們三個輪流坐在第一位。
每次換座位的時候,第一位變第三位,后面兩位都往前一位。
students = ['小明','小紅','小剛']
for i in range(3):
student = students[0]
del students[0] #students = students[1:]
students.append(student)
print(students)
['小紅', '小剛', '小明']
['小剛', '小明', '小紅']
['小明', '小紅', '小剛']
students = ['小明','小紅','小剛']
for i in range(3):
student1 = students.pop(0) #運用pop()函數,同時完成提取和刪除。
students.append(student1) #將移除的student1安排到最后一個座位。
print(students)
['小紅', '小剛', '小明']
['小剛', '小明', '小紅']
['小明', '小紅', '小剛']
擴展
pop()函數
移除列表中的一個元素(默認最后一個元素),並且返回該元素的值。
可以將其理解為提取和刪除的融合:
①提取:取到元素,對列表沒有影響;
②刪除:刪除列表的元素。
而移除,則是同時做到取到元素,並且刪除列表中的元素。
提取只取不刪
>>> list1 = ['0','1','2','3']
>>> print(list1[3])
3
>>> print(list1)
['0', '1', '2', '3']
刪除(del)只刪不取
list1 = ['0','1','2','3']
del list1[3]
print(list1)
['0', '1', '2']
移除(pop)又取又刪
list1 = ['0','1','2','3']
print(list1.pop()) # 默認刪除最后一個元素,並返回該元素的值。
3
print(list1)
['0', '1', '2']
print(list1.pop(0)) # 也可指定刪除某個元素,並返回該元素的值。
0
print(list1)
['1', '2']
#################################################################
用數據做判斷
計算機的邏輯判斷,只有兩種結果,就是True
和False
。這個計算真假的過程,叫做【布爾運算】
True
和False
,也就叫做【布爾值】
布爾值和布爾運算
print(3<5) #括號內的是布爾運算
True #布爾值
兩個數值做比較
直接用數值做運算
布爾值之間的運算
and、or、not、in、not in
list = [1,2,3,4,5]
a = 1
print(bool(a in list))
True
print(bool(a not in list))
False
涉及到的數據集合是字典【in】和【not in】就可以用來判斷字典中是否存在某個【鍵】
dict = {'法國':'巴黎','日本':'東京','中國':'北京'}
a = '法國'
print(bool(a in dict))
True
###########################################################################
擴展
bool()函數
>>> print(bool(False))
False
>>> print(bool(0))
False
>>> print(bool(''))
False
>>> print(bool(None))
False
>>> print(bool(True))
True
>>> print(bool(1))
True
>>> print(bool('abc'))
True
#############################################################
四種新的語句
break
一般寫作if...break
在循環內部使用
for i in range(5):
print('明日復明日')
if i==3: # 當i等於3的時候觸發
break # 結束循環
#Tab鍵和空格鍵不能同時混用
——————————————————————————————
continue
在循環內部使用
條件滿足,觸發continue語句,跳過之后代碼,回到循環開始
for i in range(5):
print('明日復明日')
if i==3: # 當i等於3的時候觸發
continue # 回到循環開頭
print('這句話在i等於3的時候打印不出來')
明日復明日
這句話在i等於3的時候打印不出來
明日復明日
這句話在i等於3的時候打印不出來
明日復明日
這句話在i等於3的時候打印不出來
明日復明日
明日復明日
這句話在i等於3的時候打印不出來
——————————————————————————————————
pass
a = int(input('請輸入一個整數:'))
if a > 100:
pass
else:
print('你輸入了一個小於100的數字')
#當a>=100的時候,跳過,什么都不做
————————————————————————————————————
else
else不但可以和if配合使用,它還能跟for循環和while循環配合使用
for i in range(5):
a = int(input('請輸入0結束循環,你有5次機會:'))
if a == 0:
print('你觸發了break語句,導致else語句不會生效。')
break
else:
print('5次循環你都錯過了,else語句生效了。')
當循環中沒有碰到break語句,就會執行循環后面的else語句,否則就不會執行
應用
猜三次,三次都猜錯了就結束循環
如果一次就猜對了,就結束循環
secret = 24
for i in range(3):
guess = input('guess which number is my secret:')
if int(guess) == secret:
print('正確!你很棒哦。') #輸出結果
break
elif int(guess)>secret:
print('你猜的太大了,請重新猜猜~')
else:
print('你猜的太小了,請重新猜猜~')
else:
print('給你3次機會都猜不到,你失敗了。')