Python 中的最大值和最小值

8 投票
5 回答
98909 浏览
提问于 2025-04-17 08:27

我刚开始学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(整数)。而 maxmin 这两个函数需要的是列表(或者其他可以遍历的东西)——所以,你需要把 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 的回答后,我的回答假设你想在找 highlow 时考虑 -1。

撰写回答