我是Python的新手,并通过一些问题进行自我测试。出现的一个方法是测试用户输入的数字是否为质数。这很容易,但是一个人提出了一行代码作为解决方案。
import math
num = int(input("Enter a number greater than 2 "))
if sum([True if num%factor == 0 else False for factor in ([2] + list(range(3,int(math.sqrt(num)),2)))]):
print("Number is composite")
else:
print("Number is prime")
我了解其中的一部分:如果{number / iterations)的余数为0,则if
语句为True,否则为False,其中唯一需要检查的迭代是2-> sqrt(number)跳过所有偶数。
但是,我不知道如何在if语句开始时求和运算符。我假设它可以在True(1)/ False(0)语句上运行,但是这种交互如何进行,以及如何影响if / else语句?