Python 为什么我会得到一个错误和一个无限循环?

Python 为什么我会得到一个错误和一个无限循环?,python,python-2.7,Python,Python 2.7,这就是问题所在。 编写一个基于shell文本的程序,名为fruit_list.py,它创建水果名“苹果”、“橘子”、“香蕉”、“西瓜”、“梨”的列表,并要求用户从1到5中选择一个数字。然后程序打印列表上的相应项。注意项目编号和列表索引之间的差异。请参见下面的示例。 例如: 这是我的更新输入: x = ['Apple', 'Orange', 'Banana', 'Water Melon', 'Pear'] y = [1, 2, 3, 4, 5] fruits = str(raw_input())

这就是问题所在。 编写一个基于shell文本的程序,名为fruit_list.py,它创建水果名“苹果”、“橘子”、“香蕉”、“西瓜”、“梨”的列表,并要求用户从1到5中选择一个数字。然后程序打印列表上的相应项。注意项目编号和列表索引之间的差异。请参见下面的示例。 例如:

这是我的更新输入:

x = ['Apple', 'Orange', 'Banana', 'Water Melon', 'Pear']
y = [1, 2, 3, 4, 5]
fruits = str(raw_input())

while fruits > "5" or fruits <= "0":
print " Pick a number between 1 and 5:"
fruits = str(raw_input()) 

else:
 print x
错误是它正在打印所有的水果。我希望每个数字都与每个水果相关,但它们都在打印

这就是错误: mes MacBook Air:desktop me$python fruit_list.py

选择一个介于1和5之间的数字: 0 选择一个介于1和5之间的数字:

选择一个介于1和5之间的数字: 7. 选择一个介于1和5之间的数字: 2. [‘苹果’、‘橘子’、‘香蕉’、‘西瓜’、‘梨’]
mes MacBook Air:desktop me$

您发布的提示并不意味着需要循环

fruit_list = ['Apple', 'Orange', 'Banana', 'Water Melon', 'Pear']
usr_num = int(input('Pick a number between 1 and 5.'))
print fruit_list[usr_num-1]
这对我很有用。我不确定你带着线圈去了哪里。请避免将x和y用于可明确命名为“水果列表”的项目


编辑:只是想补充一点,我正在从usr_num中减去1,因为python索引从0开始,而不是从1开始。

你的意思是y=intraw_input吗?这会导致TypeError,因为你在python中比较str和intfor循环涉及迭代一个iterable,比如列表、元组、数组、生成器等。对于y in x:是一个语法错误,因为y已经定义了。尝试:在x:printfruit中选择水果。更好的是,进入你老师的办公时间。这里发生了很多事情,你最好学会分类。不要使用x和y——它们是非常容易混淆的名称——使用例如水果列表和数字列表。水果列表中的水果:打印水果更有意义,对吗?而且per while list_integers>5-很明显,这没有意义-列表不能说大于数字-只有数字可以大于数字。是的,我看到了,但我正在尝试执行while循环,因此每当用户输入大于5的数字时,它会自动告诉他们输入1到5之间的数字。如果它在这些范围之间,它会打印出与之对应的水果。我运行的是2.7,我的教授说有一个while循环,我只是一直在思考如何正确地做而不把事情搞糟。我仍然不明白为什么while循环会有用。您所描述的内容可以使用if语句来完成。
fruit_list = ['Apple', 'Orange', 'Banana', 'Water Melon', 'Pear']
usr_num = int(input('Pick a number between 1 and 5.'))
print fruit_list[usr_num-1]