[英]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
int()
将返回0: 类int(x,base = 10)
返回一个由数字或字符串x构造的整数对象, 如果没有给出参数,则返回0。如果 x是数字,则返回x .__ int __()。 对于浮点数,它会截断为零。
In [7]: int() == 0 == False
Out[7]: True
max
在将字符串append
到列表之前将字符串转换为int "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))
并在从用户获取所有输入后使用max或min函数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.