繁体   English   中英

为什么max()函数不能按预期运行?

[英]Why doesn't the max() function run as it is expected?

numbers = []

first_input = input('Write any number.When you are done just write "done":')
numbers.append(first_input)

while first_input:
    input_numb = input("Write next number")
    if input_numb == int():
        numbers.append(input_numb)
    elif input_numb == "done":
        print("The largest number is "+max(numbers))
        print("The smallest number is "+min(numbers))
        break

有人可以看一下这段代码,然后告诉我我做错了什么吗? 输入数字后,我要打印列表numbers的最大和最小数字,但是我不知道为什么max函数不返回最大数字,而是返回最小数字(就像min函数一样。为什么? ?

numbers = []

first_input = input('Write any number.When you are done just write "done":')
numbers.append(int(first_input))

while first_input:
    input_numb = input("Write next number")
    try:
        numbers.append(int(input_numb))
    except:
        if input_numb == "done":
            print("The largest number is ", max(numbers))
            print("The smallest number is ", min(numbers))
            break
        else:
            print('invalid input!')

出:

Write any number.When you are done just write "done":1
Write next numbera
invalid input!
Write next number2
Write next number3
Write next number6
Write next numberdone
The largest number is  6
The smallest number is  1
  1. int()将返回0:

类int(x,base = 10)

返回一个由数字或字符串x构造的整数对象, 如果没有给出参数,则返回0。如果 x是数字,则返回x .__ int __()。 对于浮点数,它会截断为零。

In [7]: int() == 0 == False
Out[7]: True
  1. 您应该在数字列表而不是字符串列表中使用max在将字符串append到列表之前将字符串转换为int
  2. "The largest number is " + max(numbers)返程: TypeError: Can't convert 'int' object to str implicitly ,只是用,以concate字符串和INT。

您应该使用int(my_input)将输入转换为整数,然后将其添加到列表my_list.append(int(my_input))并在从用户获取所有输入后使用maxmin函数max(my_list)

numbers = []

user_input = input('Write any number.When you are done just write "done": ')

while user_input != "done":
     try:
        numbers.append(int(user_input))
        user_input = input("Write next number : ")
     except ValueError:
        user_input = input("please enter a valid number : ")

print("The largest number is ", max(numbers))
print("The smallest number is ", min(numbers))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM