【问题标题】: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

【问题讨论】:

    标签: python python-3.x


    【解决方案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 想要保留xyz,我会为了他们的利益指出可以使用[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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多