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基础 ...
随机推荐
- Java常见异常处理
Exception类: 在java中用类的形式对不正常情况进行了描述和封装对象,异常就是java通过面向对象的思想将问题封装成了对象. 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. ...
- JMS 基础
1. JMS基本概念 JMS(Java Message Service) 即Java消息服务.它提供标准的产生.发送.接收消息的接口简化企业应用的开发. 它支持两种消息通信模型:点到点(point-t ...
- UWP 分享用那个图标
有两个图标,如果让你选,你会用哪个图标做分享图标? 这就算有意义的图标和通用图标的选择. 可以看到 左边的图标比较有意义,但是右边的图标是通用的. 是需要选有意义的?还是通用的 在 UWP ,选的是第 ...
- 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器
BH1750FVI 是一款 IIC 接口的数字型光强度传感器集成电路.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 ...
- Linux计划任务-at命令
第一部分:at命令 1. at命令:在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(ps -ef | grep atd查看, 开启用/etc/init.d/atd start ...
- 关于NOIP2014“无线网络发射器选址”一题的衍生题目的思考及思维方向
无线网络发射器选址 题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形 ...
- 如何利用Oracle VM Templates 在几分钟内部署Oracle Real Application Clusters (RAC)
本文未经授权,禁止一切形式的转载.如果对本文有任何疑问可以通过以下方式和我交流: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiang ...
- LeetCode Questions List (LeetCode 问题列表)- Java Solutions
因为在开始写这个博客之前,已经刷了100题了,所以现在还是有很多题目没有加进来,为了方便查找哪些没加进来,先列一个表可以比较清楚的查看,也方便给大家查找.如果有哪些题目的链接有错误,请大家留言和谅解, ...
- 视频加载logo
最近工作需要,收集了一些视频卡顿或加载时的透明PNG图片.
- Jquery datatable中文排序问题
先扩展datatable的的排序功能,添加一个自定义排序函数 //为jq datatable 自定义中文排序 jQuery.fn.dataTableExt.oSort['chinese-sort-as ...