关于条件表达式的,第二个if后面为什么不加判断条件?

primes=[1]*300
primes[0:2]=[0,0]
for i in range(2,300):
    if primes[i]==1:
        for j in range(i+1,300):
            if primes[j]!=0 and j%i==0:
                primes[j]=0
print("300以内的素数包括:\n")
for i in range(2,300):
    if primes[i]:
        print(i,end=" ")

非0即为真
if primes[i]:
等价于
if primes[i]!=0:

你是指第10行吗?
if prime[i]:相当于if prime[] != 0:

是说 if primes[i]:吗?
if 的条件表达式结果为0,表示假,条件不成立,结果不为0,表示真,条件成立
就是说 primes[i] 不为0则会输出,为0则不会输出

如有帮助,望采纳!谢谢!

if primes[i]:这个就是判断条件,重构后的primes字典里只有0和1,for循环遍历,primes[i]为0就为假不输出i的值,primes[i]为1就为真即输出i的值,在if用法中可以直接用是否为0作为判断真假条件