我看来看去,横竖发现不了有什么问题,除了输入非数字的时候会报错?
题目原文是 for certain series of integers...will not produce the correct output
flag = False
maxNumber = 0
while not flag:
print("请输入数字( 0 结束输入): ", end="")
userInput = input()
num = int(userInput)
if num != 0:
if num > maxNumber:
maxNumber = num
else:
flag = True
print(str(maxNumber))
您是否可以看到,如果输入某些整数序列,它不会产生正确的输出? 在什么情况下它将无法正常工作?如何更改程序以使其正常工作? 您可以假定用户将在最后一个 0 之前输入至少一个非 0 的数字。
1
engHacker 2021-01-20 11:35:53 +08:00 via iPhone 2
又来问作业了?
|
2
imn1 2021-01-20 12:10:55 +08:00 1
什么才算“正确的输出”?
最后输出 0 不算正确么?那么全部输入负数,最后输入 0,print 就是 0 溢出? |
3
JeffGe 2021-01-20 12:16:45 +08:00 via Android 1
你试试输入 -5, -4, -3, -2, -1
|
4
renmu123 2021-01-20 12:24:10 +08:00 via Android 1
flag 不需要,直接在 else 里 break 就可以了。
输入负数有问题,可以把 maxnumber 初始值设置为负无穷。 输入非数字报错。 最后 str ()其实也没什么用。 |
5
lizytalk 2021-01-20 13:59:20 +08:00 1
负数就不对啊
|
6
zixu01 2021-01-29 17:24:19 +08:00
maxNumber 值 默认值可以设成 None,
在 ``` if num > maxNumber: maxNumber = num ``` 之前,添加判断 ``` if maxNumber is None: maxNumber = num ``` |