Python 中的最大值和最小值
我刚开始学Python,遇到的问题让我很烦,因为我觉得这个问题其实很简单。我在第8行总是出错。我只是想让这个程序能接收用户输入的数字,然后打印出最大和最小的数字,如果用户输入-1,就结束这个循环。
我遇到的错误是:'int' object is not iterable
。
print "Welcome to The Number Input Program."
number = int(raw_input("Please enter a number: "))
while (number != int(-1)):
number = int(raw_input("Please enter a number: "))
high = max(number)
low = min(number)
print "The highest number entered was ", high, ".\n"
print "The lowest number entered was ", low, ".\n"
raw_input("\n\nPress the enter key to exit.")
5 个回答
1
你需要把一个数字转换成一个数字的列表。例如,
print "Welcome to The Number Input Program."
numbers = []
number = int(raw_input("Please enter a number: "))
while (number != -1):
numbers.append(number)
number = int(raw_input("Please enter a number: "))
high = max(numbers)
low = min(numbers)
print "The highest number entered was ", high, ".\n"
print "The lowest number entered was ", low, ".\n"
raw_input("\n\nPress the enter key to exit.")
9
这是因为每次你只传一个整数给max和min时,Python不知道该怎么处理它。
你至少需要传两个参数:
least_number = min(number1, number2,...,numbern)
或者传一个可迭代的对象:
least_number = min([number1, number2, ...,numbern])
这里有个文档链接
18
问题在于 number
是一个 int
(整数)。而 max
和 min
这两个函数需要的是列表(或者其他可以遍历的东西)——所以,你需要把 number
放到一个列表里,像这样:
number = int(raw_input("Please enter a number: "))
num_list = []
while (number != int(-1)):
num_list.append(number)
number = int(raw_input("Please enter a number: "))
high = max(num_list)
low = min(num_list)
顺便提一下,在看完 dr jimbob 的回答后,我的回答假设你不想在找 high
和 low
时考虑 -1。