python - 问题包括异常处理以及查找最大和最小编号。这是coursera平台的作业问题
问题描述
问题:编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它并发出适当的消息并忽略它。
输入:
7 ,2 , bob, 10, 4, done.
期望的输出:
Invalid input
Maximum is 10
Minimum is 2
实际输出:
Invalid input
Invalid input
Maximum is 10
Minimum is 2
代码:
largest=-1
smallest=None
while True:
num =input("Enter a number: ")
try:
if num == "done" :
break
elif smallest is None:
smallest=int(num)
elif int(num)<smallest:
smallest=int(num)
elif int(num)>largest:
largest=int(num)
else:
raise ValueError()
except ValueError:
print("Invalid input")
print("Maximum is",largest)
print("Minimum is",smallest)
解决方案
我认为有一种更 Pythonic 的方式来做到这一点。尝试这个:
inputList = []
while True:
num = input("Enter a number:")
try:
num = int(num)
inputList.append(num)
except:
if num == "done":
break
else:
print ("Invalid input. Ignoring...")
print ("Maximum is:",max(inputList))
print ("Minimum is:",min(inputList))
编辑:此代码适用于 Python3。对于 Python2,您可能希望使用raw_input()
而不是input()
推荐阅读
- mysql - 我在 MySQL Workbench 工作,无法使用 UNNEST 功能;我得到一个括号错误
- javascript - 我怎样才能有一个基于 data.record 的嵌套对象的可排序列?
- javascript - 应用程序未找到 JavaScript 文件
- elasticsearch - 弹性搜索云 - 为重新索引添加 ca
- vba - 使用其他列 VBA 验证列中的日期格式
- android - 为什么我的应用程序在实例化助手类时崩溃?
- powershell - PowerShell 自定义模块清单不公开声明的函数
- c++ - 询问指向数组的指针是真还是假是什么意思?
- python - 在字符串中查找最长的数字子序列
- reactjs - 如何使用带有现有按钮的 react material-ui 快餐栏?