[英]If…else statement issue with raw_input on Python
我現在正在關注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磅的食物”,但是如果我直接為水和食物的變量分配一個數字,它將起作用。
raw_input
的返回值是一個字符串,但是當你檢查food的值時,你使用的是int。 實際上, if food == 1
永遠不能為True
,那么流程總是默認為復數形式。
您有兩種選擇:
if int(food) == 1:
上面的代碼會將food
轉換為整數類型,但如果用戶沒有輸入數字,則會引發異常。
if food == '1':
上面的代碼檢查字符串 '1'而不是整數(注意周圍的引號)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.