1. 程式人生 > 其它 >Python(第三章)流程控制語句、條件表示式、迴圈語句、跳轉語句

Python(第三章)流程控制語句、條件表示式、迴圈語句、跳轉語句

技術標籤:新學期 Python 從入門到放棄

第三章

本章概覽

介紹python中的程式結構、選擇語句、條件表示式。迴圈語句、跳轉語句、pass語句等內容

3.1 Python程式結構

計算機在解決某個問題時,主要有三種情形:分別是:順序執行所有語句、選擇執行部分語句、迴圈執行部分語句


順序流程

在這裡插入圖片描述

程式從上而下執行,編寫完成的語句按照編寫的順序依次被執行

選擇流程

在這裡插入圖片描述

程式主要根據條件語句的結果選擇執行不同的語句

迴圈流程

在這裡插入圖片描述

迴圈結構在一定條件下反覆執行某段程式塊,其中反覆執行的語句叫迴圈體,根據
判斷條件判斷是否終止執行

3.2 選擇語句

3.2.1 最簡單的 if 語句

# coding = utf-8
"""
    最簡單的if語句
"""
if True:  # 表示式
    pass  # 語句塊

其中,表示式可以是一個單純的布林值或者變數,也可以是比較表示式、或者邏輯表示式(例如:a > b and a != c) 如果表示式為真,則執行“語句塊”;如果表示式的值為假,就跳過語句塊,繼續執行後面的語句。


注意:
其他語言(C、C++、Java)中有switch 語句 ,可以實現多重選擇語句,但是Python中沒有switch語句,所以實現多重選擇功能時:只能用 if…elif…else 或者if語句巢狀

注意:
在Python中,當表示式的值為非零或者非空的字串時,if 語句也認為是條件成立的(即:為真值)

# coding = utf-8
"""
    當表示式的值為非零或者非空的字串時
	bool(0) = False / bool(0.0) = False / bool(None) = False 
"""
if 4/2:  # 表示式
    pass  # 語句塊

例項01
解決黃蓉給瑛姑出的難題 判斷一個數,除三餘二、除五餘三、除以七餘二

# coding = utf-8
"""
    功能:解決黃蓉給瑛姑出的難題 判斷一個數,除三餘二、除五餘三、除以七餘二
"""
print("今有物不知其數、三三數之剩二、五五數之剩三、七七數之剩二") number = int(input("請輸入你認為的數:")) # 輸入一個數 if number % 3 == 2 and number % 5 == 3 and number % 7 == 2: # 條件判斷是否符合 print("今有物不知其數、三三數之剩二、五五數之剩三、七七數之剩二 的數是 :" + str(number)) else: print("Sorry 不是這個數")

注意:
使用 if 語句時,如果只有一條語句,那麼語句塊可以直接寫到冒號後面:

 	if a > b : max = a #不建議這麼寫

常見錯誤:

	1:if語句後面未加冒號“:” 
	2: 使用if 語句,如果符合條件,需要執行多個邏輯行,則注意要有相同的縮排
		 如果只執行一句則注意縮排
	if bmi < 18.5:
		print("您的BMI值是:"+str(bmi)) # 輸出BIM值
		print("您的體重過輕")
	#----------------------**注意縮排**---------------------
	if bmi < 18.5:
		print("您的BMI值是:"+str(bmi)) # 輸出BIM值
	print("您的體重過輕")

3.2.2 if…else 語句

Python中提供了 if … else 語句 其格式如下:

# coding = utf-8
"""
    if ... else 語句
"""
if True:  # 表示式1
    pass  # 表示式成立執行
else:     
    pass  # 表示式不成立執行

使用==if … else == 語句時,表示式可以是單純的布林值或變數,也可以是比較表示式,或者邏輯表示式,如果條件滿足則執行if 後面的語句,否則,執行else 後面的語句塊,在漢語中表達為:“如果…否則…”

技巧

# coding = utf-8
"""
    if ... else 語句技巧
"""
a = -9
if a > 0:  # 表示式1
    b = a  # 表示式成立執行
else:
    b = -a  # 表示式不成立執行
print(b)
# ---------簡寫為:

a = -9
b = a if a > 0 else -a
print(b)

例項02
使用if … else 語句判斷輸入的數字是不是黃蓉所說的 除三餘二、除五餘三、除以七餘二

