新手请教 Python 这段代码有什么问题么?

2021-01-20 11:31:50 +08:00
 Laynooor

我看来看去,横竖发现不了有什么问题,除了输入非数字的时候会报错?

题目原文是 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 的数字。

2095 次点击
所在节点    Python
6 条回复
engHacker
2021-01-20 11:35:53 +08:00
又来问作业了?
imn1
2021-01-20 12:10:55 +08:00
什么才算“正确的输出”?
最后输出 0 不算正确么?那么全部输入负数,最后输入 0,print 就是 0
溢出?
JeffGe
2021-01-20 12:16:45 +08:00
你试试输入 -5, -4, -3, -2, -1
renmu123
2021-01-20 12:24:10 +08:00
flag 不需要,直接在 else 里 break 就可以了。
输入负数有问题,可以把 maxnumber 初始值设置为负无穷。
输入非数字报错。
最后 str ()其实也没什么用。
lizytalk
2021-01-20 13:59:20 +08:00
负数就不对啊
zixu01
2021-01-29 17:24:19 +08:00
maxNumber 值 默认值可以设成 None,

```
if num > maxNumber:
maxNumber = num
```
之前,添加判断
```
if maxNumber is None:
maxNumber = num
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/746619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX