【发布时间】:2019-09-24 10:19:05
【问题描述】:
我正在做一个 python 挑战,我不能更进一步...... 我需要验证向量中的数字是否是素数。 喜欢:
- 矢量 = [2,5,12]
- 2 是素数(真)
- 5 是素数(真)
- 12 不是素数(FALSE)
这是我到目前为止的代码:
vetor = [ ]
def is_prime():
x = vetor
if x == 1:
return False
elif x == 2:
return True
for i in range(x):
if (x % i) != 0:
return True
else:
return False
def number():
value = int(input('Write an integer number bigger than 1: '))
if value >= 1:
vetor.append(value)
return number()
elif value < 0:
return number()
elif value == 0:
return is_prime()
print(number())
但是这样做,Python 会返回: TypeError: 'list' 对象不能被解释为整数
我可以做些什么来处理我列表中的数据?
【问题讨论】:
-
您已经定义了
vetor = [ ],它是一个list数据类型和x = vetor,当您将list与integer数据类型在if x == 1:和@987654328 中进行比较时,它们会发生冲突@。您需要遍历x列表中的每个元素并进行比较测试,即for i in x: if i == 1:等。