来自用户的是/否输入确定while循环是否继续

时间:2014-05-16 00:25:23

标签: python function loops input

我已经阅读了其他类似主题的问题,但我只是不理解,而且没有一个能够奏效。所以这是我的代码,我需要做的是让用户输入一个数字,然后决定是否要继续。一旦完成,我调用一个函数来检查他们输入的数字是最小的数字。检查最小数字部分是正确的,但我不能得到是/否输入与其余代码一起工作。请帮忙!

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 个答案:

答案 0 :(得分: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)

答案 1 :(得分:-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....返回一个布尔值。一旦done变为true,它就会结束循环。

由于我们现在在函数中初始化listnum,我们称之为

numbers = EnteringNum()
Smallest(numbers)