程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

6.1_3 Python3.x入門 P3 【基礎】流程語句【循環結構】

編輯:Python

相關鏈接

  • 目錄
  • Mac M1 Python環境搭建
  • Python3.x入門 P1 【基礎】注釋、標識符、變量、數據類型
  • Python3.x入門 P2 【基礎】運算符
  • Python3.x入門 P3 【基礎】流程語句【循環結構】
  • Python3.x入門 P4 【基礎】可變序列(列表list、字典dict、集合set)
  • Python3.x入門 P5 【基礎】不可變序列(元組tuple、字符串str)
  • Python3.x入門 P6 【字符串格式化】四種方式(手動、%-formatting、str.format()、f-String)
  • Python3.x入門 P7 【函數】

簡介

""" @author GroupiesM @date 2022/4/27 15:44 @introduction """
任何簡單或復雜的算法都可以由順序結構、選擇結構、循環結構組合而成
順序結構(默認就是順序結構)
選擇結構:if語句
循環結構:while語句,for-in語句

一、順序結構(略)

""" @author GroupiesM @date 2022/4/27 16:05 @introduction """

二、選擇結構

2.1 if、elif、else選擇結構

""" @author GroupiesM @date 2022/4/27 16:05 @introduction if 條件表達式: 條件執行體 else """
money = 1000; # 余額
tips = "當前余額為 " + str(money) + " 元,請輸入取款金額:"
get = int(input(tips)) # 取款金額
b = True
# 判斷余額是否充足
if get < 0:
print("取款金額不能為負")
elif get < money:
print("取款成功,余額為" + str(money - get), "元。")
else:
print("余額不足。")
""" 當前余額為 1000 元,請輸入取款金額:-5 取款金額不能為負 取款成功,余額為1005 元。 """
""" 當前余額為 1000 元,請輸入取款金額:123 取款成功,余額為877 元。 """
""" 當前余額為 1000 元,請輸入取款金額:1234 余額不足。 """

2.2 選擇結構嵌套

""" @author GroupiesM @date 2022/4/27 16:26 @introduction 業務邏輯:如果是會員,大於200打1折,100-200打5折,低於100不打折 如果不是會員,大於200打9折,低於200不打折 """
isMember = input("是會員嗎?y/n:")
if isMember not in ('y','n'):
print("輸入錯誤")
quit()
money = int(input("購物金額:"))
if isMember == 'y':
if money > 200:
money *= 0.1
elif money > 100 & money < 200 :
money *= 0.5
if isMember == 'n':
if money > 200:
money *= 0.9
print("實際付款金額為:",str(money))
""" 是會員嗎?y/n:y 購物金額:2000 付款金額為: 200.0 """
""" 是會員嗎?y/n:n 購物金額:150 實際付款金額為: 150 """

三、條件表達式(三元運算符)

""" @author GroupiesM @date 2022/4/27 16:39 @introduction 模擬用戶登錄 條件表達式類似於Java中使用的三元運算符,僅有if、else兩種結果,不支持其他elif分支條件 """
uname = input("用戶名:")
pwd = input("密碼:")
# 選擇結構
if uname == "Groupies" and pwd =="123":
print("歡迎登陸!")
else:
print("用戶名或密碼輸入錯誤!")
print('-----')
# 條件表達式
print("歡迎登陸!" if uname == "stenven" and pwd =="123" else "用戶名或密碼輸入錯誤!")

四、循環結構

4.1 rang() 循環 - 生成list

