Python 仅当语句
我目前正在修一门Python编程课程,我们被指派完成一项任务,即通过提示用户找到给定的最大数字。 这将很容易完成一个数组,但我们无法将其用于此任务。 我有一个问题,如果我输入一系列数字,比如“5510099”,我的程序会告诉我99是最高的数字。我不确定出了什么问题Python 仅当语句,python,if-statement,numbers,highest,Python,If Statement,Numbers,Highest,我目前正在修一门Python编程课程,我们被指派完成一项任务,即通过提示用户找到给定的最大数字。 这将很容易完成一个数组,但我们无法将其用于此任务。 我有一个问题,如果我输入一系列数字,比如“5510099”,我的程序会告诉我99是最高的数字。我不确定出了什么问题 largest = None smallest = None temp = None while temp != "done": num = raw_input("Enter a number: ") if num =
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
将int(num)
更改为num=int(num)
以保存类型转换更改:
int(num)
致:
否则,
num
仍将是一个字符串,因为您没有将转换结果保存在任何位置。我认为您不需要在except套件中使用中断。原因是程序在执行except套件中的代码时退出。也就是说,从string到int的类型转换不会保存在任何位置。要保存此文件,请尝试以下操作:
num= int(num) instead of just int(num)
我认为,除了将int(num)保存到num之外,您不需要在每个循环中检查最大值/最小值是否为None,而只需在第一次输入循环时初始化它:
first=True
while True:
num = raw_input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
except:
print ('That is not an integer. Try again')
raise
if first:
largest = smallest = num
first = False
if num > largest:
largest = num
if num < smallest:
smallest = num
print "Maximum is", largest
print "Minimum is", smallest
first=True
尽管如此:
num=原始输入(“输入一个数字:”)
如果num==“完成”:
打破
尝试:
num=int(num)
除:
print('这不是整数。请重试')
提升
如果首先:
最大=最小=数值
第一个=错误
如果num>最大值:
最大=num
如果num<最小值:
最小=num
打印“最大值为”,最大值为
打印“最小值为”,最小值为
出现错误时,您也可以只引发异常,而不是只中断循环(这样它更像pythonic,并且不打印那些Max/Min结果)。您需要将
num
转换为整数,然后再将其与maximum
进行比较int(num)
单独进行比较。我猜您认为它做不到这一点。然后尝试type(num)
;惊讶Python是强类型的,您不能就地强制转换。您不能将num
到int
的转换分配给任何变量。如果最大值为None或num>最大值,您也可以:如果
first=True
while True:
num = raw_input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
except:
print ('That is not an integer. Try again')
raise
if first:
largest = smallest = num
first = False
if num > largest:
largest = num
if num < smallest:
smallest = num
print "Maximum is", largest
print "Minimum is", smallest