码迷,mamicode.com
首页 > 编程语言 > 详细

Python 学习之路2

时间:2017-11-27 11:59:28      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:返回   str   return   退出   display   turn   color   整数   span   

这是我在大学上机实验的作业

实验一

    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

首先,先谈下我的设计思路:

设计思路:

1.    先需判断输入的number是不是一个数字(isdigit())如果是一个数字则继续往下走,否则重新输入

2.    写一个分解质因数的函数并返回出其结果成一个列表

3.    并用for循环用字符串加的方式得到题目需要的格式

4.    最后打印出结果

下面是我的代码,第一次学,有点长。

技术分享图片
 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 True
10     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                 break
11             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             break
11         elif number == 1:#如果输入的是1
12             print(1=1*1)
13         elif judeg_prime(number):#如果输入的是一个质数
14             print(%s=1*%s % (number, number))
15         else:
16             count=1
17             prime_list = a(number)
18 #把number分解质因数并返回给prime_list
19             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+=1
26             print(primer)#打印结果
27     else:
28         print(请输入正整数)
View Code

感觉写的还是不够简洁,请见谅

Python 学习之路2

标签:返回   str   return   退出   display   turn   color   整数   span   

原文地址:http://www.cnblogs.com/Crimeng/p/7903372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!