我已经阅读了一篇关于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)) 如果你已经算出了上面的程序做了什么,你能看到吗,对于某些系列 对于数字,它不会产生正确的输出?在什么情况下它不会 正确工作,你如何才能改变程序使其正常工作?
我的理解是,上述程序将失败的数列是十进制数(非整数),因此我的尝试如下:
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,因为它是以字符串的形式读取的。
发布于 2018-06-12 16:14:28
此程序从输入序列中计算最大值。它将最大值存储在m中,如果输入一个大于它的num,则将其保持为新的最大值。
但是,请注意,m是用0初始化的,它隐含地假设至少要输入一个数字是正的。如果您只输入负数,您将得到0作为最大的数字,这显然是错误的,因为您从未输入它。
一个快速的解决方法是用m初始化None并显式地检查它:
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))https://stackoverflow.com/questions/50821216
复制相似问题