[英]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.