0

这段代码有什么问题?我看不到错误。编译器显示此输出。(注意:我是 python 新手)

输出:输入元素编号:1 无

no_of_zeros = 0
for i in range(0, 5):
    array[i] = input(print("Enter element no:", i+1))
    if(array[i]==0):
        array[i] = 1
        is_zero += 1

sum = 0
for j in range(0, 5):
    sum = sum + array[j]

print(sum)
print(no_of_zeros)
4

1 回答 1

1

您无法访问不存在的索引。预分配array或使用 array.append。

array = list(range(0,5))
no_of_zeros = 0
for i in range(0, 5):
    array[i] = int(input("Enter element no{}:".format(i+1)))
    if(array[i]==0):
        array[i] = 1
        is_zero += 1

sum = 0
for j in range(0, 5):
    sum = sum + array[j]

print(sum)
print(no_of_zeros)

这也是一种非常 C-ish 的做事方式(这很好)。Python 可以使该代码更简单。一旦你掌握了 Python 的做事方式,你就会明白为什么 Python 如此受欢迎。例如,学习列表理解。

您的代码可以减少到三行...

array = [ int(input("Enter element no{}:".format(i+1))) for i in range(5) ]
print(sum(array))
print(sum([ 1 for x in array if x==0 ]))
于 2021-09-17T19:12:56.737 回答