小猿圈python之練習小例子

天天堅持學習python內容是很重要的,不少人經過看視頻學習,可是隻是喜歡聽老師講課,聽完也都感受本身都懂了,很知足,真的是這樣嗎?你真的懂了嗎?本身能夠作一下小練習測試一下,發現作一個不會一個,爲何呢?小猿圈加加告訴你真相,由於python是一門語言,語言怎麼才能檢驗你真正的掌握呢,那就是練習,不斷地練習,熟能生巧,小猿圈今天給你出一道練習題吧,看一下你會作不?python

題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。學習

程序分析:對n進行分解質因數,應先找到一個最小的質數k,而後按下述步驟完成。(1)若是這個質數恰等於n,則說明分解質因數的過程已經結束,打印出便可。(2)若是n<>k,但n能被k整除,則應打印出k的值,並用n除以k的商,做爲新的正整數你n,重複執行第一步。(3)若是n不能被k整除,則用k+1做爲k的值,重複執行第一步。測試

#!/usr/bin/python

# -*- coding: UTF-8 -*-

def reduceNum(n):

    print '{} = '.format(n),

    if not isinstance(n, int) or n <= 0 :

        print '請輸入一個正確的數字 !'

        exit(0)

    elif n in [1] :

        print '{}'.format(n)

    while n not in [1] : # 循環保證遞歸

        for index in xrange(2, n + 1) :

            if n % index == 0:

                n /= index # n 等於 n/index

                if n == 1:

                    print index

                else : # index 必定是素數

                    print '{} *'.format(index),

                break

reduceNum(90)

reduceNum(100)

以上實例輸出結果爲:code

90 =  2 * 3 * 3 * 5orm

100 =  2 * 2 * 5 * 5視頻

方法二:遞歸

#!/usr/bin/python3

x = int(input("是否進入循環?是:1, 否:0\n"));

while(x):

    n = int(input("請輸入一個正整數:"));

    print ("%d = " %n , end = '');

    while n not in [1]:

        for index in range(2, n+1):

            if n % index == 0:

                n = int(n/index);

                if n == 1:

                    print("%d " %index , end = '');

                else:

                    print("%d * " %index , end = '')

                break;

    print();

    x = int(input("是否進入循環?是:1, 否:0\n"));

輸出測試以下所示:get

是否進入循環?是:1, 否:0input

1it

請輸入一個正整數:90

90 = 2 * 3 * 3 * 5

是否進入循環?是:1, 否:0

1

請輸入一個正整數:100

100 = 2 * 2 * 5 * 5

是否進入循環?是:1, 否:0

0

一個python2和一個python3的實現方法,這兩種都感受是個不錯的方法,先別看答案,本身先根據題目結合本身的思路練習一下,卡在哪一個點,寫不出來再看看答案,只有這樣才能進步,想作跟多練習題的,能夠去小猿圈練習一下,但願有所提升!

相關文章
相關標籤/搜索