0

假设我要求用户输入书籍或其他内容中的行。我不知道他们会决定输入多少行。您如何让他们输入任意数量的行,直到他们输入一个秘密单词,例如“blueblue”。这就是我到目前为止的代码。

while (blueblue == false):
line1 = input()

帮助将不胜感激。

嘿,使用 Owen 的代码后,我在读取和输出一些信息时遇到了问题。我想在这里问它而不是打开另一个问题。这是我现在的代码:

lines = []
current_line = input()
while current_line != "blueblue":
    lines.append(current_line)
    current_line = input()
print (lines)
ints_list = []
for line_ in lines:
    for letter in line:
        if (letter == "0","1","2","3","4","5","6","7","8","9"):
             print ("hueheuheuehheuue")

现在说用户输入是:

1 hello my name
is cmput 3.4

它只会打印“huehueheuheu”输入时的字符数。我试过不带括号的数字,但还是不行,我什至试过“或”。请帮忙。

4

3 回答 3

3

有一种简单而简洁的方法可以做到这一点。

蟒蛇 3

for inputString in iter(input, "blueblue"):
    print (inputString)

蟒蛇2

for inputString in iter(raw_input, "blueblue"):
    print (inputString)

编辑:看起来您想为hueheuheuehheuue遇到的每个数字打印。可以这样做。

for inputString in iter(raw_input, "blueblue"):
    for inputChar in inputString:
        if inputChar.isdigit():
            print ("hueheuheuehheuue")
于 2013-09-18T00:59:38.020 回答
2
lines = []
current_line = input()
while current_line != "blueblue":
    lines.append(current_line)
    current_line = input()

# Process lines
于 2013-09-18T00:49:47.697 回答
0

这几乎就是你告诉它要做的事情。

您当前循环遍历每个字母 - 如果它是一个数字,则打印“huehue”,如果不是,则不执行任何操作。

因此,如果您的输入大于 3 或 4

你的程序认为

i > do nothing
n > do nothing
3 > huehue
o > do nothing
r > do nothing
4 > huehue

既然你没有说你想做什么,那就是我能做到的!

编辑 - 这是所需的输出?除了你的拼写错误,我本来希望它可以工作,但是当我加载它时,我得到了和你一样的东西。我按照我通常做的方式做了它并且它确实有效,但我不能告诉你为什么你的没有。在这种情况下,试试这个...

lines = []
current_line = str(raw_input(">"))
while current_line != "blueblue":
    lines.append(current_line)
    current_line = str(raw_input(">"))
print (lines)
numbers = ["0","1","2","3","4","5","6","7","8","9"]
for line in lines:
    for letter in line:
        if letter in numbers:
            print ("hueheuheuehheuue")

输入之后,我立即意识到问题所在。

if (letter == "0, "1" ... 正在检查 letter = 1,然后检查 "1",这将始终为真。移动括号如

如果字母 == ("0", "1", ...

也解决了这个问题。

于 2013-09-18T03:07:28.333 回答