標籤:返回 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