Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 最高负值_Python_Python 3.x_User Input_Highest - Fatal编程技术网

Python 最高负值

Python 最高负值,python,python-3.x,user-input,highest,Python,Python 3.x,User Input,Highest,我不明白为什么这样不行。我想从一系列用户输入的负数中打印最高负数。例如,用户输入:-1,-5,-3,程序返回-1。但是我的程序(如下)返回-5。为什么会这样?我的代码完全搞乱了吗?我知道我可以使用一个列表和max来处理它,但我不想让程序过于复杂 x = 0 done = False while not done: y = int(input("Enter another number (0 to end): ")) num = y if num != 0:

我不明白为什么这样不行。我想从一系列用户输入的负数中打印最高负数。例如,用户输入:-1,-5,-3,程序返回-1。但是我的程序(如下)返回-5。为什么会这样?我的代码完全搞乱了吗?我知道我可以使用一个列表和max来处理它,但我不想让程序过于复杂

x = 0
done = False
while not done:
    y = int(input("Enter another number (0 to end): "))
    num = y
    if num != 0:
        if num < x:
            x = num
    else:
        done = True
print(str(x))
x=0
完成=错误
虽然没有这样做:
y=int(输入(“输入另一个数字(0到结尾):”)
num=y
如果num!=0:
如果num
您从未将输入值与迄今为止最大的负值进行比较。您还将初始值设置为零,这不是合适的结果值。处理这些问题的一种方法是更换线路

if num < x
    x = num
如果num

如果num<0且(x==0或x
当然还有其他方法,包括将
x
设置为尽可能小的负数。这将简化您的比较,因为在我上面的代码中,只对
x
进行了检查,以前从未设置过


请注意,如果根本没有输入负数,则结果为零。这可能不是您想要的。

您从未将输入值与迄今为止最大的负值进行比较。您还将初始值设置为零,这不是合适的结果值。处理这些问题的一种方法是更换线路

if num < x
    x = num
如果num

如果num<0且(x==0或x
当然还有其他方法,包括将
x
设置为尽可能小的负数。这将简化您的比较,因为在我上面的代码中,只对
x
进行了检查,以前从未设置过


请注意,如果根本没有输入负数,则结果为零。这可能是你想要的,也可能不是你想要的。

你的操作符应该大于
,不小于
你的操作符应该大于
,不小于
最高负值与最大值相同

现在,循环不变量应该是
x
是迄今为止观察到的最大值。但您实际上存储了迄今为止观察到的最小值:实际上,如果新值小于,则将其分配给
x

因此,一个快速解决方法是将比较改为
。但现在,初始最大值将为
0
。我们可以将初始值设置为例如
None
,如果
x
None
,则将
x
设置为输入值

x = None
done = False
while not done:
    y = int(input("Enter another number (0 to end): "))
    num = y
    if num != 0:
        if x is None or num > x:
            x = num
    else:
        done = True
最高负值与最大值相同

现在,循环不变量应该是
x
是迄今为止观察到的最大值。但您实际上存储了迄今为止观察到的最小值:实际上,如果新值小于,则将其分配给
x

因此,一个快速解决方法是将比较改为
。但现在,初始最大值将为
0
。我们可以将初始值设置为例如
None
,如果
x
None
,则将
x
设置为输入值

x = None
done = False
while not done:
    y = int(input("Enter another number (0 to end): "))
    num = y
    if num != 0:
        if x is None or num > x:
            x = num
    else:
        done = True

只需使用内置的
max
函数即可找到最大数量

numbers = []
done = False
while not done:
    number = int(input("Enter another number (0 to end): "))
    if number < 0:
        numbers.append(number)
    else:
        done = True

print(max(numbers)) 
number=[]
完成=错误
虽然没有这样做:
number=int(输入(“输入另一个数字(0到结尾):”)
如果数字<0:
数字。追加(数字)
其他:
完成=正确
打印(最大(数字))

只需使用内置的
max
函数即可找到最大数量

numbers = []
done = False
while not done:
    number = int(input("Enter another number (0 to end): "))
    if number < 0:
        numbers.append(number)
    else:
        done = True

print(max(numbers)) 
number=[]
完成=错误
虽然没有这样做:
number=int(输入(“输入另一个数字(0到结尾):”)
如果数字<0:
数字。追加(数字)
其他:
完成=正确
打印(最大(数字))

因为-5<-1?这就是最高负值的含义。那你要最小的吗?反向操作您正在将x设置为最低值,而不是最高值。在
if num
中反转比较器“我知道我可以使用一个列表和最大值,但我不想使程序过于复杂”您的方式使程序过于复杂。使用
max
将是一行代码。因为-5<-1?这就是最高负值的含义。那你要最小的吗?反向操作您正在将x设置为最低值,而不是最高值。在
if num
中反转比较器“我知道我可以使用一个列表和最大值,但我不想使程序过于复杂”您的方式使程序过于复杂。使用
max
将是一行代码。这是一个很好的代码。感谢您的解释,并展示了一行示例。真令人印象深刻!这是很好的代码。感谢您的解释,并展示了一行示例。真令人印象深刻!很好的解决方案。非常感谢。我不熟悉使用None,但我现在会记住它以供将来参考。很好的解决方案。非常感谢。我不熟悉使用None,但我现在会记住它以供将来参考。
numbers = []
done = False
while not done:
    number = int(input("Enter another number (0 to end): "))
    if number < 0:
        numbers.append(number)
    else:
        done = True

print(max(numbers))