簡體   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