Python 學習之路2

來源:互聯網
上載者:User

標籤:返回   str   return   退出   display   turn   color   整數   span   

這是我在大學上機實驗的作業

實驗一

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

首先,先談下我的設計思路:

設計思路:

1.    先需判斷輸入的number是不是一個數字(isdigit())如果是一個數字則繼續往下走,否則重新輸入

2.    寫一個分解質因數的函數並返回出其結果成一個列表

3.    並用for迴圈用字串加的方式得到題目需要的格式

4.    最後列印出結果

下面是My Code,第一次學,有點長。

 1 相關代碼: 2 def judeg_prime(num): 3     ‘‘‘判斷Num是不是一個質數,若是返回True,否則返回False‘‘‘ 4     number_list=[] 5     for i in range(1,num+1): 6         if num%i==0: 7             number_list.append(i) 8     if len(number_list)==2 and number_list[0]==1 and number_list[1]==num: 9         return True10     else:11         return False
View Code
 1 def a(num): 2     ‘‘‘把num (非零及非質數的數)分解質因數,並返回一個列表‘‘‘ 3     for i in range(2,num+1): 4         if num%i==0: 5             prime_list.append(i) 6             num=int(num/i) 7             if judeg_prime(num): 8 #如果num是一個質數, 添加在列表後並返回 9                 prime_list.append(num)10                 break11             else:#否則繼續執行函數a()12                 return a(num)13     return prime_list
View Code
 1 ‘‘‘程式的執行連接埠‘‘‘ 2 while True: 3     prime_list = [] 4     print(‘-----分解質因數-----‘) 5     number=input(‘輸入一個正整數(輸入0退出程式):‘) 6     if number.isdigit():#判斷number是否為數字,以免報錯 7         number=int(number) 8         if number==0: 9             print(‘程式結束!‘)10             break11         elif number == 1:#如果輸入的是112             print(‘1=1*1‘)13         elif judeg_prime(number):#如果輸入的是一個質數14             print(‘%s=1*%s‘ % (number, number))15         else:16             count=117             prime_list = a(number)18 #把number分解質因數並返回給prime_list19             primer=str(number)+‘=‘20             for i in prime_list:21                 if count==len(prime_list):22                     primer=primer+str(i)23                 else:24                     primer = primer + str(i) + ‘*‘25                 count+=126             print(primer)#列印結果27     else:28         print(‘請輸入正整數‘)
View Code

感覺寫的還是不夠簡潔,請見諒

Python 學習之路2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.