我目前正在学习Python编程课程,我们已经完成了通过提示用户找到最高编号的任务。 使用数组很容易完成,但我们无法将它们用于此分配。 我有一个问题,如果我输入一系列数字,如“55,100,99”我的程序告诉我的99是最高的数字。我不确定会出现什么问题。
largest = None
smallest = None
temp = None
while temp != "done":
num = raw_input("Enter a number: ")
if num == "done" :
break
try:
int(num)
except:
print ('That is not an integer. Try again')
break
print(largest)
if largest is None:
largest = num
if largest != None and num > largest:
largest = num
print ('Invalid input')
print "Maximum is", largest
print "Minimum is", smallest
答案 0 :(得分:1)
将int(num)
更改为num = int(num)
以保存类型转换
答案 1 :(得分:1)
变化:
int(num)
为:
num = int(num)
否则,num
仍然是一个字符串,因为您没有在任何地方保存转换结果。
答案 2 :(得分:0)
我认为除了套件中你不需要中断。原因是程序在执行除套件中的代码时退出。也就是说,您从字符串到 int 的类型转换不会保存在任何地方。要保存此功能,请尝试以下操作:
num= int(num) instead of just int(num)
答案 3 :(得分:0)
我认为除了将int(num)保存到num之外,你不需要检查每个循环的最大/最小是None,而只是在首次输入循环时初始化它:
ID 3
出错时你也可以提出异常,而不是仅仅突破循环(这样它更加pythonic并且不打印那些Max / Min结果)。