如果这是正确的
v = [22, 13, 45, 50, 98, 69, 43, 44, 1]
[ (x+1 if x >=45 else x+5) for x in v ]
那么这个代码怎么了
def isPrime(num):
is_prime = False
if num > 1:
for i in range(2, num):
if (num % i) == 0:
is_prime = False
break
else:
is_prime = True
else:
is_prime = False
return is_prime
listTablesOnlyPrimes = [[ (i*num if isPrime(i*num)==True else pass) for i in range(1, 11)] for num in range(1, 11)]
for listTable in listTablesOnlyPrimes:
print(listTable)
我想知道解释器在消息中的SyntaxError
是什么:
listTablesOnlyPrimes = [[ (i*num if isPrime(i*num)==True else pass) for i in range(1, 11)] for num in range(1, 11)]
^
SyntaxError: invalid syntax
问题在于嵌套列表中的if条件
注意:
这使用了一个https://docs.python.org/3/reference/expressions.html#conditional-expressions形式的条件表达式
但这不符合该语法,因为没有其他语法:
我相信这是一个if条件,作为列表理解语法的一部分,但这是最后一个条件,如这里所述https://docs.python.org/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries
增编:
这不是问题的一部分,但既然您提出了这个问题,这里有一种方法可以快速地向您的代码中添加一些单元测试。把这个放在iPrime函数后面
你确实还需要几张支票,但现在已经足够了。我不想进入整个单元测试库
相关问题 更多 >
编程相关推荐