# coding = utf-8
"""
    功能:解決黃蓉給瑛姑出的難題 判斷一個數,除三餘二、除五餘三、除以七餘二
"""
print("今有物不知其數、三三數之剩二、五五數之剩三、七七數之剩二")
number = int(input("請輸入你認為的數:"))  # 輸入一個數
if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:  # 條件判斷是否符合
    print(str(number) + "滿足條件"  )
else:
    print(str(number) + "不滿足條件"  )

==注意 ==
在使用else 語句時,else一定不可以單獨使用,它必須和保留字 if 一起出現


==注意 ==
程式中使用 if … else 時,如果出現 if 語句多於 else 語句的情況,那麼該 else 語句將會根據縮排確定 else 語句屬於那個 if :

# coding = utf-8
"""
    if ... else 語句縮排
"""
a = -1
if a >= 0:
    if a > 0:
        print("a 大於0")
    else:
        print("a 等於0")
else:
    print("a 小於0")

3.2.3 if…elif…else 語句

Python中 if…elif…else 語句是一個多分支選擇語句,通常表現為“如果滿足某種條件,就會進行某種處理”,否則,如果滿足另外一種條件,則執行另一種處理

# coding = utf-8
"""
    if ...elif...else 語句格式
"""
number = int("請輸入一個正整數判斷是否是偶數")
if number % 2 == 0:
    print(str(number) + " :是偶數")
elif number % 2 != 0:
    print(str(number) + " :是奇數")
else:
    pass
e

==注意 ==
if 和 elif 都需要判斷表示式的真假,而else則不需要判斷;另外,elif 和 else 都必須與 if 一起使用,不能單獨出現


例項03

# coding = utf-8
"""
    輸出玫瑰花語
"""

print("在古代希臘神話中、玫瑰花集愛情與美麗與一身,所以人們常用玫瑰花表達愛情")
print("但是不同朵數的玫瑰花代表的含義不同的\n")

# 獲取使用者輸入的朵數並轉化為整數
number = int(input("輸入您想送幾朵玫瑰花,AI會告訴您含義:"))
if number == 1:
    print("1朵: 你是我的唯一")
elif number == 3:
    print("3朵: I LOVE YOU")
elif number == 10:
    print("10朵: 十全十美")
elif number == 99:
    print("99朵:天長地久")
elif number == 108:
    print("108朵:求婚")
else:
    print("AI 也不知道了,可以考慮送 1 朵、3朵、10朵、99朵、109朵")

==注意 ==

當使用布林型別的變數作為判斷條件時,假設布林值為 flag 較為規範的格式如下:
if flag / if not flag 不能寫成 if flag = True or flag = False


3.2.4 if 巢狀語句

前面介紹的三種形式的 if 語句 ,在使用過程中是可以進行巢狀使用的

# coding = utf-8
"""
    if 巢狀語句格式
"""

# if .... else 巢狀語句
if True:
    if True:
        pass
    else:
        pass
else:
    pass

# if ....elif.... else 巢狀語句

if True:
    if True:
        pass
    elif True:
        pass
    elif True:
        pass
    else:
        pass
elif True:
    if True:
        pass
elif True:
    if True:
        pass
    else:
        pass
else:
    pass


==注意 ==
if 選擇語句可以有多重巢狀方式,開發程式的過程中,可以根據自身需要選擇合適的巢狀方式,但是一定要嚴格控制好級別程式碼快的縮排

例項04

通過使用巢狀if語句實現根據資料輸入的酒精含量判斷是否為酒後駕車

# coding = utf-8
"""
    if 巢狀語句:
    通過使用巢狀if語句實現根據資料輸入的酒精含量判斷是否為酒後駕車
"""

print("\t\n 為了您和他人的安全,嚴禁酒後駕車!\n")

proof = int(input("請輸入每100毫升血液的酒精含量:")) # 獲取使用者的酒精含量,並轉為整型
if proof < 20:
    print("\n您不構成飲酒行為,可以開車,但要注意安全")
else:
    if proof < 80:
        print("\n已經達到酒後駕車的標準,請不要開車")
    else:
        print("\n已經達到醉酒駕車的標準,親人兩行淚,千萬不要開車")

練習01 if語句&斷點除錯 #F44336

# coding = utf-8
"""
    1:選擇語句
    2:斷電除錯
"""
# sex = input("請輸入性別:")
# if sex == "男":
#     print("您好,先生!")
# elif sex == "女":
#     print("您好,女士!")
# else:
#     print("性別未知")

