《Python從入門到實踐》第七章動手試一試

夜云流光發表於2024-11-22

# 7-1 汽車租賃 :編寫一個程式,詢問使用者要租賃什麼樣的汽車,並列印一條訊息,如“Let me see if I can find you a Subaru”。

guess = input('請問您要租賃什麼樣的汽車呢:\n')
print('您要租賃的汽車是:'+guess)

7-2 餐館訂位 :編寫一個程式,詢問使用者有多少人用餐。如果超過8人,就列印一條訊息,指出沒有空桌;否則指出有空桌。

guess = int(input('請問貴賓這邊是多少人用餐呢:\n'))
if guess > 8:
    print('非常抱歉,大桌沒有空桌了')
else:
    print('貴賓這邊請')

7-3 10的整數倍 :讓使用者輸入一個數字,並指出這個數字是否是10的整數倍。

guess = int(input('請輸入一個數字:\n'))
if guess%10 == 0:
    print('這個數字是10的整數倍哦')
else:
    print('這個數字不是10的整數倍')

7-4 比薩配料 :編寫一個迴圈,提示使用者輸入一系列的比薩配料,並在使用者輸入'quit' 時結束迴圈。每當使用者輸入一種配料後,都列印一條訊息,說我們會在比薩中新增這種配料。

active = True
ingredients = [] # 存放配料表
while active:
    guess = input('請輸入您需要的配料:\n')
    if guess != 'quit':
        ingredients.append(guess)
        print('我們會在比薩中新增'+guess+'這種配料')
        print('如新增完成請輸入"quit"\n')
    else:
        print('將為您新增如下配料:')
        for ingredient in ingredients:
            print(ingredient)
        print('感謝您的支援,請等待享用!')
        active = False
        # break #使用break也可以

7-5 電影票 :有家電影院根據觀眾的年齡收取不同的票價:不到3歲的觀眾免費;3~12歲的觀眾為10美元;超過12歲的觀眾為15美元。請編寫一個迴圈,在其中詢問使用者的年齡,並指出其票價。

print('歡迎使用不成熟的票價查詢系統\n')
while True:
    age = int(input('請輸入觀看貴賓的年齡:'))
    if age>0 and age < 3:
        print('不到3歲的觀眾免費觀看哦\n')
        print('退出查詢請輸入"0"')
    elif age >= 3 and age < 12:
        print('3~12歲的觀眾為10美元\n')
        print('退出查詢請輸入"0"')
    elif age > 12:
        print('超過12歲的觀眾為15美元\n')
        print('退出查詢請輸入"0"')
    elif age == 0:
        print('感謝您的使用!')
        break
    else:
        print('輸入有誤!')

7-6 三個出口 :以另一種方式完成練習7-4或練習7-5,在程式中採取如下所有做法。

  • 在while 迴圈中使用條件測試來結束迴圈。
  • 使用變數active 來控制迴圈結束的時機。
  • 使用break 語句在使用者輸入'quit' 時退出迴圈。
# while 條件控制迴圈
print('歡迎使用不成熟的票價查詢系統\n')
age = int(input('請輸入觀看貴賓的年齡:'))
while age != 0:
    age = int(input('請輸入觀看貴賓的年齡:'))
    if age>0 and age < 3:
        print('不到3歲的觀眾免費觀看哦\n')
        print('退出查詢請輸入"0"')
    elif age >= 3 and age < 12:
        print('3~12歲的觀眾為10美元\n')
        print('退出查詢請輸入"0"')
    elif age > 12:
        print('超過12歲的觀眾為15美元\n')
        print('退出查詢請輸入"0"')
    else:
        print('輸入有誤!')

# 使用變數控制迴圈 及break控制迴圈
print('歡迎使用不成熟的票價查詢系統\n')
active = True
while active:
    age = int(input('請輸入觀看貴賓的年齡:'))
    if age>0 and age < 3:
        print('不到3歲的觀眾免費觀看哦\n')
        print('退出查詢請輸入"0"')
    elif age >= 3 and age < 12:
        print('3~12歲的觀眾為10美元\n')
        print('退出查詢請輸入"0"')
    elif age > 12:
        print('超過12歲的觀眾為15美元\n')
        print('退出查詢請輸入"0"')
    elif age == 0:
        print('感謝您的使用!')
        active = False #當active值為False時迴圈結束
        # break # 使用者輸入0的時候break結束迴圈
    else:
        print('輸入有誤!')

7-7 無限迴圈 :編寫一個沒完沒了的迴圈,並執行它(要結束該迴圈,可按Ctrl +C,也可關閉顯示輸出的視窗)。

while 1 == 1 :
    print('這是個死迴圈')

7-8 熟食店 :建立一個名為sandwich_orders 的列表,在其中包含各種三明治的名字;再建立一個名為finished_sandwiches 的空列表。遍歷列表sandwich_orders ,對於其中的每種三明治,都列印一條訊息,如I made your tuna sandwich ,並將其移到列表finished_sandwiches 。所有三明治都製作好後,列印一條訊息,將這些三明治列出來。

sandwich_orders = ['肉鬆火腿','雞蛋培根','雞肉全麥','芝士牛肉']
finished_sandwiches = []
while len(sandwich_orders)>0:
    finished_sandwiche = sandwich_orders.pop()
    print('我需要這款三明治:'+ finished_sandwiche)
    finished_sandwiches.append(finished_sandwiche)
print('所有三明治已經制作完成:')
for sandwiche in finished_sandwiches:
    print(sandwiche)

7-9 五香菸燻牛肉(pastrami)賣完了 :使用為完成練習7-8而建立的列表sandwich_orders ,並確保'pastrami' 在其中至少出現了三次。在程式開頭附近新增這樣的程式碼:列印一條訊息,指出熟食店的五香菸燻牛肉賣完了;再使用一個while 迴圈將列表sandwich_orders 中的'pastrami' 都刪除。確認最終的列表finished_sandwiches 中不包含'pastrami' 。

sandwich_orders = ['pastrami','chicken','pastrami','beef','bacon','pastrami']
finished_sandwiches = []
print('五香菸燻牛肉賣完了')
while sandwich_orders:
    if 'pastrami' in sandwich_orders:
        sandwich_orders.remove('pastrami')
    else:
        sandwiche = sandwich_orders.pop()
        finished_sandwiches.append(sandwiche)
        print('我需要這款三明治'+sandwiche)
print(finished_sandwiches)

7-10 夢想的度假勝地 :編寫一個程式,調查使用者夢想的度假勝地。使用類似於“If you could visit one place in the world, where would you go?”的提示,並編寫一個列印調查結果的程式碼塊。

print('夢想的度假勝地調查問卷')
namecity = {}
i = 0
active =True
while active:
    print('你心中有夢想的度假勝地嗎?告訴我,我保證不會完成你的夢想\n')
    name = input("請填寫你的姓名\n")
    city = input('請填寫你想去的城市\n')
    print('感謝您的參與!\n')
    namecity[name] = city
    i += 1
    guess = input('當前有'+str(i)+'人參與調查,是否繼續調查?【yes/no】\n')
    activecontinue = True
    while activecontinue:
        if guess.lower() == 'yes':
            activecontinue = False
        elif guess.lower() == 'no':
            active = False
            print('辛苦完成今天的調查任務,調查完畢!\n')
            break
        else:
            guess = input('輸入有誤,請重新輸入【yes/no】\n')
for name,city in namecity.items():
    print(name+'的夢想度假勝地是:'+city)

相關文章