首页 > 解决方案 > 代码在第一次询问后给了我错误的输出

问题描述

为什么每当它要求输入时,我将其输入并给出正确的输出,但之后无论如何它都会给出相同的输出?例如,我输入 5 作为输入,然后它给了我正确的输出,但之后它再次要求输入,当我输入例如 10 之类的输入时,它给我的输出是 5 而不是 10。

def menu():


        print()
       # display the menu
        print('Select from the following option:')
        print('\t1) Category')        
        print('\t2) Item')
        print('\t3) Serving Size')
        print('\t4) Calories')
        print('\t5) Calories From Fat')
        print('\t6) Total Fat')
        print('\t7) Cholesterol')
        print('\t8) Sodium')
        print('\t9) Carbohydrate')
        print('\t10) Protein')
        print('\t11) Sugars')
        print('\t12) Quit')
       # Ask the user to a number.
        item = input('Enter Number Command:')
        return item

item = menu()

while item != '12':

        if item == '1':
                print('\t1) Category')
        elif item == '2':

                print('\t2) Item')
        elif item == '3':
                print('\t3) Serving Size')

        #more elif statements I didn't put in so it wouldn't be too much
        else:   
                print('..invalid number...please put valid number')
        item != menu()

menu()

即使在第一次要求输入之后,它也应该提供正确的输出。

标签: python

解决方案


你永远不会改变itemin line 的值:

item !=menu()

您正在运行menu(),这就是您看到菜单打印的原因,但 item 的值永远不会更新。只需将不等式更改为相等:

def menu():


        print()
       # display the menu
        print('Select from the following option:')
        print('\t1) Category')        
        print('\t2) Item')
        print('\t3) Serving Size')
        print('\t4) Calories')
        print('\t5) Calories From Fat')
        print('\t6) Total Fat')
        print('\t7) Cholesterol')
        print('\t8) Sodium')
        print('\t9) Carbohydrate')
        print('\t10) Protein')
        print('\t11) Sugars')
        print('\t12) Quit')
       # Ask the user to a number.
        item = input('Enter Number Command:')
        return item

item = menu()

while item != '12':

        if item == '1':
                print('\t1) Category')
        elif item == '2':

                print('\t2) Item')
        elif item == '3':
                print('\t3) Serving Size')

        #more elif statements I didn't put in so it wouldn't be too much
        else:   
                print('..invalid number...please put valid number')
        item = menu() # item will be updated and assigned a new value

menu()

推荐阅读