Python
文章平均质量分 56
python高级编程语言实验报告
Mitch311
我与春风皆过客, 你携秋水揽星河。
展开
-
【Python】使用numpy库实现Tic-Tac-Toe井字棋
教你安装并使用numpy库实现Tic-Tac-Toe井字棋小游戏原创 2022-09-22 22:41:18 · 446 阅读 · 0 评论 -
【Python】简单两步教你使用progressbar库显示进度条
在用python跑程序时,尤其是循环次数很多的程序,想要看程序运行的进度怎么办,这里有一个很好用很简单上手的库——progressbar库。原创 2022-09-22 22:21:46 · 3041 阅读 · 0 评论 -
【Python】作业练习题
①写一个装饰器,可以修改函数,打印输出函数执行时长首先要加载time模块,在timer装饰器中定义inner,因为要支持有参数的函数所以形参是*args和**kwargs这样的可变参数,用start和end记下函数开始和结束的时间,最后打印出函数消耗的时间。除此之外别忘了函数有返回值,在这里我们要先把返回值给到inner,再由装饰器传回函数调用处。import timedef timer(func): def inner(*args,**kwargs): start =原创 2022-01-04 00:09:39 · 1184 阅读 · 0 评论 -
【密码学】破解RSA密码(Python代码实现)
题目描述已知有人写了如下的代码,并将生成的(n,e,c)以及(n2,e2,c2,(p2+1)*(q2+1))输出。from Crypto.Util.number import *def ef(): p=getPrime(512) q=getPrime(512) flag=open("flag","rb").read() m=bytes_to_long(flag) e=65537 n=p*q c=pow(m,e,n) print(n,...原创 2021-12-26 18:40:06 · 12083 阅读 · 7 评论 -
【Python】cryptography和pycryptodome库使用
(1)使用cryptography模块,编写完整的AES-CBC加解密函数,函数接口为:def encrypt_CBC(key, plaintext, iv)、def decrypt_CBC(key, ciphertext, iv);(2)使用pycryptodome模块,编写程序,实现RSA-OAEP加解密;知识补充????(1)AES是高级加密标准(Advanced Encryption Standard)的缩写,AES是最常见的对称加密算法。对称加密算法也就是加原创 2021-12-24 21:28:46 · 7912 阅读 · 9 评论 -
【Python】RSA算法实现的原理和过程(附源码)
编写求最大公因子的函数;编写求模逆的扩展欧几里得算法函数;编写rabin-miller素性检测算法函数;编写生成大素数的算法函数;编写生成RSA公私钥对的函数;编写RSA加密和解密函数;原创 2021-12-15 14:09:13 · 4680 阅读 · 0 评论 -
【Python】使用numpy库实现顾客打分的菜品推荐系统
题目↓根据顾客对菜品的打分,实现菜品推荐系统思路分析????推荐系统主要有两种思路,一种是用户-产品协同过滤,也就是要找到与目标用户最相似的人,他喜欢什么,目标用户大概率喜欢什么,另一种思路是产品-产品协同过滤,意思是要根据其他用户的选择推断出产品之间的相关联属性,进而推断出目标用户还可能喜欢什么。两种不同的思路各有利弊,本文选择了前者的用户-产品协同过滤思路,核心是找到与目标用户最相似的人。在整个数据集中构建一个顾客-菜品的二维矩阵,行代表不同的顾客,列代表不同的菜品,第0行对应...原创 2021-12-14 00:41:35 · 1206 阅读 · 0 评论 -
【Python】numpy库和scipy库的安装与使用
numpy是一个用Python实现的科学计算包,专为进行严格的数值处理而产生,尤其是对大型多维数组和矩阵的支持,并且有一个大型的高级数学函数库来操作这些数组。numpy提供了许多高级的数值编程工具,如实用的线性代数运算、傅立叶变换、随机数产生等。scipy(高级科学计算库)和numpy联系很密切,scioy一般都是操控numpy数组来进行科学计算、统计分析,所以可以说是基于numpy之上了。scipy有很多子模块可以应对不同的应用,例如插值运算,优化算法等等。scipy则是在numpy的..原创 2021-12-13 19:15:52 · 26114 阅读 · 1 评论 -
【Python】学习使用Feapder框架,编写爬虫,爬取院士信息
学习使用Feapder框架,编写爬虫,爬取院士信息。(从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息)Feapder框架的安装首先我们需要安装一个BeautifulSoup库。python3版本可以直接在cmd下用pip3命令进行安装。命令行输入:pip3 install feapder效果如图:代码示例????...原创 2021-12-11 14:32:58 · 4853 阅读 · 0 评论 -
【Python】利用urllib模块+正则表达式并利用BeautifulSoup模块进行内容解析,爬取院士信息
题目????使用urllib模块或request模块读取网页内容,并利用BeautifulSoup模块进行内容解析,编写爬虫从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息思路分析????先来了解一下BeautifulSoup的相关知识:1.BeautifulSoup简介BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何原创 2021-12-10 17:14:50 · 2707 阅读 · 0 评论 -
【Python】利用urllib模块+正则表达式爬取院士信息
题目????使用urllib模块+正则表达式,编写爬虫从http://www.cae.cn/cae/html/main/col48/column_48_1.html爬取中国工程院院士信息思路分析????按照本题的要求,我们一方面要爬取院士的名字,另外再去爬取院士的详细信息,最后将二者汇总写入txt文件里。所以我们首先要获得目标网址的全部源代码,在此基础之上我们再用正则表达式对html代码适当进行过滤得到院士们的姓名。其次我们还要对院士名称标签对应的超链接(网页相对路径)进行记录,随后再去原创 2021-11-27 18:31:37 · 2817 阅读 · 2 评论 -
【Python】利用urllib模块+正则表达式爬取贴吧图片
题目????利用urllib模块+正则表达式爬取http://tieba.baidu.com/p/2460150866页面中的所有图片,保存到本地思路分析????本题的核心就是python3中urllib.request模块提供的urlretrieve()函数。????urlretrieve()方法可以实现直接将远程数据下载到本地函数urlretrieve(url, filename=None, reporthook=None, data=None) 参数名称 参数意义原创 2021-11-27 17:53:24 · 1842 阅读 · 6 评论 -
【Python】使用urllib模块实现网页内容读取,读取指定URL的网页内容
题目????使用urllib模块实现网页内容读取,读取指定URL的网页内容知识补充????在Python3版本内置模块中提供了urllib模块,实质上是一个HTTP请求库,可以方便一些爬虫操作,主要包含urllib.request、 urllib.response、urllib.parse三部分。urllib库子模块 urllib.request 请求模块(常用) urllib.error 异常处理模块(常用) urllib.parse url解析模块(常用)原创 2021-11-27 15:36:56 · 4163 阅读 · 0 评论 -
【Python】编写代码对网络上的ip地址进行端口扫描,收集“ip+开放端口”信息
题目????编写代码对网络上的ip地址进行端口扫描,收集“ip+开放端口”信息。进一步的,尝试了解和使用流行的网络扫描工具进行扫描,如zmap,nmap。思路分析????在渗透测试工作中,安全测试就需要用到端口扫描这一类的工具,因为需要扫描有哪些端口是不该开放的,存在安全隐患的端口,就可以通过工具对其扫描,并及时规避问题。这种扫描工具也可以用已经设计好的在线扫描器——站长工具https://tool.chinaz.com/port/或者还有我之前发过的linux下用dirsearch原创 2021-11-20 17:20:48 · 5423 阅读 · 0 评论 -
【Python】socket编程——使用socketserver模块建立基于TCP协议通信的服务
题目????使用socketserver模块建立基于tcp协议通信的服务,收到客户端发来的英文字符串之后,将其变为大写发回客户端。相关知识????socketserver模块简化了编写网络服务程序的任务,是python 标准库中很多服务器框架的基础。socketserver中包含了两种类,一种为服务类(server class) ,一种为请求处理类(request handle class),前者主要做的是建立链接的过程,后者注重用户数据的处理。 要实现一项服务,必须派生一个req原创 2021-11-10 19:49:59 · 3288 阅读 · 2 评论 -
【Python】socket编程——使用UDP协议打造在线时间服务器
题目????使用UDP协议打造在线时间服务器。服务端监听特定的端口,如果收到客户端发来的请求就把服务器上的当前时间发给客户端,而客户端收到时间之后立刻打印输出。相关知识????在Python网络编程模块有两种协议,一种是TCP,一种是UDP。UDP协议适用于对效率要求相对较高而对准确性要求相对较低的场合,比如视频在线点播、网络语音通话等等。socket模块中经常用于UDP编程的方法主要有:????socket([family[,type[,proto]]])创建一个socke原创 2021-11-10 17:19:21 · 3778 阅读 · 0 评论 -
【Python】socket编程——使用TCP协议实现智能聊天机器人
编写TCP通信程序,模拟机器人聊天软件原理,服务端提前建立好字典,然后根据接收到的内容自动回复。TCP协议适用于对效率要求相对较低而准确性要求很高的场合,例如文件传输、电子邮件等等,需要建立连接、数据连接、断开连接三个步骤。socket模块常用于TCP编程的方法有:connect(address):连接远程计算机,注意这里的address依旧是一个元组 send(bytes[,flags]):发送数据 recv(bufsize[,flags]):接收原创 2021-11-10 15:26:54 · 10391 阅读 · 25 评论 -
【Python】socket编程——使用UDP进行简单信息传输
题目????编写UDP通信程序,发送端发送一个字符串,接收端在计算机的5000端口进行接收,并显示接收内容;如果收到字符串“bye”(不区分大小写),则结束监听并退出。相关知识????在Python网络编程模块有两种协议,一种是TCP,一种是UDP。UDP协议适用于对效率要求相对较高而对准确性要求相对较低的场合,比如视频在线点播、网络语音通话等等。socket模块中经常用于UDP编程的方法主要有:????socket([family[,type[,proto]]])创建一个s原创 2021-11-09 23:35:33 · 2890 阅读 · 4 评论 -
【Python】异常处理相关练习
题目????猜数游戏,编写程序模拟猜数游戏。程序运行时,系统生成一个100以内的随机数,然后提示用户进行猜测,并根据用户输入进行必要的提示(猜对了、太大了、太小了),如果猜对则提前结束程序,如果次数用完仍没有猜对,提示游戏结束并给出正确答案。要求用到异常处理,处理输入不是数字的情况。 编写代码,读取文本文件内容并统计其中每个英文字母的出现次数,如果文件不存在则给出友好提示,使用异常处理结构实现。解题思路????(1)首先确定我们玩家一共有几次机会,暂且规定为3次机会。使用try来获取输入的数原创 2021-11-06 19:02:11 · 3670 阅读 · 3 评论 -
【Python】使用生成器(yield from)和装饰器封装函数
题目????(1)编写程序,实现一个计算输入数值的平均数的计算器。该计算器可以根据需要接受输入的值,并计算当前所有输入值的平均值。然后还可以继续接受输入值,继续计算平均值。直到外部主动结束不再输入数值。(使用yield from实现)(2)编写一个装饰器函数,可以实现为函数增加计算函数执行时间的功能。支持带输入参数和返回值的函数。解题思路????(1)计算器内部需要存储之前输入的数的总和s以及数字个数l,在每一次输入新的数字后更新s和l,然后再返回新的平均数,我们使用yield来完成这一步,原创 2021-10-31 14:54:45 · 1306 阅读 · 2 评论 -
【Python】递归求解汉诺塔+八皇后问题
题目????(1)编写递归代码解答汉诺塔问题:据说古代有一个梵塔,塔内有三个底座A、B、C,A 座上有64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64 个盘子从A 座移到C 座,但每次只能允许移动一个盘子。在移动盘子的过程中可以利用B 座,但任何时刻3 个座上的盘子都必须始终保持大盘在下、小盘在上的顺序。如果只有一个盘子,则不需要利用B 座,直接将盘子从A 移动到C 即可。编写函数,接收一个表示盘子数量的参数和分别表示源、目标、临时底座的参数,然后输出详细移动步骤和每次移动后三个底座原创 2021-10-31 14:35:52 · 3306 阅读 · 0 评论 -
【Python】练习题——函数相关(lambda表达式和filter、sum函数、递归)
题目????(1)一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编写程序找出1000以内的所有完数,要求结合使用lambda表达式和filter、sum函数。(2)假设一段楼梯共n个台阶,小明一步最多能上3 个台阶,编写递归函数计算小明上这段楼梯一共有多少种方法。(3)假设一段楼梯共n个台阶,小明一步最多能上3 个台阶,编写程序列出小明上这段楼梯的所有方法,如n=5时,得到[(1, 1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 2, 1),原创 2021-10-23 22:26:28 · 1267 阅读 · 0 评论 -
【Python】练习题——循环的使用(判断今天是今年的第几天、使用蒙特·卡罗方法计算圆周率近似值、暴力破解MD5值)
(1)编写程序,判断今天是今年的第几天;(2)编写程序实现如下功能:循环遍历i从0到4,j从0到4,k从0到4,如果i、j、k都等于3时,输出“it’s over”,结束整个循环;否则打印i、j、k的值。程序开头为:for i in range(5): for j in range(5): for k in range(5):(3)编写程序实现如下功能:循环遍历i从0到4,j从0到4,k从0到4,打印除i==j==k==3之外的i、j、k的值。程序开头为:for ...原创 2021-10-17 22:22:55 · 1770 阅读 · 3 评论 -
【python】正则表达式的使用
#author:Mitchell#part1:生成随机密码并验证其是否为强密码,若字符串中同时包含英文字母大小写、数字和标点符号则认为是强密码password=''random_password=[]for i in range(8): if random.randint(0,2)%2==0: random_password.append(chr(random.randint(48,90))) else: random_password.a...原创 2021-10-15 19:25:37 · 467 阅读 · 0 评论 -
【python】三道小题(新手入门)
题目要求:①编写程序,输入任意大的自然数,输出各位数字之和;②编写程序,输入两个集合setA 和setB,分别输出它们的交集、并集和差集setA-setB;③编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式;#coding:utf-8#author:Mitchell#part1:输入任意大的自然数,输出各位数字之和x=input("请输入一个任意大的自然数:")count=0for i in x: count += int(i)print("各位数字原创 2021-10-08 12:42:49 · 1718 阅读 · 2 评论 -
【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)
前言华容道游戏是一个历史悠久的经典游戏,玩法就是将已经打乱的数字重新调整顺序,使其成为正序排列正好昨天一个朋友的python老师留下了这道华容道的题目,今天就来学习一下吧注意,以下内容不包含多类库或者框架等多种小白难以接受的知识,所以很适合刚刚开始学编程的同学话不多说,我们开始吧!①游戏数据的构建假设你想玩一个n阶的数字华容道,那么展示在你面前的将是n*n个数字方块,意味着我们要生成n*n个内存来储存数据在C++中我们用int指针数组储存这n*n个数据,在python中我们也沿袭原创 2021-03-14 21:59:24 · 8562 阅读 · 12 评论