用户输入列表,没有指定的迭代量

时间:2014-08-21 14:27:07

标签: python

编辑 - 显然这是重复的。虽然我毫无疑问核心问题在其他地方得到了解答,但我认为这个级别是相当明显的,因此能够理解其他解决方案并将它们转换成我自己的问题的能力就会降低。我在询问前搜查过。

我只是弄得一团糟,并试图用用户输入写一点东西。

但是,如果不知道需要多少次迭代,或者有两个问题,我不知道如何解决这个问题?

我试图修改它以采取if条件,但我不是真的想要但是这也不起作用:

for i in range(50):
    userIn = raw_input()
    urlList.append(userIn)
    print 'Continue? Y/N'
    ynAns = raw_input()
    if ynAns == 'n' or 'N':
        break

基本上我只是尝试用户输入来填充列表然后将其打印出来。

我也试过

import sys

listOne = []
num = int(raw_input('How many'))

for x in range(num):
    listOne.append(raw_input(('Entry #' + x+1 + ' '))


print listOne

非常基本

3 个答案:

答案 0 :(得分:1)

您需要将ynAns'n''N'进行比较:

if ynAns == 'n' or ynAns == 'N':

另一种语法:

if ynAns in ('n', 'N'):

if语句不起作用的原因是ynAns == 'n''N'是两个单独的表达式。 'N'始终评估为True,因此if条件始终为真。

答案 1 :(得分:1)

这基本上是jh314的答案,但更短:

if ynAns.lower() == 'n':

它的作用是将ynAns转换为小写,使您的代码更简洁。

答案 2 :(得分:1)

请勿使用for循环,限制您的应用在50次迭代的限制内运行,而是使用while

userInput = None
userInput = raw_input("Enter input (N or n to stop): ")
while(userInput not in ['N', 'n']):
    urlList.append(userIn)
    userIn = raw_input("Enter input (N or n to stop): ")