money = 170
KitKat = 90
choice1 = raw_input("Choose a snack: ")
选择零食:KitKat
if choice1 < money:
print ("Enjoy your snack")
else:
print ("You cannot afford ") + (choice1)
你买不起KitKat
这是我正在研发的自动售货机程序的缩短版本。你有一定数量的硬币,它要求你选择一个小吃。在这个缩短的程序中,你总是有170个硬币,你只能选择KitKat。然后通过比较变量来检查你是否能买得起KitKat:&#34; money&#34;和&#34; choice1&#34;看哪个更大。如果&#34;钱&#34;更大,它应该说&#34;享受你的零食&#34;。但如果&#34; choice1&#34;更大,它应该说&#34;你买不起KitKat&#34;。
问题是,当我测试它时,它总是认为&#34; choice1&#34;大于&#34;钱&#34;告诉我,我&#34;买不起KitKat&#34;。
我想也许当我输入&#34; KitKat&#34;它不会将其识别为变量并比较单词&#34; KitKat&#34;变量&#34; money&#34;而不是比较变量&#34; KitKat&#34;对变量&#34; money&#34;但我不确定。我出错了什么想法?
答案 0 :(得分:5)
为什么不用各种小吃的价格字典。
,而不是
KitKat=90
有
price ={}
price["KitKat"]=90
然后你可以改变线
if choice1 < money:
到
if price[choice1] < money:
答案 1 :(得分:0)
我建议使用@ user3684792的答案,但如果您想这样做,可以使用
choice1 = globals()[raw_input("Choose a snack: ")]
但我不建议。我想如果用户输入意想不到的东西会导致问题。
答案 2 :(得分:0)
您的选择可能是KitKat,但它仍然只是一个字符串'KitKat',并且无论如何都没有链接到变量KitKat。
如果您避免使用词典(最好的方法),您可以使用if
函数。
它很乱,但可以工作。
#define all prices
price_kitkat = 90
price_lolly = 12
price_twirl = 100
#define amount of money
money = 170
#Make your choice
choice1 = raw_input("Choose a snack: ")
#Find price of choice
if choice1 == 'KitKat':
price = price_kitkat
elif choice1 == 'Lolly':
price = price_lolly
elif choice1 == 'Twirl':
price = price_twirl
elif choice1 == '':
print "You didn't choose a snack!"
else:
print "Your snack doesn't exist!"
#can you afford it?
if price <= money:
print "You purchased a snack!
else:
print "You can't afford that!"