Python 仅当语句

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 =

我目前正在修一门Python编程课程,我们被指派完成一项任务,即通过提示用户找到给定的最大数字。 这将很容易完成一个数组,但我们无法将其用于此任务。 我有一个问题,如果我输入一系列数字,比如“5510099”,我的程序会告诉我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
int(num)
更改为
num=int(num)
以保存类型转换

更改:

int(num)
致:


否则,
num
仍将是一个字符串,因为您没有将转换结果保存在任何位置。

我认为您不需要在except套件中使用中断。原因是程序在执行except套件中的代码时退出。也就是说,从stringint的类型转换不会保存在任何位置。要保存此文件,请尝试以下操作:

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