如何编写要求输入 10 个数字的代码
Posted
技术标签:
【中文标题】如何编写要求输入 10 个数字的代码【英文标题】:How to write a code that asks for 10 numbers 【发布时间】:2021-01-19 02:28:30 【问题描述】:大家好,我正在尝试编写一个代码,要求用户输入 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
但是,我不断收到 " if n % 2 == 1: 类型错误:% 的不支持的操作数类型:'list' 和 'int'" 谁能帮我解决这个问题?
【问题讨论】:
n 是一个列表,你不能将一个列表除以 2max( (num for num in n if n%2==1) )
?
最大奇数还是最大奇数?可能你的意图是做largestodd % 2
? i
的目的是什么?还有更多改进的空间。
在列表中查找最大数的一种简单方法是在 python 中使用 .max()。 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 循环使用起来更加方便和优雅。
-
您说您希望您的代码打印出最大的整数,但您编写的代码似乎是检查列表中的数字是否为奇数
此外,
largest
未定义
还有其他错误,说明你对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。
【讨论】:
嗨!非常感谢你的回答,真的很有帮助。如果我想从列表中找出最大的奇数,我该怎么做? 您可以按降序对列表进行排序,遍历它,并检查每个元素是偶数还是奇数。第一个奇数元素将是列表中最大的奇数。 虽然我强烈建议您自己尝试,但如果您遇到问题,我可以为您提供代码。【参考方案2】:你的代码在说
largestodd = None
for None in n:
你可以用这个做你想做的事
n = [int(input('Enter a number: ')) for i in range(10)]`
print(max(n))
【讨论】:
以上是关于如何编写要求输入 10 个数字的代码的主要内容,如果未能解决你的问题,请参考以下文章
如何用C语言编写一个程序,输入10个0-9之间的整数,请统计每个数字出现的个数,并输出?
编写程序:输入一个4位的整数,然后分别输出组成改4位数的各位数字。
输入四个字符后如何编写UItextfield长度和更改键盘数字格式的条件