# 除錯:讓程式中斷,逐語句執行,目的:審查執行過程中變數取值、審查程式執行流程
# 步驟:1、加斷點 shift + F9 2、除錯執行 3、執行下一步 F8 4、停止 ctrl + F2

# 練習斷點:

price = float(input("請輸入商品單價:"))
number = int(input("請輸入商品數量:"))
money  = float(input("請輸入金額:"))
result = money - price * number
if result >= 0:
    print("應該找回:" + str(result))
else:
    print("金額不足")

**==練習02 季節月份判斷&算數運算 **

# coding = utf-8
"""
    練習:在控制檯中獲取一個季度(春夏秋冬)
         顯示相應的月份 春 --> 1 , 2, 3,
                     夏 --> 4,5,6
                     秋 --> 7,8,9
                     冬 --> 10,11,12
"""
season = input("請輸入季度:")

if season == "春":
    print("春天:--> 1月 、 2月 、 3月 ")
elif season == "夏":
    print("夏天:--> 4月 、 5月、 6月 ")
elif season == "秋":
    print("秋天:--> 7月 、 8月、 9月 ")
else:
    print("冬天:--> 10月 、 11月、 12月")

"""
    練習:在控制檯中錄入一個數字
         再錄入一個運算子(+ - * /) 最後再錄入一個數字 根據運算子計算兩個數字,
         要求:如果運算子,不是加減乘除,則提示"運算子有誤"
"""
number01 = float(input("請輸入一個數字:"))
number02 = float(input("請再輸入一個數字:"))
op_ver = input("請輸入這兩個數的運算關係(+、-、*、/):")
if op_ver not in ('+', '-', '*', '/'):
    print("運算子無效")
else:
    if op_ver == "+":
        print("您輸入的加運算,運算結果是:" + str(number01 + number02))
    elif op_ver == "-":
        print("您輸入的減運算,運算結果是:" + str(number01 - number02))
    elif op_ver == "*":
        print("您輸入的乘運算,運算結果是:" + str(number01 * number02))
    else:
        print("您輸入的除運算,運算結果是:" + str(number01 / number02))


練習 IF ELSE 巢狀,真值表達式,條件表示式

# coding = utf-8
"""
    練習:在控制檯中獲取一個季度(春夏秋冬)
         顯示相應的月份 春 --> 1 , 2, 3,
                     夏 --> 4,5,6
                     秋 --> 7,8,9
                     冬 --> 10,11,12
"""
season = input("請輸入季度:")

if season == "春":
    print("春天:--> 1月 、 2月 、 3月 ")
elif season == "夏":
    print("夏天:--> 4月 、 5月、 6月 ")
elif season == "秋":
    print("秋天:--> 7月 、 8月、 9月 ")
else:
    print("冬天:--> 10月 、 11月、 12月")

"""
    練習:在控制檯中錄入一個數字
         再錄入一個運算子(+ - * /) 最後再錄入一個數字 根據運算子計算兩個數字,
         要求:如果運算子,不是加減乘除,則提示"運算子有誤"
"""
number01 = float(input("請輸入一個數字:"))
number02 = float(input("請再輸入一個數字:"))
op_ver = input("請輸入這兩個數的運算關係(+、-、*、/):")
if op_ver not in ('+', '-', '*', '/'):
    print("運算子無效")
else:
    if op_ver == "+":
        print("您輸入的加運算,運算結果是:" + str(number01 + number02))
    elif op_ver == "-":
        print("您輸入的減運算,運算結果是:" + str(number01 - number02))
    elif op_ver == "*":
        print("您輸入的乘運算,運算結果是:" + str(number01 * number02))
    else:
        print("您輸入的除運算,運算結果是:" + str(number01 / number02))

"""
    練習:在控制檯輸入四個數字,列印最大的數字
"""
print("輸入四個數字比較大小:\n\t")
number01 = int(input("請輸入第一個數:"))
number02 = int(input("請輸入第二個數:"))
number03 = int(input("請輸入第三個數:"))
number04 = int(input("請輸入第四個數:"))
number02 = number01 if number01 > number02 else number02
number03 = number03 if number03 > number02 else number02
number04 = number04 if number04 > number04 else number03

