我是Python 3的初学者。我想:
以下代码只是将最后一个数字放在值(数字)中 而且我不知道如何检查最大的奇数:
for i in range(1,11):
number = list((input(f"please enter the {i}th number: ")))
print(number)
答案 0 :(得分:0)
要创建用户给出的数字列表,我们使用带input
的for循环来询问数字,就像您几乎正确地做过的一样(不要忘记强制转换为int
):
numbers = []
for i in range(1, 11):
number = int(input(f"Enter number {i}: "))
numbers.append(number)
您也可以通过列表理解来做到这一点,这会使它更短,但一开始可能会更难理解(结果与前面的代码完全一样):
numbers = [int(input(f"Enter number {i}: ")) for i in range(1, 11)]
现在,要从数字列表中获取最大的奇数,您可以:
None
考虑到您拥有数字numbers
的清单,让我们看看实际情况。
odd_largest = 0
for number in numbers:
if number % 2 != 0 and number > odd_largest: # If number is odd and larger
odd_largest = number # update value
print(odd_largest)
将odd_largest
设置为0
与None
有什么区别?如果将其设置为0
,并且odd_largest
的最终值为0,您将不知道它是否已全部更新,是列表中的数字还是原始值?想象一下,例如,列表中没有奇数。
使用None
作为初始值时,您将确定它是否已更新。您还需要添加其他条件:
odd_largest = None
for number in numbers:
if number % 2 != 0 and (odd_largest is None or number > odd_largest): # If number is odd and larger or None
odd_largest = number
print(odd_largest)
将所有内容放在一起就能得到所需的东西。
numbers = [int(input(f"Enter number {i}: ")) for i in range(1, 11)]
odd_largest = None
for number in numbers:
if number % 2 != 0 and (odd_largest is None or number > odd_largest): # If number is odd and larger or None
odd_largest = number
print(odd_largest)
这里出现了一些问题。首先:我们是否将列表numbers
用于其他任何操作?如果答案是肯定的,那么我们的代码就足够了。但是,如果只需要这些,我们实际上可以做得更好。
通过在用户输入后立即比较数字来查找最大的奇数,甚至不创建列表。让我们看看吧!
odd_largest = None
for i in range(1, 11):
number = int(input(f"Enter number {i}: "))
if number % 2 != 0 and (odd_largest is None or number > odd_largest):
odd_largest = number
print(odd_largest)
我们从中得到什么?仅对数字进行一次迭代而不是两次,从而节省了内存,因为我们不保存仅输入一个数字的所有数字。酷吗?
如果您还有其他疑问,请不要犹豫。编码愉快!
答案 1 :(得分:0)
1)从用户那里获取整数列表
my_list = []
for i in range(1, 11):
my_list.append(int(input(f"please enter the {i}th number: ")
2)从列表that aren't odd删除所有数字
my_list_only_odd_numbers = [n for n in my_list if n % 2]
3)使用max()
largest_odd_number = max(my_list_only_odd_numbers)