python - 想在按下“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'
输入数字后,程序应继续执行下一个功能。
解决方案
您应该在 之后检查输入是否为“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
推荐阅读
- reactjs - 在运行时从外部字符串加载 JSX
- javascript - 在 Firebase 托管上托管 Vue
- python - 如果元素包含特定字符,则从列表或集合中删除元素
- php - PHP用混合字母和数字按键对数组元素进行排序
- flutter - 颤振不良状态:未来已经完成并且断言失败:第 2113 行 pos 12:'!_debugLocked':不正确
- powershell - 如何在 Visual Studio Code 中将 Powershell 脚本作为 noprofile 启动
- r - R:如何将嵌套的 JSON 转换为数据框
- javascript - 如何为wordpress中的自定义rest api字段添加值?
- git - 是否必须创建 IAM 用户才能使用 AWS CodeCommit?
- conan - 什么是柯南包中的_/_?