为什么不同的数字赢了';在这个python代码中不工作?

为什么不同的数字赢了';在这个python代码中不工作?,python,Python,我尝试使用python提示用户输入不同的数字,并保留最大的数字,当用户输入“完成”时完成。但我发现它不能与不同的数字一起工作。例如,第一个条目:91,第二个条目:94,它将运行良好。但是第一个条目:91和第二个条目:100,它不能将100记录为最大数字。有人知道发生了什么事吗?非常感谢你 代码: max=None 最小=无 尽管如此: num=原始输入(“输入一个数字:”) 如果num==“完成”: 打破 try:int(num) 除: 打印“请输入数字” 如果最大值为无,最小值为无: 最大=n

我尝试使用python提示用户输入不同的数字,并保留最大的数字,当用户输入“完成”时完成。但我发现它不能与不同的数字一起工作。例如,第一个条目:91,第二个条目:94,它将运行良好。但是第一个条目:91和第二个条目:100,它不能将100记录为最大数字。有人知道发生了什么事吗?非常感谢你

代码:

max=None
最小=无
尽管如此:
num=原始输入(“输入一个数字:”)
如果num==“完成”:
打破
try:int(num)
除:
打印“请输入数字”
如果最大值为无,最小值为无:
最大=num
最小=num
#打印“l”,最大
#打印“s”,最小
如果num>最大值:
最大=num
打印最大值,num
#如果num<最小值:
#最小=num
#打印“s2”,最小
打印数
打印“最大值为”,最大值为
#打印“最小值为”,最小值为

您正在进行ASCII比较,而不是数字比较。您需要实际分配类似于
number=int(num)
的值,并使用
number
进行比较。

问题是您没有将
num
转换为整数,因此它使用字符串比较而不是数字比较。更改:

try: int (num)
致:


你有很多问题。看看这个,也许你可以把它合并到你自己的代码中

largest = 0

while True:
    prompt = raw_input("Enter a number: ")
    try:
        num = int(prompt)
        if num > largest:
            largest = num
    except:
        if prompt == 'done':
            break

print largest

raw\u input
返回一个字符串。因此,当您比较
num>最大值时,您使用的是字符串(字母顺序)比较。你想比较数字。最简单的方法是简单地将比较重写为
int(num)>int(max)

try:int(num).
已检查输入是否为数字,但不会更改变量的值


注意:
除非
没有异常类型通常不是一个好主意。您应该明确地写下要捕获的异常:
ValueError

您是否尝试保留测试结果?问题在于
int(num)
——这不会永久地更改
num
的类型。是的,我现在就得到了,非常感谢!
try:
    num = int(num)
largest = 0

while True:
    prompt = raw_input("Enter a number: ")
    try:
        num = int(prompt)
        if num > largest:
            largest = num
    except:
        if prompt == 'done':
            break

print largest