python - 如何找到不使用 min() 或 max() 的输入的最小和最大数
问题描述
我收到一门课程,要求我:“编写一个程序,反复提示用户输入整数,直到用户输入‘完成’。一旦输入‘完成’,打印出最大和最小的数字. 如果用户输入的不是有效数字,请使用 try/except 捕获它并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。所需的输出是:
Invalid input
Maximum is 10
Minimum is 2
"
我没有学过 min() 和 max()。所以我想我不应该使用它。有一些给定的代码开始:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" : break
print(num)
print("Maximum", largest)
到目前为止,我已经能够通过这样做来完成最大的工作:
largest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
number = int(num)
except:
print ("Invalid Input")
break
if largest is None:
largest = number
elif largest < number:
largest = number
elif largest > number:
continue
print ("Maximum is", largest)
但是每当我尝试输入“最小”变量时,我不确定我应该如何制作它,因为如果我只是把它粘在里面,它会打印为 Minimum is None。
smallest = None
largest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
number = int(num)
if largest is None:
largest = number
elif largest < number:
largest = number
elif largest > number:
continue
elif smallest is None:
smallest = number
elif smallest > number:
smallest = number
elif smallest > number:
continue
print ("Maximum is", largest)
print ("Minimum is", smallest)
如果你能帮助我遵循我在这里使用的相同类型的代码,而不是使用 min()、max() 或其他更高级的代码,因为这是一个初学者的 Python 课程,那可能会很棒。
谢谢你!!!!<3
解决方案
试试这个代码:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
number = int(num)
except:
print ("Invalid Input")
break
if largest is None:
largest = number
elif largest < number:
largest = number
elif largest > number:
pass
if smallest is None:
smallest = number
elif smallest < number:
pass
elif smallest > number:
smallest=number
print ("Maximum is", largest)
print("Minimum is", smallest)
我也是新手,但我的观点是您使用“继续”而不是“通过”。它们是不同的。
推荐阅读
- java - 无法在 Kotlin 中将字符串解析为文件
- git - 我无法在 github 上上传 react-native expo 项目
- sql - 如何通过将下一行的值与前一个值进行比较来找到下一行的值?
- javascript - 重新渲染 MathJax 文本?
- docker - 在 Kubernetes 中创建部署时引用 Dockerfile 的正确方法是什么?
- javascript - 创建 IDP SAML 响应
- java - 在java中使用new关键字而不定义变量
- sql - 具有超过 2 个结果列的透视/取消透视 oracle sql 查询
- python - 一个pandas列的累积总和,直到达到最大值,平均相邻行
- bash - shell 脚本中需要一元运算符