用户输入到列表,无需指定的迭代次数

2024-04-25 20:18:40 发布

您现在位置: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

相当基本


Tags: 用户in编辑核心forinputrawif
3条回答

不要为此使用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): ")

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

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

另一种语法:

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

您的if语句不起作用的原因是ynAns == 'n''N'是两个独立的表达式。'N'总是求值为True,因此if条件总是真的。你知道吗

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

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

它所做的是将ynan转换成小写,使您的代码更加简洁。你知道吗

相关问题 更多 >