0

私は Python の入門コースを受講しています。1 つの演習では、数値を入力し、その数値が完全数である場合に bool の True または False を返す関数を作成します。次に、上限を取り、その上限までのすべての数をチェックし、それが完全数である場合は完全数を出力する別の関数を作成します。今のところ、私の問題はこのexcersieの後半にあり、完全な数を出力する代わりに、「True」でいくつあるかを出力します。ここでも、最初の関数は True または False を返すと想定されているため、2 番目の関数で実際の数値を出力する方法がわかりません。

def perfect(num):
    x=1
    adding=0
    while x<num:
        if num % x == 0:
            adding=adding+x
        x=x+1

    if adding==num:
        #print(num)
        return (adding==num)
    else:
        return False

def perfectList(upperlimit):
    x=1
    while x<upperlimit:
        if perfect(x)==True:
            print(perfect(x))
        x=x+1
4

3 に答える 3

0

あなたの2番目の機能は非常に近いです。

def perfectList(upperlimit):
    x=1
    while x < upperlimit:
        if perfect(x)==True:
            print(x) # changed from print(perfect(x))
        x=x+1

print(x)(the number) notに変更する必要がありましprint(perfect(x))た。これは、その数が完全数かどうかを返します。

于 2016-09-27T02:43:43.033 に答える