另一种比较在同一行输入数字的方法?

时间:2016-01-18 19:43:42

标签: python python-3.x

我有一些计算机科学的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。如果我的英语不好,我也很抱歉。]

2 个答案:

答案 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())))