簡體   English   中英

Python if語句問題

[英]Python if statement problems

我正在嘗試使if語句起作用,但是它選擇了所有語句,而不是選擇正確的語句。 因此,下面的代碼:

money=100

if money==100:
    print('You buy a pair of headphones')
    money-=100
if money<50:
    print('You buy a movie')
        money-=25
if money<10:
    print('You buy a burger')
    money-=5

返回此:

You buy a pair of headphones
You buy a movie
You buy a burger

請幫忙!

使用elif

money=100

if money==100:
    print('You buy a pair of headphones')
    money-=100
elif money<50:
    print('You buy a movie')
    money-=25
elif money<10:
    print('You buy a burger')
    money-=5

每種可能性現在都在同一塊中,因此將只做出一個決定,而不是簡單地用if依次執行

如果您有多個條件,並且只希望在符合條件的情況下執行一個條件,則使用

“ if elif關鍵字”

就您而言,代碼將是

money = 100
if money == 100:
    print('You buy a pair of headphones')
    money -= 100
elif money <= 50 and money >=25:
    print('You buy a movie')
    money -= 25
elif money <= 10 and money >=5:
    print('You buy a burger')
    money -= 5

或執行以下操作:

prices = {'100':'headphones', '50':'movie', '10':'burger', 5}
money = 100
for price in prices: 
    if money >= price: 
        print 'You buy a ', prices[price]
        money -= price
        break

這封信並不相同,但是您可以看到它更加緊湊。 添加新案例更加容易。 邏輯是有道理的-我應該可以買到我有錢可以買的任何東西。

我也將其封裝在一個方法中:

prices = {'100':'headphones', '50':'movie', '10':'burger', 5}
def buy(money):
    message = 'You could not afford anything'
    for price in prices: 
        if money >= price: 
            message = 'You buy a ' + prices[price]
            money -= price
            break
    return message

發生這種情況是因為所有條件都成立,所以您獲得了所有輸出。 代替

money = 100
if money == "100":
   print("You buy a pair of headphones.")
   money = 100
elif money <="50" and => "25":
    print("You buy a movie.")
    money = 25

elif money <= "25" and => "10":
     print("You buy a burger.")
     money = 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM