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

实验一

    将一个正整数分解质因数。例如:输入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的更多相关文章

  1. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  2. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  3. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  4. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  5. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  6. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  7. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....

  8. python学习之路,2018.8.9

    python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!

  9. Python学习之路——pycharm的第一个项目

    Python学习之路——pycharm的第一个项目 简介: 上文中已经介绍如何安装Pycharm已经环境变量的配置.现在软件已经安装成功,现在就开始动手做第一个Python项目.第一个“Hello W ...

  10. python学习之路------你想要的都在这里了

    python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...

随机推荐

  1. nodejs项目管理之supervisor||pm2||forever

    supervisor 是开发环境用. forever 管理多个站点,每个站访问量不大,不需要监控. pm2 网站访问量比较大,需要完整的监控界面. supervisor 特点: 代码修改,实时重启 安 ...

  2. ubuntu下codeblocks安装与中文化

    什么是Code::Blocks Code::Blocks是一个免费.开源.跨平台的集成开发环境,使用C++开发,并且使用wxWidgets做为GUI库.Code::Blocks使用了插件架构,其功能可 ...

  3. 【转】PC架构系列:CPU/RAM/IO总线的发展历史!

    原文地址:http://blog.csdn.net/xport/article/details/1387928 1. 从 IBM PC XT 架构开始...一开始PC的设计中,CPU/RAM/IO都是 ...

  4. 旅行(LCA)

    Description N-1座桥连接着N个岛屿,每座桥都连接着某两个不同的岛屿,从任意一个岛屿都可以到达所有的其他岛屿,过桥需要缴纳人民币1元的过桥费. 由于某些不可透露的原因,Jason和他的2个 ...

  5. Ubuntu/deppin 系统安装Nginx

    Ubuntu/deppin 系统安装Nginx 添加密钥 打开Nginx官网 ,并找到如下位置: 在桌面新建"nginx_signing.key"文件,文件内容为请点击图1中的标注 ...

  6. 读取本地的json文件

    最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了! 我是直接用的jquery实现的,但是Ajax也可以,不 ...

  7. C语言(记录)——内存相关_2:内存的编址与管理

    本文是基于嵌入式的C语言 --------------------------------------------------------------------------------------- ...

  8. 版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB

    实验测试:快速创建一个数据库PDB2: 实验环境:12.2.0.1.0版本数据库,dbca图形化安装,现有环境,CDB容器数据库ORCL,PDB可插拔数据库ABC   ---查询CDB名称,状态 SQ ...

  9. Leetcode题解(九)

    28.Implement strStr()-------KMP算法(*) 题目 这道题目其实就是实现KMP算法,并且该算法也是比较经典的算法,需要很好的掌握: 贴上几个介绍字符串匹配的算法说明链接 h ...

  10. javaCountDownLatch闭锁

    package com.java.concurrent; import java.util.concurrent.CountDownLatch; /** * CountDownLatch: 闭锁,在完 ...