python - 我在这里得到不同的最大值和最小值
问题描述
这是一个反复提示用户输入整数直到用户输入“完成”的程序。一旦输入“完成”,它就会打印出最大和最小的数字。
自定义输入如下:
7
2
11
flip
10
4
done
输出:
输入无效
最大值为 10
最小值为 4
预期输出:
输入无效
最大值为 11
最小值为 2
a=list()
while True:
sval=input()
if sval == "done":
break
try:
value=int(sval)
a.append(value)
except:
print("Invlid")
continue
def sml():
val=a[0]
for i in range(len(a)):
if a[i]<val:
smalles=a[i]
print("Minimum is",smalles)
def lge():
val=a[0]
for i in range(len(a)):
if a[i]>val:
larges=a[i]
print("Maximum is",larges)
lge()
sml()
解决方案
而不是在追加到数组之后找到最大值和最小值,您可以在之前找到它。这将减少每次迭代数组以找到最大值和最小值的成本。
a=list()
max_, min_ = float('-inf'), float('inf')
while True:
sval=input()
if sval == "done":
break
try:
value = int(sval)
if value > max_:
max_ = value
elif value < min_:
min_ = value
a.append(value)
except:
print("Invalid")
continue
print("Maximum is", max_)
print("Minimum is", min_)
推荐阅读
- php - 使用 Twilio。如果在 X 时间内没有人加入会议,则将会议参与者发送到“语音信箱”录音
- c++ - 这个 void 函数会返回一个值吗?还是我必须添加一个“&”?
- excel - 我可以使用 VBA 更改 Windows/Camera 保存新图像的位置吗
- spring-boot - 当数据库中的数据更新时,Spring Boot 中的缓存如何工作?
- javascript - 有没有办法使用 Selenium 检测是否有元素阻塞了可点击元素?
- sql-server - pyodbc:使用带有 TEXT / NTEXT 列的 fast_executemany 的内存错误
- c# - 透明动画 gif 图片显示在另一张图片上方
- ignite - Apache Ignite:序列化时的类型替换
- javascript - 等待不等待
- javascript - 尝试在 AFrame 中使用 javascript 将组件添加到实体