print(number04)
"""
    在控制檯中錄入一個成績,判斷等級,優秀,良好,及格,不及格,輸入有誤
"""

grade = float(input("請輸入你的分數:"))

if 90 <= grade <= 100:
    print("優秀")
elif 80 <= grade < 90:
    print("良好")
elif 60 <= grade < 80:
    print("及格")
elif grade < 60:
    print("不及格")
else:
    print("輸入有誤")
# 等價於上面

if grade > 100 or grade < 0:
    print("輸入的有誤")
elif grade >= 90:
    print("優秀")
elif grade >= 80:
    print("良好")
elif grade >= 60:
    print("及格")
else:
    print("不及格")

"""
    在控制檯中獲取一個月份 ,列印天數
"""

month = int(input("請輸入一個月份:"))
if month > 12 or month < 1:
    print("輸入有誤")
elif month in (1, 3, 5, 7, 8, 10, 12):
    print(str(month) + " 該月份共有31天")
elif month in (4, 6, 9, 11):
    print(str(month) + " 該月份共有30天")
else:
    year = int(input("請輸入年份判斷閏年還是平年:"))
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print(str(month) + "這個月份所在的年份是閏年共有29天")
    else:
        print(str(month) + "這個月份所在的年份 是平年共有28天")

"""
    練習1:在控制檯中獲取一個整數,如果是偶數為變數state賦值"偶數"、否則賦值"奇數"
    練習2: 在控制檯中錄入一個年份,如果是閏年,給day賦值29 否則28
"""

state = "偶數" if int(input("請輸入一個正整數")) % 2 == 0 else "奇數"
print(state)
year = int(input("請輸入一個年份:"))
(year % 4 == 0 and year % 100 != 0)
day = 29 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) else 28
print(day)

3.3 條件表示式&三目運算


# coding = utf-8
"""
    條件表示式、三目運算
"""
a = 10
b = 6
r = None
# -----正常的if語句判斷
if a > b:
    r = a
else:
    r = b
# -----等價於
r = a if a > b else b

state = "偶數" if int(input("請輸入一個正整數")) % 2 == 0 else "奇數"

3.4 迴圈語句

迴圈語句:反覆的重複一件事情,稱為迴圈,迴圈主要有兩種型別

  1. 重複一定次數,稱為計次迴圈,如 for
  2. 一直重複,直到條件不滿足時才結束的迴圈,稱為條件迴圈,這種迴圈會一直秩序下去,如while迴圈

註釋: #

在其他語言中(C、C++、JAVA)條件迴圈包括 do…while迴圈,但是在Python中沒有do…while 迴圈

3.4.1 while 迴圈

while迴圈是通過一個條件來控制是否要繼續反覆執行迴圈體中的語句

while 條件表示式:
	迴圈體
# coding = utf-8
"""
    功能:解決黃蓉給瑛姑出的難題 判斷一個數,除三餘二、除五餘三、除以七餘二
         迴圈找出符合該條件的數字
"""
print("今有物不知其數,三三數之剩二、五五數之剩三、七七數之省二,問幾何?\n")
none = True  # 作為迴圈條件的變數
number = 0  # 計數的變數
while none:
    number += 1
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
        print("答曰,這個數是", number)
    if number == 1000:
        none = False

3.4.2 for 迴圈

for 迴圈體是一個依次洪福執行的迴圈。通常適用於列舉或遍歷序列。以及迭代的物件中的元素。

# coding = utf-8
"""
    功能:for 語法格式
"""
for 迭代變數 in 物件:
    迴圈體
"""
    迭代變數:用於儲存讀取出的值
	       物件:要遍歷或迭代的物件(有序物件、字串、列表、元組)
	   迴圈體: 一組被重複執行的語句
"""

實現從1到100的累加,可以通過下面的程式碼實現:

# coding = utf-8
"""
    功能:for 實現 1 到 100 的累加
"""
print("計算1+2+3+4+.....100的結果")
result = 0              # 儲存累加的結果變數
for i in range(101):
    result += i         # 實現累加功能
print(result)           # 在迴圈結束時輸出結果

"""
	range() 函式多用於 for 
"""

注意:

