我有一些计算机科学的AP,我开始使用Python进行编码/编程。我简单地使用了C ++几年,现在我转而使用Python。我真的不记得我用C ++停在哪里,但现在这无关紧要。无论如何,我有这样的任务说:“编写程序加载数字N,然后N个数字并打印它们之间具有最高值的数字。数字N在一行中输入,下面的行加载N个数字,它们之间具有相同的空格。这些数字都不会超过100.数字N将大于2.“
我写了这段代码;
`n = int (input())
max = 2
for i in range (1, n+1, 1):
x=map(int,input().split())
if x>max: x=max
print (max)
`
返回了此错误:
5
2 87 12 90 55
文件“C:\ Users \ Mariee.Marija-PC \ Documents \ Python \ 19-4.py”,第5行, 如果x> gt; max:x = max
TypeError:unorderable类型:map()> INT()
这是完全可以预料到的,因为我知道我无法将这两者进行比较,因为它们显然无法比较(我再次非常清楚)。
所以我的问题是,有没有其他方法可以将N数放在一行中然后N个数字可以放在同一行但你可以比较它们(如果这有意义的话)。
[P.S。如果我的英语不好,我也很抱歉。]
答案 0 :(得分:0)
变量x
是整数的映射(类似于列表),但是您将它与单个整数进行比较。
为了遍历x
的值,你应该使用for循环:
for x in map(int, input().split()):
if x > max:
max = x
答案 1 :(得分:0)
Python中已有一个max方法,无需像在C / C ++中那样重新创建max函数。只需应用max方法
n = int (input())
print (max(map(int,input().split())))