首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python介绍-数列

python介绍-数列
EN

Stack Overflow用户
提问于 2018-06-12 15:50:28
回答 1查看 79关注 0票数 0

我已经阅读了一篇关于python小册子的介绍,并且一直被困在下面的问题上。问题概述如下,我的尝试是在问题之后进行的。

参加这个项目: M=0 finish= False :print(‘输入另一个整数(0 to Finish)):',end =’‘s= input() num = int(s) if num != 0: if num > m: m= num if:finish= True print(str(m)) 如果你已经算出了上面的程序做了什么,你能看到吗,对于某些系列 对于数字,它不会产生正确的输出?在什么情况下它不会 正确工作,你如何才能改变程序使其正常工作?

我的理解是,上述程序将失败的数列是十进制数(非整数),因此我的尝试如下:

代码语言:javascript
复制
m='0'
finished = False
while not finished:
    print('enter number, 0 to finish: ', end = '')
    num = input()
    if num != '0':
        if num > m:
            m = num
    else:
        finished = True
print(m)

但是,这不能理解77大于8,因为它是以字符串的形式读取的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 16:14:28

此程序从输入序列中计算最大值。它将最大值存储在m中,如果输入一个大于它的num,则将其保持为新的最大值。

但是,请注意,m是用0初始化的,它隐含地假设至少要输入一个数字是正的。如果您只输入负数,您将得到0作为最大的数字,这显然是错误的,因为您从未输入它。

一个快速的解决方法是用m初始化None并显式地检查它:

代码语言:javascript
复制
m = None
finished = False
while not finished:
  print('Enter another whole number (0 to finish): ', end = '')
  s = input()
  num = int(s)
  if num != 0:
      if not m or num > m:
          m = num
  else:
      finished = True
print(str(m))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50821216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档