""" @author GroupiesM @date 2022/4/27 16:55 @introduction 用於創建一個整數序列 創建range對象的三種方式 1)range(stop):創建[0,stop)之間的整數序列,步長為1 2)range(start,stop):創建[start,stop)之間的整數序列,步長為1 3)range(start,stop,step):創建[start,stop)之間的整數序列,步長為step 返回一個迭代器對象 range優點:不管range對象表示的整數序列有多長,所有range對象占用的內存空間都是相同的, 因為僅僅需要存儲start,stop和step,只有當用到時才會計算 int與not in判斷是否存在指定整數 """
"""range(stop)"""
r = range(10)
l = list(r) # 用於查看range對象中的整數序列
print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""range(start,stop,step)"""
r = range(1, 50, 5)
l = list(r)
print(l) # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46]
"""int與not in判斷是否存在指定整數"""
print(6 in r) # True
print(6 in l) # True
print(8 in r) # False
print(6 not in l) # False

4.2 while循環

""" @author GroupiesM @date 2022/4/27 17:08 @introduction 循環分類 while for-in 語法: while 條件表達式: 條件執行體(循環體) 選擇結構的if與循環while的區別: if判斷一次,條件True執行一次 while判斷n+1次,條件為True執行n次 """
a: int = 1
while a < 5:
print(a) # 1 2 3 4
a += 1

4.3 for循環

""" @author GroupiesM @date 2022/4/27 17:16 @introduction for-in循環: in表達從(字符串、序列等)中依次取值,又稱為遍歷 for-in便利的對象必須是可迭代對象 for-in語法結構: for 自定義的變量 in 可迭代對象: 循環體 【可迭代對象】:字符串、序列等 循環體內不需要訪問自定義變量,可以將自定義變量替代為下劃線 """
print("-------for-in String--------")
for i in "python":
print(i)
""" p y t h o n """
print("-------for-in range()--------")
for i in range(2, 5, 1):
print(i)
""" 2 3 4 """
print("-------for-in nothing--------")
for i in range(3):
print("hello world")
""" hello world hello world hello world """
print("-------for-in 1-100偶數求和--------")
sum = 0;
for i in range(101):
if i % 2 == 0:
sum += i
print(sum)
"""2550"""

五、pass、break、continue


5.1 pass 跳過

  • 適用於:選擇結構、循環結構
""" @author GroupiesM @date 2022/4/27 16:44 @introduction pass語句:什麼都不做,只是一個占位符,用在語法上需要語句的地方 並不會跳過,pass語句前面、後面的執行邏輯 when:先搭建語法結構,還沒想好代碼怎麼寫 where:1)if的條件執行體、2)for-in的循環體、3)函數的函數體 """
answer = input("是會員嗎?y/n")
if answer == 'y':
print("123")
pass
print("321")
else:
pass # 這裡如果什麼都不寫是不能通過編譯的
""" 是會員嗎?y/n y 123 321 """

5.2 break 跳出循環

5.2.1 while - break

  • 適用於:循環結構
""" @author GroupiesM @date 2022/4/27 17:34 @introduction break語句:用於結束循環結構,通常與分支結構if一起使用 """
# 鍵盤輸入密碼,最多3次,如果正確,提示登錄成功,超過3次提示賬戶已鎖定
password = "python"
i = 0;
while i < 3:
if input("請輸入密碼:\n") == "python":
print("密碼正確,登陸成功")
break
elif i != 2:
print("密碼錯誤,剩余嘗試次數:", 2 - i)
i += 1
else:
print("密碼錯誤,賬戶已鎖定")
break
""" 請輸入密碼: python 密碼正確,登陸成功 """
""" 請輸入密碼: 1 密碼錯誤,剩余嘗試次數: 2 請輸入密碼: 2 密碼錯誤,剩余嘗試次數: 1 請輸入密碼: 3 密碼錯誤,賬戶已鎖定 """

5.2.2 for - break

""" @author GroupiesM @date 2022/4/27 17:25 @introduction break語句:用於結束循環結構,通常與分支結構if一起使用 """
# 鍵盤輸入密碼,最多3次,如果正確,提示登錄成功,超過3次提示賬戶已鎖定
password = "python"
for i in range(3):
if input("請輸入密碼:\n") == "python":
print("密碼正確,登陸成功")
break
elif i != 2:
print("密碼錯誤,剩余嘗試次數:", 2 - i)
else:
print("密碼錯誤,賬戶已鎖定")

5.2.3 嵌套循環 - break (九九乘法表)

""" @author GroupiesM @date 2022/4/27 17:51 @introduction """
'''實現99乘法表'''
for i in range(0, 10, 1):
for j in range(1, i + 1, 1):
if j > i:
break
print(str(i), "*", str(j), "=", str(i * j), end="\t")
print("")
''' 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 '''

5.3 continue 進入下一次循環

  • 適用於:循環結構

5.3.1 while - continue

""" @author GroupiesM @date 2022/4/27 17:36 @introduction continue語句:用於結束當前循環,進入下一次循環,通常預分支if一起使用 """
'''輸出1-20之間所有5的倍數'''
i: int = 1;
while i < 20:
i += 1
if i % 5 != 0: continue
print(i)
""" 5 10 15 20 """

5.3.2 for - continue

""" @author GroupiesM @date 2022/4/27 17:37 @introduction continue語句:用於結束當前循環,進入下一次循環,通常預分支if一起使用 """
'''輸出1-20之間所有5的倍數'''
i: int = 1;
for i in range(20):
if i % 5 != 0: continue
print(i)
""" 5 10 15 20 """

5.3.3 嵌套循環 - continue

""" @author GroupiesM @date 2022/4/28 09:14 @introduction 嵌套循環中的break和continue只用於控制本層循環 else -> if ... else -> while ... else -> for ... else """
for i in range(1, 5):
if (i % 2 == 0):
continue
else:
print(i)
else:
print("abc")
""" 1 3 abc """

22/06/27

M


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved