
我看来看去,横竖发现不了有什么问题,除了输入非数字的时候会报错?
题目原文是 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 imn1 2021-01-20 12:10:55 +08:00 什么才算“正确的输出”? 最后输出 0 不算正确么?那么全部输入负数,最后输入 0,print 就是 0 溢出? |
3 JeffGe 2021-01-20 12:16:45 +08:00 via Android 你试试输入 -5, -4, -3, -2, -1 |
4 renmu123 2021-01-20 12:24:10 +08:00 via Android flag 不需要,直接在 else 里 break 就可以了。 输入负数有问题,可以把 maxnumber 初始值设置为负无穷。 输入非数字报错。 最后 str ()其实也没什么用。 |
5 lizytalk 2021-01-20 13:59:20 +08:00 负数就不对啊 |
6 zixu01 2021-01-29 17:24:19 +08:00 maxNumber 值 默认值可以设成 None, 在 ``` if num > maxNumber: maxNumber = num ``` 之前,添加判断 ``` if maxNumber is None: maxNumber = num ``` |