gpt4 book ai didi

python - 尝试除了错误检查

转载 作者:行者123 更新时间:2023-11-30 23:02:25 25 4
gpt4 key购买 nike

我正在做一个在线类(class),并且我已经用这段代码完成了作业,但我仍然可以通过某些输入引发错误,我不明白为什么。我询问了类(class)导师(使用伪代码),他们说我的 try/except 语句有问题。

程序应一遍又一遍地提示用户输入数字,如果输入非数字内容,则返回错误,但字符串“done”除外,在这种情况下,它将返回以下值的最大值和最小值输入的所有数字。

这是程序:

largest = None
smallest = None

while True:

num = input("Enter a number: ")


if num == 'done': break

try:
float(num)

except:
print("Invalid input")
continue

if largest is None:
largest = num
elif largest < num:
largest = num

if smallest is None:
smallest = num
elif smallest > num:
smallest = num

print("Maximum is", largest)
print("Minimum is", smallest)

如果您输入以下值作为输入 1 2 3 pk 27 -37 did,则输出为 Max: 3, Min -37。

这让我发疯。我知道为什么会发生这种情况。

最佳答案

您将输入转换为浮点型,但不保留该输入以供以后检查。

稍后,在 except block 之后,Python 会进行字符串比较,并将字符串 "3" 与字符串 "27" 进行比较,因为 ' 3''2' '更大',它认为 "3" 大于 "27",就像 >“b” 大于 “aaabbbbzzz”

要修复它,请更改以下内容:

float(num)

对此:

num = float(num)

关于python - 尝试除了错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34504336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com