range(start,end,step)
start: 用於指定計數的起始值,可以忽略,如果忽略則從0開始
end  : 用於指定計算的結束值(但是不包括該值,如range(7),得到的是0~6 但是不包括7),不能省略,當range()函式中只有一個引數時,即表示指定的計數結束值
step : 用於指定步長,即兩個數之間的間隔,可以省略,如果省略則表示步長為1,例如range(1,7)表示得到 1、2、3、4、5、6
# 輸出10以內的奇數:
for i in range(1,10,2):
	print(i,end = '')

注意: #

在Python中,如果想讓print列印語句的內容在一行上顯示,加上“end = '分割符號'”

print("列印內容",end = '')

# coding = utf-8
"""
    功能:for 語法格式 
	解決黃蓉給瑛姑出的難題 判斷一個數,除三餘二、除五餘三、除以七餘二
         迴圈找出符合該條件的數字
    
"""
print("今有物不知其數,三三數之剩二、五五數之剩三、七七數之省二,問幾何?\n")
for number in range(1, 1001, 1):
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
        print("答曰:這個數是:", number, end='/')


遍歷字串

# coding = utf-8
"""
    功能:for 語法,遍歷字串

"""
string = "加油,騷年!"
for ch in string:
    print(ch, end=" / ")

3.4.3 巢狀迴圈

在Python中,允許在一個迴圈體中巢狀另一個迴圈,稱之為迴圈迴圈巢狀。

# coding = utf-8
"""
    功能:巢狀迴圈格式

"""
# 第一種迴圈方式
while True:
    while True:
        print("迴圈體")
    print("迴圈體")

# 第二種迴圈方式
for i in range(101):
    for j in range(101):
        print("迴圈體")
    print("迴圈體")

# 第三種迴圈方式
while True:
    for j in range(101):
        print("迴圈體")
    print("迴圈體")

# 第四種迴圈方式
for i in range(101):
    while True:
        print("迴圈體")
    print("迴圈體")

巢狀迴圈之一:九九乘法表

# coding = utf-8
"""
    功能:九九乘法表

"""
# 九九乘法表格式一
for i in range(1, 10, 1):  # 輸出9for j in range(1, i + 1, 1):
        print(str(i) + " * " + str(j) + " = " + str(i * j) + "\t", end=' ')
    print('')

print('########################################################################')

# 九九乘法表格式二
for i in range(9, 0, -1):  # 輸出9for j in range(1, i + 1, 1):
        print(str(i) + " * " + str(j) + " = " + str(i * j) + "\t", end=' ')
    print('')

print('########################################################################')

# 九九乘法表格式三
for i in range(1, 10, 1):  # 輸出9for j in range(9, 0, -1):
        if i >= j:
            print(str(i) + " * " + str(j) + " = " + str(i * j), end="\t")
        else:
            print("     	", end='\t')

    print('')


print('########################################################################')

# 九九乘法表格式四
# coding = utf-8
"""
    功能:九九乘法表

"""
# 九九乘法表格式一
for i in range(1, 10, 1):  # 輸出9for j in range(1, i + 1, 1):
        print(str(i) + " * " + str(j) + " = " + str(i * j) + "\t", end=' ')
    print('')

print('########################################################################')

# 九九乘法表格式二
for i in range(9, 0, -1):  # 輸出9for j in range(1, i + 1, 1):
        print(str(i) + " * " + str(j) + " = " + str(i * j) + "\t", end=' ')
    print('')

print('########################################################################')

# 九九乘法表格式三
for i in range(1, 10, 1):  # 輸出9for j in range(9, 0, -1):
        if i >= j:
            print(str(i) + " * " + str(j) + " = " + str(i * j), end="\t")
        else:
            print("     	", end='\t')

    print('')


print('########################################################################')

# 九九乘法表格式四
for i in range(9, 0, -1):  # 輸出9for j in range(9, 0, -1):
        if i >= j:
            print(str(i) + " * " + str(j) + " = " + str(i * j), end="\t")
        else:
            print("     	", end='\t')

    print('')

3.5 跳轉語句

實現中間離開迴圈,也就是在for語句執行結束之前、或者while迴圈之前找到結束條件之前,有兩種方式來做到

  1. 使用continue 語句直接跳轉到迴圈的下一個迭代
  2. 使用break完全終止迴圈

3.5.1 break 語句

break 語句可以終止當前的迴圈,包括 while、for 在內的所有控制語句。

注意 #: break語句一般結合 if 語句 進行搭配使用、表示在某種條件下,跳出迴圈,如果使用巢狀迴圈,break將跳出最內層的迴圈。

while break

