找到最大奇数的最佳方法
Posted
技术标签:
【中文标题】找到最大奇数的最佳方法【英文标题】:Best way to Find the biggest Odd number 【发布时间】:2020-04-20 05:34:21 【问题描述】:在这里,我想从给定的一组数字中找到最大的奇数,如果那里没有奇数,则相应地打印效果。在这里,我将偶数的值设置为零,然后将其与其余部分进行比较,这是正确的逻辑吗?我得到了想要的结果,但是具有偶数值的变量的值被设置为零。谢谢。
x, y, z = 45, 61, 82
if x%2==1 or y%2==1 or z%2==1:
if x%2==0:
x = 0
if y%2==0:
y = 0
if z%2==0:
z = 0
if x>y and x>z:
print(x)
elif y>z:
print(y)
else:
print(z)
else:
print("No odd.")
>>> 61
【问题讨论】:
【参考方案1】:这是一种更简单的查找赔率的方法:
odd = [i for i in [45,61,82] if i%2 != 0]
现在找到最大值:
max(odd)
如果所有都是偶数,这可能会引发错误。 所以:
try:
max(i for i in [45,61,82] if i%2 !=0)
except:
print("all are even")
【讨论】:
如果 OP 想要保留x
、y
和z
,我会为了他们的利益指出可以使用[x, y, z]
,并且它们的值不会改变。 (PS:很好,print(max(...))
所以我们看到了一些东西!)【参考方案2】:
您可以创建一个使用 for 循环来循环数字的函数,并在 for 循环之外的变量中跟踪迄今为止最大的奇数。然后你可以打印出变量,或者如果变量仍然是你初始化它的那个,打印“Noodd”。
def largest_odd(numbers):
largest_so_far = 0
for num in numbers:
if num % 2 == 1 and num > largest_so_far:
largest_so_far = num
if largest_so_far == 0:
print("No odd.")
else:
print(largest_so_far)
【讨论】:
以上是关于找到最大奇数的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
找到不大于 A 的最大数的最有效方法,该数可被 B 整除 [关闭]