从此代码中打印最大的奇数

时间:2018-03-15 17:22:28

标签: python loops

我正在尝试打印最大的奇数。到目前为止,我有以下代码。

largest = None
    for integer in range(1,11):
        integer = int(input('Enter integer #%d: ' % integer))
        if integer % 2 != 0 and (not largest or integer > largest):
            largest = integer
            if largest is None:
                print ("You didn't enter any odd numbers")
            else:
                print ("Your largest odd number was: "), max(largest)

我可以输入10个整数,但我得到的只是Your largest odd number was:而不是最大的数字而且只是空白。我试图使用(max)打印最大的整数,但不是很成功。

4 个答案:

答案 0 :(得分:0)

这是你想要的吗?

largest = None
for integer in range(1,11):
    integer = int(input('Enter integer #%d: ' % integer))
    if integer % 2 != 0 and (not largest or integer > largest):
        largest = integer
if largest is None:
    print ("You didn't enter any odd numbers")
else:
    print ("Your largest odd number was: "), largest

您已将最大值分配给最大值,因此您不必执行max()。函数max()给出了列表的最大值,largest是一个不是列表的整数。

答案 1 :(得分:0)

有几点需要注意。

  1. 根据您的描述,我对您的修改做了最少的修改 用于获得所需结果的代码
  2. 您的代码中有一些拼写错误。例如:range1而不是range。 [这已在用户的编辑中修复]
  3. 您在整数上使用max。这不是应该如何使用max。
  4. 检查是否有效

    largest = None
    for integer in range(1,11):
        integer = int(input('Enter integer #%d: ' % integer))
        if integer % 2 != 0 and (not largest or integer > largest):
            largest = integer
    if largest is None:
        print ("You didn't enter any odd numbers")
    else:
        print ("Your largest odd number was: "), str(largest)
    

    分享我的输出

    bash$ python test_2.py
    Enter integer #1: 2
    Enter integer #2: 4
    Enter integer #3: 6
    Enter integer #4: 8
    Enter integer #5: 2
    Enter integer #6: 4
    Enter integer #7: 6
    Enter integer #8: 8
    Enter integer #9: 3
    Enter integer #10: 9
    Your largest odd number was:  9
    

答案 2 :(得分:0)

如果你想使用max,你可以通过只保留列表中的奇数来做这样的事情。

odd_numbers = []
for integer in range(1, 11):
    integer = int(input('Enter integer #%d: ' % integer))
    if integer % 2 != 0:
        odd_numbers.append(integer)

if not odd_numbers:
    print("You didn't enter any odd numbers")
else:
    print("Your largest odd number was: {}".format(max(odd_numbers)))

答案 3 :(得分:0)

您的代码可以更改为:

a =范围(1,11)

j = len(a) - 2

while j > 0:
    if a[j] % 2 == 1:
        break
    else:
        j += 1

print(a[j])

这将使您的程序在从最大数字到最小数字的范围内迭代。其他一切看起来都不错。继续前进:)