# coding = utf-8
"""
    功能:while 語句中的 break 語句格式

"""

while True:
    print("迴圈體")
    if True:
        break
        

for break

# coding = utf-8
"""
    功能:break 語句格式

"""

for i in range(1, 101, 1):
    print("迴圈體內部")
    if i == 100:
        break

例項

# coding = utf-8
"""
    功能:break 演示

"""

print("今有物不知其數,三三數之剩二、五五數之剩三、七七數之剩二,問幾何 \n")

for number in range(1, 1001):
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
        print("答曰:這個數是", number)
        break

3.5.2 contiune 語句

continue 語句的作用沒有break 語句強大,它只能終止本次迴圈而提前進入到下一次迴圈中。

注意: #
continue語句一般會與if 語句搭配使用,表示在某種條件下,跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈,如果使用巢狀迴圈,continue語句只跳過最內層迴圈中的剩餘語句

while continue

# coding = utf-8
"""
    功能:continue 演示

"""

while True:
    print("迴圈體程式碼")
    if True:
        continue
        

for continue

# coding = utf-8
"""
    功能:continue 演示

"""

for i in range(1,101,1):
    print("迴圈體程式碼")
    if True:
        continue

例項:逢七拍腿遊戲

# coding = utf-8
"""
    功能:continue 演示:逢七拍腿遊戲

"""

total = 99  # 記錄拍腿次數的變數

for number in range(1, 100):
    if number % 7 == 0:
        print(number)
        continue
    else:
        string = str(number)
        if string.endswith("7"):
            print(string, "###########")
            continue
    total -= 1
print('從1到99共拍腿', total)

3.6 pass 語句

在Python中有一個pass語句,表示空語句。它不做任何事情,一般起到佔位作用。例如,在用for 迴圈輸出 1 ~ 10 之間 的 偶數,在不是偶數時,應用pass 語句佔位置。

# coding = utf-8
"""
    功能:pass 語句演示

"""

for i in range(1, 10, 1):
    if i % 2 == 0:
        print(i, " 是偶數\t", end='')
    else:
        pass


實戰練習 #F44336


# coding = utf-8

import random

"""
    迴圈for_while_控制語句break_continue 練習

"""
# 練習1:模擬支付寶螞蟻森林的能量產生過程

while True:
    print("查詢能量請輸入能量來源!退出請按 0\t\n")
    print("能量來源如下:\n")
    print("生活繳費、行走捐、共享單車、線下支付、網路購票\n")
    flag = input()
    if flag not in ("生活繳費", "行走捐", "共享單車", "線下支付", "網路購票", "0"):
        print("輸入有誤請重新輸入:")
    else:
        if flag == "0":
            break
        elif flag == "生活繳費":
            print("100g")
        elif flag == "行走捐":
            print("200g")
        elif flag == "共享單車":
            print("150g")
        elif flag == "線下支付":
            print("50g")
        else:
            print("50g")

# 練習1:猜數字遊戲,隨機生成一個1到100的數字,十次機會猜數字

flag = 1
random_int = random.randint(1, 100)
while True:
    if flag == 10:
        print("你個垃圾,遊戲退出:")
        break
    else:
        number = int(input("請輸入一個1到100以內正整數,一共十次機會 - 第 " + str(flag) + "次輸入:\n"))
        if number == random_int:
            print("您第 ", flag, " 猜對了,真厲害")
            break
        else:
            if number > random_int:
                print("大了 、 請輸入錯誤請重試")
            else:
                print("小了 、 請輸入錯誤請重試")
            flag += 1

# 模擬 10086 功能
"""
    1:輸入1 顯示當前餘額
    2:輸入2 顯示您當前剩餘的流量
    3:輸入3 顯示您當前的剩餘通話
    4:輸入0 退出系統
"""

print("------------ 10068 查詢系統 ---------")

while True:
    number = int(input("""
    1:輸入 1 顯示當前餘額
    2:輸入 2 顯示您當前剩餘的流量
    3:輸入 3 顯示您當前的剩餘通話
    4:輸入 0 退出系統
"""))
    if number not in (1, 2, 3, 0):
        print("輸入有誤請重新輸入")
    else:
        if number == 1:
            print("當前餘額:100")
        elif number == 2:
            print("當前剩餘流量:24G")
        elif number == 3:
            print("當前剩餘通話:24H")
        else:
            break