2014-11-21 183 views
-2
num = int(raw_input()) 


list1 = [] 

while num != 10: 
list1.append(num) 
if num == 10: 
    break 
    print "quit" 
    print list1 

我不明白为什么这不起作用,任何人都可以解释? 基本上我只是想让它反复运行,直到输入数字10,然后打印列表中的每个项目都试图附加到它。不能工作为什么这个while循环不起作用

嘿感谢球员(尤其是英镑)我愚蠢地忘了把原料输入到循环

list1 = [] 
num = 0 
while num != 10: 
    num = int(raw_input()) 
    list1.append(num) 
if num == 10: 
    print "quit" 
print list1 
+0

你得到了什么错误信息? – dazedconfused 2014-11-21 01:12:56

+0

需要一个语言标签。 – Thilo 2014-11-21 01:14:07

+0

阅读教程。这段代码甚至没有正确缩进。 – simonzack 2014-11-21 01:16:17

回答

0

提示:

  1. 你没有得到输入回路,你获得一次输入。
  2. 什么是bar?你没有定义它。你的意思是num
  3. 您的缩进已关闭。 (这对Python很重要)。
  4. 如果您将print "quit"print list1放在if语句的内部,但突破它,您将永远不会执行这些语句。 (虽然这可以使用正确的缩进来固定)
+0

为什么倒票? – Dair 2014-11-21 01:19:20

+0

我不知道;我虽然赞成你 - 这是一个蹩脚的问题,但你给了它一个很好的,有帮助的,彻底的建议。 – TessellatingHeckler 2014-11-21 01:21:05

+0

嘿thankyou磅,我想我刚刚写了原始输入,并忘记了它,把它放在里面工作:-)谢谢 – 2014-11-21 01:27:58

0

首先,您的代码缩进处于关闭状态。

num = int(raw_input()) 


list1 = [] 

while num != 10: 
list1.append(bar) 
if num == 10: 
    break 
    print "quit" 
    print list1 

while循环内的代码应该缩进另一个级别。同样,在我们添加numlist1以防止我们捕获list1(除非需要)之前我们应该中断。这导致以下结果。

num = int(raw_input()) 
list1 = [] 
while num != 10: 
    if num == 10: 
     break 
    list1.append(bar) 
print "quit" 
print list1 

现在我们来看看num作业的问题。 raw_input只调用一次,因此您只能输入一次值。然后,您尝试在您的list1附加值bar(这是您的代码中不存在的变量)。

取而代之,让我们重构一下,以在while循环中捕获raw_input。首先,我们分配num""(空字符串),然后在循环期间接收新值。

请注意,我删除了铸件到int,因为我们需要重新使用此输入作为string而不是int。另外请注意,我现在通过使用引号比较数字来执行字符串比较,而不是比较整数值。

list1 = [] 
num = "" 
while num != "10": 
    num = raw_input() 
    if num == "10": 
     break 
    list1.append(num) 
print "quit" 
print list1 

这是已完成的代码,这增加了新的raw_input值从用户到list1直到10一个值被提供,在该点它停止执行并打印list1

相关问题