尝试将用户输入添加到python中的列表并有一个退出选项,但它会不断添加按钮以退出列表,并且它一直在寻找

时间:2017-10-19 21:56:40

标签: python python-3.x

好吧,我在制作这个程序时遇到一些麻烦,这个程序会将数字添加到空白列表中,然后让用户选择何时退出程序,当用户选择退出程序时,会自动找到平均值并显示它。但是每当用户退出程序时,它会在列表中添加“q”然后显然会崩溃,因为它无法找到带有字母的平均值。

def listsave():
list1 = []
x = None
while True:
    x = input('Enter integer (q to quit):')
    if x != 'q':
        list1.append(x)
    else:
        return sum(list1)/len(list1)

4 个答案:

答案 0 :(得分:0)

def listsave():
    list1 = []
    x = None
    while True:
        x = input('Enter integer (q to quit):')
        if x != 'q':
            list1.append(float(x))
        else:
            return sum(list1)/len(list1)

答案 1 :(得分:0)

我是个笨蛋,我想通了。你只需强制python将它作为一个int存储,并在变量附近添加int!

<form ...>
...
</form>
<script type="text/javascript"
    src="jquery-1.8.3.min.js"></script>
<script type="text/javascript"
    src="jszip-utils.js"></script>
<script type="text/javascript"
    src="jszip-utils.min.js"></script>
<script type="text/javascript"
    src="FileSaver.js"></script>
<script type="text/javascript"
    src="jszip.js"></script>

<script type="text/javascript"
    src="downloader.js"></script>
<script type="text/javascript"
    src="helpers.js"></script>

答案 2 :(得分:0)

def listsave():
    my_list = []
    while True:
        try:
            x = input('Enter integer (q to quit): ').strip()
            my_list.append(float(x))
        except ValueError:
            if x.lower() == 'q':
                break
            else:
                print('Input not an integer or "q"')
                continue
    return sum(my_list)/len(my_list)

答案 3 :(得分:0)

我建议如下。请注意,您不需要使用x初始化x = None(这样做不会被视为Pythonic)。您还希望在try块中尽可能少地执行操作,这样您就不会无意中发现无关的错误。

def average_from_user_input():
    items = []

    while True:
        item = input('Enter integer (q to quit): ')

        if item in ('q', 'quit'):
            return sum(items) / len(items) if items else 0

        try:
            item = int(item)
        except ValueError:
            print('Please enter integers only')
        else:
            items.append(item)