【问题标题】:Another way to compare numbers that have input in same line?另一种比较在同一行输入的数字的方法?
【发布时间】:2016-01-18 19:43:41
【问题描述】:

我有某种计算机科学 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>max: x=max

TypeError:不可排序的类型:map() > int()

这完全在意料之中,因为我知道我无法比较这两者,因为它们显然无法比较(这也是我非常清楚的)。

所以我的问题是,有没有其他方法可以将 N 个数字放在一行中,然后将 N 个数字放在同一行中,但您可以比较它们(如果有任何意义的话)。

[附注如果我的英语不好,我也很抱歉。]

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    变量x 是整数的映射(类似于列表),但您将它与单个整数进行比较。

    为了循环 x 的值,您应该使用 for 循环:

    for x in map(int, input().split()):
        if x > max:
            max = x
    

    【讨论】:

    • 它确实在某种程度上有所帮助。现在,当我输入应该在一行中/映射的数字时(2 87 12 90 55),我必须按 Enter 5-8 次,然后它返回结果,但结果为 2。对此有什么帮助吗?
    【解决方案2】:

    Python 中已经有一个 max 方法,无需像在 C/C++ 中那样重新创建一个 max 函数。只需应用 max 方法

    n = int (input())
    print (max(map(int,input().split())))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2023-02-06
      • 1970-01-01
      相关资源
      最近更新 更多