如何编写要求输入10个数字的代码

2024-09-30 06:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好,我正在尝试编写一个代码,要求用户输入10个整数,并打印其中最大的一个。这就是我到目前为止所做的:

n = [int(input('Enter a number: ')) for i in range(10)]
largestodd = None
i = 0
for largestodd in n:
    if n % 2 == 1:
        if largestodd == None or n > largest:
            largestodd = n
    i = i + 1

但是,我不断得到“如果n%2==1: TypeError:不支持%:“list”和“int”的操作数类型 有人能帮我解决这个问题吗


Tags: or代码用户innonenumberforinput
2条回答

你的密码是

largestodd = None

for None in n:

你可以用这个做你想做的

n = [int(input('Enter a number: ')) for i in range(10)]`

print(max(n))

问题

您在这里编写的代码有许多问题:

  1. 由于您正在使用for循环遍历列表,因此无需预先定义用于遍历列表的变量。这在while循环中通常是必需的

例:

l = [1, 2, 3]
for i in l:
    print(i)

输出:

1
2
3

如果要使用while循环执行此操作,则代码如下所示:

l = [1, 2, 3]
i = 0
while i < len(l):
    print(l[i])
    i += 1

显而易见,for循环使用起来更方便、更优雅

  1. 您说您希望您的代码打印出最大的整数,但您编写的代码似乎是在检查列表中的数字是否为奇数
  2. 此外,largest没有定义
  3. 还有其他错误,这告诉我您对python的掌握有些薄弱。我建议你在网上查阅一些教程,先学习一些基础知识,比如here

修正码

l = [int(input('Enter a number: ')) for i in range(10)]
print(max(l))

Python有一个内置的方法max(),可以在不需要for循环的情况下实现这一点

另一种方法是使用.sort()方法对列表进行排序,然后打印出列表的最后一位:

l = [int(input('Enter a number: ')) for i in range(10)]
l.sort()
print(l[-1])

要按相反顺序排序,请执行以下操作:

l = [int(input('Enter a number: ')) for i in range(10)]
l.sort(reverse=True)
print(l[0])

但是,如果您想使用逻辑实现这一点,您可以通过对列表进行排序,然后打印出列表的最后一位(最大的),如下所示:

l = [int(input('Enter a number: ')) for i in range(10)]
for i in range(len(l) - 1):
    for j in range(len(l) - i - 1):
        if l[j] > l[j + 1]:
            l[j], l[j + 1] = l[j + 1], l[j]
print(l[-1])

上面的代码使用冒泡排序对列表进行排序。还有其他方法可以对列表进行排序,但这是最容易理解的。你可以在互联网上了解更多信息,比如here

相关问题 更多 >

    热门问题