一个路上的人 发表于 2023-1-3 15:39:21

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后结果就不对了???

一个路上的人 发表于 2023-1-3 15:40:27

如果while not 执行条件是后面是Flase,后面n%i==0时是Flase,应该 和ifn%i ==0 等同呀,结果不对,一直没想通

tommyyu 发表于 2023-1-3 15:42:23

本帖最后由 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

香蕉那个不拿拿 发表于 2023-1-3 15:45:06

没怎么听懂你的问题
你是想要把
while not
这个语句给替换掉吗
替换
可以用
while n%i == 0呀
没有if呀

香蕉那个不拿拿 发表于 2023-1-3 15:45:44

思路没问题,if用错了

一个路上的人 发表于 2023-1-4 12:12:42

我搞懂了{:5_109:}

sfqxx 发表于 2023-3-7 22:01:31

while是重复执行,会一直执行知道条件= False
但是if就只会执行1次
页: [1]
查看完整版本: while not的用法求助!!