Python 学习之路2
这是我在大学上机实验的作业
实验一
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
首先,先谈下我的设计思路:
设计思路:
1. 先需判断输入的number是不是一个数字(用isdigit())如果是一个数字则继续往下走,否则重新输入
2. 写一个分解质因数的函数并返回出其结果成一个列表
3. 并用for循环用字符串加的方式得到题目需要的格式
4. 最后打印出结果
下面是我的代码,第一次学,有点长。
相关代码:
def judeg_prime(num):
'''判断Num是不是一个质数,若是返回True,否则返回False'''
number_list=[]
for i in range(1,num+1):
if num%i==0:
number_list.append(i)
if len(number_list)==2 and number_list[0]==1 and number_list[1]==num:
return True
else:
return False
def a(num):
'''把num (非零及非质数的数)分解质因数,并返回一个列表'''
for i in range(2,num+1):
if num%i==0:
prime_list.append(i)
num=int(num/i)
if judeg_prime(num):
#如果num是一个质数, 添加在列表后并返回
prime_list.append(num)
break
else:#否则继续执行函数a()
return a(num)
return prime_list
'''程序的执行端口'''
while True:
prime_list = []
print('-----分解质因数-----')
number=input('输入一个正整数(输入0退出程序):')
if number.isdigit():#判断number是否为数字,以免报错
number=int(number)
if number==0:
print('程序结束!')
break
elif number == 1:#如果输入的是1
print('1=1*1')
elif judeg_prime(number):#如果输入的是一个质数
print('%s=1*%s' % (number, number))
else:
count=1
prime_list = a(number)
#把number分解质因数并返回给prime_list
primer=str(number)+'='
for i in prime_list:
if count==len(prime_list):
primer=primer+str(i)
else:
primer = primer + str(i) + '*'
count+=1
print(primer)#打印结果
else:
print('请输入正整数')
感觉写的还是不够简洁,请见谅
Python 学习之路2的更多相关文章
- python学习之路-day2-pyth基础2
		
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
 - Python学习之路-Day2-Python基础3
		
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
 - Python学习之路-Day2-Python基础2
		
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
 - Python学习之路-Day1-Python基础
		
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
 - python学习之路网络编程篇(第四篇)
		
python学习之路网络编程篇(第四篇) 内容待补充
 - Python学习之路【第一篇】-Python简介和基础入门
		
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
 - python 学习之路开始了
		
python 学习之路开始了.....记录点点滴滴....
 - python学习之路,2018.8.9
		
python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!
 - Python学习之路——pycharm的第一个项目
		
Python学习之路——pycharm的第一个项目 简介: 上文中已经介绍如何安装Pycharm已经环境变量的配置.现在软件已经安装成功,现在就开始动手做第一个Python项目.第一个“Hello W ...
 - python学习之路------你想要的都在这里了
		
python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...
 
随机推荐
- 如何删除错误提交的 git 大文件
			
早上小伙伴告诉我,他无法拉下代码,我没有在意.在我开始写代码的时候,发现我的 C 盘炸了.因为我的磁盘是苏菲只有 256G 放了代码就没空间了,于是我查找到了原来是我的代码占用了居然有 2000+M ...
 - centos7安装shipyard没有本地容器及镜像
			
目前docker的使用越来越多,自然需要docker的管理工具.现在使用web管理的较多,web基本上实现了跨平台,只需要浏览器,不要额外的管理客户端.web管理主要推荐shipyard和kubern ...
 - 整理一批 国内外优秀设计团队 & 设计相关网站
			
设计做不好,因为看得少!这里精心整理了一批国内外优秀设计团队的官网,以及同设计相关的网站.每个网站,我都浏览了一下,确保里面真的是有干货,并且保持一定的频率正常更新. [腾讯] 腾讯社交用户体验设计 ...
 - Table  控件各元素及属性
			
功能:在Web页中创建通用表格里. 属性: 1.CellPadding属性:用于设置表中单元格的边框和内容之间的距离(以像素为单位).默认为-(未设置). 2.CellSpacing属性:用于设置表中 ...
 - 下载MySQL历史版本
			
下载MySQL历史版本 地址:http://downloads.mysql.com/archives/community/
 - C#设计模式之九装饰模式(Decorator)【结构型】
			
一.引言 今天我们要讲[结构型]设计模式的第三个模式,该模式是[装饰模式].我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理解吧,大家一定要看清楚,是“装修”,不是“装饰”. ...
 - 浏览器缓存相关HTTP头部字段
			
1.Cache-Control/Pragma 2.Expires 3.Last-Modified/Etag
 - LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)
			
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
 - [LeetCode] Reverse Pairs 翻转对
			
Reverse Pairs 翻转对 题意 计算数组里面下标i小于j,但是i的值要大于j的值的两倍的搭配的个数(也就是可能会有多种搭配):网址 做法 这道题显然是不允许使用最简单的方法:两次循环,逐次进 ...
 - Xilinx ISE14.1用Verilog语言实现一个半加器并测试
			
<一>建立一个工程 注:Xilinx ISE的安装在此不再过多说明,网上有参考资料 1.打开软件进入如下界面 2.创建工程 File-->New Project 3.创建文件(我取名 ...