首页 > 解决方案 > 想在按下“e”后退出while循环,但循环认为“e”是输入并给我一个错误

问题描述

该代码是一个较大程序的一部分,我必须获取用户输入的数字列表,删除最小的数字(如果列表有 5 个或更多项目),然后平均它们。在程序中输入“e”应该会停止循环并显示列表。

def get_input():
    stop_loop = False
    number_list = []
    print('Press "e" to exit program once all numbers are inputted.')
    while not stop_loop:
        user_input = input('Please enter number: ')
        number = float(user_input)
        number_list.append(number)
        print(number_list)
        if user_input == 'e':
            stop_loop = True
    return number_list
Traceback (most recent call last):
  File "C:/Users/Duck/PycharmProjects/untitled/grader.py", line 105, in <module>
    main()
  File "C:/Users/Duck/PycharmProjects/untitled/grader.py", line 95, in main
    number_main = get_input()
  File "C:/Users/Duck/PycharmProjects/untitled/grader.py", line 34, in get_input
    number_list = float(user_input)
ValueError: could not convert string to float: 'e'

输入数字后,程序应继续执行下一个功能。

标签: python

解决方案


您应该在 之后检查输入是否为“e” user_input = input('Please enter number: '),因此您的代码可以如下所示:

def get_input():
    number_list = []
    print('Press "e" to exit program once all numbers are inputted.')
    while True:
        user_input = input('Please enter number: ')
        if user_input == 'e':
            break
        number = float(user_input)
        number_list.append(number)
        print(number_list)
    return number_list

推荐阅读