while not的用法求助!!
def solution(n):res = []
for i in range(2, int(n**0.5) + 1):
while not n%i:
res.append(i)
n //= i
return res + if n > 1 else res
print(solution(20))
这里面的 while not n%i为什么改成 ifn%i ==0后结果就不对了??? 如果while not 执行条件是后面是Flase,后面n%i==0时是Flase,应该 和ifn%i ==0 等同呀,结果不对,一直没想通 本帖最后由 tommyyu 于 2023-1-3 15:46 编辑
while是循环,if只执行一次,
比如while 1+1==2:
print('1+1=2')会一直打印1+1=2,
而if 1+1==2:
print('1+1=2')只打印一次1+1=2 没怎么听懂你的问题
你是想要把
while not
这个语句给替换掉吗
替换
可以用
while n%i == 0呀
没有if呀 思路没问题,if用错了 我搞懂了{:5_109:} while是重复执行,会一直执行知道条件= False
但是if就只会执行1次
页:
[1]