python - 代码在第一次询问后给了我错误的输出
问题描述
为什么每当它要求输入时,我将其输入并给出正确的输出,但之后无论如何它都会给出相同的输出?例如,我输入 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()
即使在第一次要求输入之后,它也应该提供正确的输出。
解决方案
你永远不会改变item
in 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()
推荐阅读
- r - R readr::read_csv 永远读取一个向量
- javascript - 在电子表格中可视化嵌套的 JSON 对象
- ruby-on-rails - ArgumentError:参数数量错误(给定 0,预期 2..3)
- cassandra - 在 cassandra 集合内存储计数器
- php - 会话的未知索引
- javascript - 获取在调试器中等待断点所花费的时间
- css - 的消失
- python - 如何使用 cv2 和 python 删除图像中的虚线
- emacs - 为什么 slime 的“包装”与劣质 lisp 不同?
- node.js - 开发 Angular 应用程序时的用户本地图像