繁体   English   中英

我是 python 的新手,我想知道为什么这个 while 循环不起作用

[英]I am new to python and I am wondering why this while loop isn't working

它旨在找到一个数字的所有因素,有人可以帮助我吗? 它给我的错误是它不能被零除,但到那时它不应该这样做。

factored = False

number_s = input("What is the number\n")
number = (int(number_s))

while factored == False:
    factor_number = number
    factored_number = number / factor_number
    if factored_number == 0:
        break



    decimal = isinstance(factored_number, int)

    if decimal == False and factored_number <= number:
        print(factored_number)
        number = factored_number - 1
    else:
        pass

    if factored_number == number:
       break

在执行操作之前,您必须检查数字是否为零。 例如

factored = False

number_s = input("What is the number\n")
number = (int(number_s))

while factored == False:
    factor_number = number
    #notice we are checking the user's number is == 0 before we even divide it.
    if factor_number == 0:
        break
    factored_number = number / factor_number




    decimal = isinstance(factored_number, int)

    if decimal == False and factored_number <= number:
        print(factored_number)
        number = factored_number - 1
    else:
        pass

    if factored_number == number:
       break

我也希望你知道有更简单的方法可以做到这一点。 例如,使用模运算% 这是一个使用它的实现。

x = 10
for i in range(1, x + 1):
       if x % i == 0:
           print(i)

output

1
2
5
10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM