我对python中的列表很陌生,我试图编写一个代码,其中一个人使用list输入10个数字,然后执行以下操作:
这是我的代码:
List=[]
EvenList=[]
totalnum=0
count=0
for i in range(10):
List.append(int(input("Enter a number: ")))
while List[i]%2==0:
EvenList.append(List[i])
totalnum=totalnum+List[i]
count=count+1
print(EvenList)
average=totalnum/count
print("Average: ", average)每当我运行这个模块时,输入我的值之后,我的输出( EvenList和average)都不会被打印出来。这是我得到的输出:
示例1:
Enter a number: 1
Enter a number: 2示例2:
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 1
Enter a number: 2通过进一步的分析,我意识到每当输入偶数时,代码就会给出一个空的输出。因此,我推测我的错误存在于第8-11行(可能还有更多)。
到目前为止,我改变了我的密码:List[i]=int(input("Enter a number: "))和EvenList[index]=(List[i]),分别改为List.append(int(input("Enter a number: ")))和EvenList.append(List[i]) --我仍然不明白为什么这些初始代码被认为是不正确的,因为我认为如果有人能解释的话,他们会做完全相同的事情,我会非常感激的--但这并没有纠正这个错误。
发布于 2022-08-30 16:01:38
这是因为在while循环条件下,如果数字甚至是无限循环,而不是while add,如果:
List=[]
EvenList=[]
totalnum=0
count=0
for i in range(10):
List.append(int(input("Enter a number: ")))
if List[i]%2==0:
EvenList.append(List[i])
totalnum=totalnum+List[i]
count=count+1
print(EvenList)
average=totalnum/count
print("Average: ", average)发布于 2022-08-30 17:14:04
下面是使用列表理解、sum()和len()作为创建EvenList、totalnum、count和average的替代方法:
List = [int(input("Enter a number: ")) for i in range(10)]
EvenList = [i for i in List if i % 2 == 0]
average = sum(EvenList)/len(EvenList)
print(EvenList); print("Average: ", average)或列表理解中的列表理解
EvenList = [i for i in [int(input("Enter a number: ")) for i in range(10)] if i % 2 == 0]
average = sum(EvenList)/len(EvenList)
print(EvenList); print("Average: ", average)https://stackoverflow.com/questions/73545286
复制相似问题