Python 【for/while循環】


循環語句
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']
#################################################################
用數據做判斷

 

 

計算機的邏輯判斷,只有兩種結果,就是TrueFalse。這個計算真假的過程,叫做【布爾運算】

TrueFalse,也就叫做【布爾值】

布爾值和布爾運算

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次機會都猜不到,你失敗了。')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM