查找python集中的最大值[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在编写一个程序,要求用户输入10个整数,然后指向其中最大的奇数。如果没有输入奇数,则应打印一条消息。

我已经在下面:

a = int(input("Enter an integer: "))
b = int(input("Enter an integer: "))
c = int(input("Enter an integer: "))
d = int(input("Enter an integer: "))
e = int(input("Enter an integer: "))
f = int(input("Enter an integer: "))
g = int(input("Enter an integer: "))
h = int(input("Enter an integer: "))
i = int(input("Enter an integer: "))
j = int(input("Enter an integer: "))

numset = [a, b, c, d, e, f, g, h, i, j]
oddset = []
if (a%2, b%2, c%2, d%2, e%2, f%2, g%2, h%2, i%2, j%2) == (0, 0, 0, 0, 0, 0, 0, 0, 0, 0):
    print("No odd number was entered.")
else:
    for x in numset:
        if x%2 == 1:
            oddset.append(int(x)) 
    print(oddset)

我能够识别所有输入的奇数整数,但是当我从我的奇数列表中选出最大的奇数时,我很难过。这可能是一个简单的添加,但我是python的新手,所以所有的帮助表示赞赏。此外,如果有其他方法可以编写更简洁的代码,我也很乐意看到这些代码。

python max
1个回答
1
投票

你可以简化这个。创建一个赔率列表,然后你可以用它来检查它是否为空以及找到它的max

numset = [int(input("Enter an integer: ")) for _ in range(10)]  # list
# or
numset = {int(input("Enter an integer: ")) for _ in range(10)}  # set
# or most space efficient, not storing non-odds at all
numset = (int(input("Enter an integer: ")) for _ in range(10))  # lazy iterator

odds = [n for n in numset if n % 2]
try:
    print(max(odds))
except ValueError:
    print("No odd number was entered.")
© www.soinside.com 2019 - 2024. All rights reserved.