我目前正在关注Zed Shaw关于Python的书,学习Python的艰难之路以及我正在学习的功能。我决定遵循课程中的一些额外学分练习,并添加了IF ELSE流程声明。这是我下面的代码。
print "How much bottles of water do you have?"
water = raw_input("> ")
print "How many pounds of food do you have?"
food = raw_input("> ")
if food == 1:
def water_and_food(bottles_of_water, food):
print "You have %s bottles of water" % bottles_of_water
print "And %s pound of food" % food
else:
def water_and_food(bottles_of_water, food):
print "You have %s bottles of water" % bottles_of_water
print "And %s pounds of food" % food
water_and_food(water, food)
我想做的就是这个。如果用户输入他们有1磅的食物,它将显示"你有1磅的食物"如果他们输入他们有2磅或更多的食物,它将显示"你有2磅的食物,"英镑的差异是单数还是复数。
然而,如果我放1,它仍会显示"你有1磅的食物,"但是,如果我直接为变量水和食物分配一个数字,它将起作用。
答案 0 :(得分:4)
raw_input
的返回值是一个字符串,但是当你检查food的值时,你正在使用int。实际上,if food == 1
永远不会是True
,因此流程始终默认为复数形式。
您有两种选择:
if int(food) == 1:
上面的代码会将food
强制转换为整数类型,但如果用户没有输入数字,则会引发异常。
if food == '1':
上面的代码检查 string '1'而不是整数(注意周围的引号)。
答案 1 :(得分:1)