2014-05-16 28 views
-3

我已经阅读了类似主题的其他问题,但我只是不明白,没有一个能够工作。所以这里是我的代码,我需要做的是让用户输入一个数字,然后决定是否要继续。一旦完成,我会调用一个函数来检查他们输入的是最小的数字。检查最小的数字部分是对的,但我不能得到yes/no的输入来处理其余的代码。请帮忙!有来自用户的是/否输入确定while循环是否继续

listnum = [] 

def EnteringNum(): 
    done = False 
    while not done: 
     num = input("Enter a number!") 
     listnum.append(num) 
     con = raw_input("Do you wish to continue?") 
     if con.startswith("n") or con.startswith("N"): 
      exit() 

def Smallest(listnum): 
    lowest = listnum[0] 
    for i in range(len(listnum)): 
     if listnum[i] < lowest: 
      lowest = listnum[i] 
    print lowest 

EnteringNum() 
Smallest(listnum) 
+2

“我只是不明白” - 好,你不明白的是什么?你读过什么问题?他们应该已经解释了具体做什么。我们可以指出你需要做出的改变 - 事实上,有人可能会在几分钟内做到这一点 - 但这可能不会解决你的理解,或教你用类似问题的答案来解决问题。 – user2357112

+1

你应该清楚地说明当你运行你的代码时发生了什么。我假设'exit()'是一个错误,但如果你说出了详细的错误,写一个答案会容易得多。 – Blckknght

回答

-1

运行exit()将退出您的整个程序。如果你只是想结束循环,你可以把它改成

def EnteringNum(): 
    listnum = [] 
    done = False 
    while not done: 
    num = input("Enter a number!") 
    listnum.append(num) 
    con = raw_input("Do you wish to continue?") 
    if con.startswith("n") or con.startswith("N"): 
     done = True 
    return listunum 

,或者你可以摆脱if条款与

con = raw_input('Do you wish to continue?') 
done = con.startswith("n") or con.startswith("N") 

因为con.startswith....返回boolean。一旦你的done变成true,它将结束循环。

因为我们现在在函数初始化listnum,我们把它叫做

numbers = EnteringNum() 
Smallest(numbers) 
+0

我不认为全球'listnum'是提问者问题的一部分(尽管从设计的角度来看这可能是一个坏主意)。除了混合,这是一个很好的答案! – Blckknght

0

反而,exit(),只是把break

listnum = [] 

def EnteringNum(): 
    done = False 
    while not done: 
     num = input("Enter a number!") 
     listnum.append(num) 
     con = raw_input("Do you wish to continue?") 
     if con.lower().startswith("n"): 
      break 

def Smallest(listnum): 
    lowest = listnum[0] 
    for i in range(len(listnum)): 
     if listnum[i] < lowest: 
      lowest = listnum[i] 
    print lowest 

EnteringNum() 
Smallest(listnum) 
相关问题