Python程序语言设计
本专栏主要介绍Python,会发布我学习过程中遇到的一些问题以及相关程序设计
心系五道口
答案交给时间寻觅,未来不负时光所期
展开
-
学生成绩等级判定
要求输入学生的成绩,90分以上为优秀,80~90为良好,60~80为及格,60以下为不及格。score = float(input('please input your score:'))if score >= 90: print('excellent')elif score >= 80: print('good')elif score >= 60: print('pass')else: print('fail')...原创 2021-07-26 15:28:01 · 1622 阅读 · 0 评论 -
用python实现生成验证码图片
验证码在网络开发应用中非常重要,广泛应用于用户注册、登录、留言、购物和网络支付中,可以有效阻止恶意用户频繁提交非法数据。图片验证码是比较传统的验证码方式,图片除了经过平移、旋转、错切、缩放等基本变换的字母和数字之外,还有一些线条和其他干扰因素。# -*- coding: utf-8 -*-"""Created on Fri Nov 27 16:10:15 2020@author: pistachio"""#生成验证码图片from PIL import Image,ImageDraw,Im原创 2020-11-30 21:16:58 · 2007 阅读 · 0 评论 -
数据可视化python教程
Python实现可视化的三个步骤:数据间存在分布,构成,比较,联系以及变化趋势等关系。对应不一样的关系,选择相应的图形进行展示。第二步:转换数据,应用函数数据分析和建模方面的大量编程工作都是用在数据准备的基础上的:加载、清理、转换以及重塑。我们可视化步骤也需要对数据进行整理,转换成我们需要的格式再套用可视化方法完成作图。下面是一些常用的数据转换方法:函数则根据第一步中选择好的图形,去找python中对应的函数。第三步:参数设置,一目了然原始图形画完后,我们...转载 2020-11-27 17:29:31 · 310 阅读 · 0 评论 -
绘制三维图形
import numpy as npimport matplotlib.pyplot as pltimport mpl_toolkits.mplot3dx,y=np.mgrid[-2:2:20j,-2:2:20j]z=50 *np.sin(x+y)ax=plt.subplot(111,projection='3d')ax.plot_surface(x,y,z,rstride=2,cstride=1,cmap=plt.cm.Blues_r)ax.set_xlabel('X')ax.set_.原创 2020-11-16 22:32:29 · 240 阅读 · 0 评论 -
用python绘制三维参数曲线
参数曲线方程为#绘制三维参数曲线import matplotlib as mpl#from mpl_toolkits.mplot3d import Axes3Dimport numpy as npimport matplotlib.pyplot as pltmpl.rcParams['legend.fontsize']=10#图例字号fig=plt.figure()ax=fig.gca(projection='3d')#三维图形theta=np.linspace(-4*np.pi,4原创 2020-11-16 22:16:25 · 906 阅读 · 0 评论 -
高级算法与分析笔记一
1.什么是算法算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。2.求两个整数的最大公约数详情见此篇https://blog.csdn.net/qq_44344649/article/details/88322678#辗转相除法int gcd(int a,int b){ int temp; if(a==0||b==0) retu原创 2020-11-11 20:37:40 · 563 阅读 · 0 评论 -
数学形态学,进行开闭膨胀运算
import matplotlib.pyplot as pltimport numpy as npfrom scipy import ndimageplt.rcParams['font.sans-serif']=['SimHei']#解决标题、坐标轴标签不能是中文的问题plt.rcParams['axes.unicode_minus']=False#标题等默认是英文输出square=np.zeros((32,32))square[10:20,10:20]=1x,y=(32*np.rand.原创 2020-11-08 11:52:35 · 339 阅读 · 0 评论 -
用python进行图像滤波
模块ndimage提供了大量用于N维图像处理的方法,这里仅仅演示高斯滤波、边缘锐化、中值滤波from scipy import miscfrom scipy import ndimageimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#解决标题、坐标轴标签不能是中文的问题plt.rcParams['axes.unicode_minus']=False#标题等默认是英文输出face=misc.原创 2020-11-08 10:37:06 · 1517 阅读 · 0 评论 -
中国大学排名定位爬虫
'''1.打开http://www.zuihaodaxue.cn/robots.txt,发现网页不存在,说明网站并没有通过robots协议对爬虫做相关的限制2.'''import requestsfrom bs4 import BeautifulSoupimport bs4 # 获取目标网址的文本信息def getHtmlText(url):#从网络上获取大学排名网页内容 try: r = requests.get(url,timeout=30) .原创 2020-11-08 08:28:14 · 380 阅读 · 0 评论 -
hamlet文本词频统计
hamlet文本下载地址:https://python123.io/resources/pye/hamlet.txtdef getText(): txt=open("hamlet.txt","r").read() txt=txt.lower() for ch in '!"#$%&()*+-,./:;<=>?@[\\]^_{|}.~·‘’': txt=txt.replace(ch," ") return txthamletTxt=.原创 2020-11-07 10:48:26 · 1234 阅读 · 0 评论 -
用python编写科赫雪花小包裹
import turtledef koch(size,n): if n==0: turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1)def main(): turtle.setup(600,600) turtle.penup() turtle.goto(-200,1.原创 2020-11-06 21:25:58 · 357 阅读 · 0 评论 -
获取系统时间并将之用七段数码管绘制出来
import turtle,timedef drawGap(): turtle.penup() turtle.fd(5)def drawLine(draw): drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90)def drawDigit(digit): drawLine(True) if digi.原创 2020-11-05 22:44:41 · 500 阅读 · 0 评论 -
用python绘制给定数字字符串的七段数码管
import turtledef drawLine(draw): turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90)def drawDigit(digit): drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6.原创 2020-11-05 22:06:05 · 745 阅读 · 1 评论 -
用蒙特卡罗方法计算圆周率
#用蒙特卡罗方法计算圆周率from random import randomfrom time import perf_counterDARTS=1000*1000hits=0.0start=perf_counter()for i in range(DARTS+1): x,y=random(),random() r=pow(x**2+y**2,0.5) if r<=1.0: hits+=1pi=4*(hits/DARTS)print('圆周率的.原创 2020-11-05 19:11:27 · 295 阅读 · 0 评论 -
python随机库中几个实用随机函数的使用
import randoma=random.randint(10,100)#生成一个1-100的随机数b=random.randrange(10,100,10)#生成一个10-100步长为10的随机整数c=random.getrandbits(16)#生成一个16比特的随机整数d=random.uniform(10,100)#生成一个1-100的随机小数e=random.choice([1,2,3,4,5,6,7,8])#从序列中随机选择一个数f=random.random()#生成一个0-.原创 2020-11-05 18:48:36 · 369 阅读 · 0 评论 -
用python编写BMI指数,判断你瘦还是胖
height,weight=eval(input("请输入你的身高(m)和体重(kg)[逗号隔开]:"))bmi=weight/pow(height,2)print('BMI指数为:{:.2f}'.format(bmi))who,nat='',''if bmi<18.5: who,nat='偏瘦','偏瘦'elif 18.5<=bmi<24: who,nat='正常','正常'elif 24<=bmi<25: who,nat='正常','偏.原创 2020-11-05 16:59:01 · 3117 阅读 · 1 评论 -
用python编写文本进度条
import timescale=50print('执行开始'.center(scale//2,'-'))start=time.perf_counter()for i in range(scale+1): a='*'*i b='.'*(scale-i) c=(i/scale)*100 dur=time.perf_counter()-start print('\r{:^3.0f}%[{}->{}]{:.2f}s'.format(c,a,b,dur),en.原创 2020-11-04 19:30:13 · 1772 阅读 · 0 评论 -
用python实现三层神经网络反向传播更新权重
#训练集http://www.pjreddie.com/media/files/mnist_train.csv#测试集http://www.pjreddie.com/media/files/mnist_test.csvimport numpy#scipy.special for the sigmoid function expit()import scipy.specialimport matplotlib.pyplot#neural network class definitioncl.原创 2020-11-01 18:37:05 · 1108 阅读 · 0 评论 -
用python计算数学中简单图形的面积(以三角形为例)
import matha,b,c=map(float,(input('请输入三角形的三条边:').split(',')))#三条边为浮点数if a+b>c and b+c>a and c+a>b: s=a+b+c s=s/2 area=math.sqrt(s*(s-a)*(s-b)*(s-c))#秦九韶公式 print("三角形的面积是{:.2f}".format((area)))#结果保留三位小数else: p.原创 2020-10-30 14:59:37 · 1051 阅读 · 0 评论 -
用python显示图像
#显示图像的方法imshow()#imread()方法读入图像import matplotlib.pyplot as pltfrom matplotlib.image import imreadimg=imread('lena.jpg')#注意路径,我这图像已在工作目录下plt.imshow(img)plt.show()原创 2020-10-29 21:19:55 · 451 阅读 · 0 评论 -
用python编写绘制sinx和cosx图像
import numpy as npimport matplotlib.pyplot as plt#生成数据x=np.arange(0,6,0.1)#以0.1为单位,生成0到6的数据y1=np.sin(x)y2=np.cos(x)#绘制图形plt.rcParams['font.sans-serif']=['SimHei']#解决标题、坐标轴标签不能是中文的问题plt.rcParams['axes.unicode_minus']=False#标题等默认是英文输出plt.plot(x,y.原创 2020-10-29 21:05:39 · 16993 阅读 · 1 评论 -
Numpy的简单练习
#numpy的简单练习import numpy as npx=np.array([1.0,2.0,3.0])y=np.array([2.0,4.0,4.0])print(type(x))#打印x的类型,类型为numpy.ndarrayprint(x+y)#element-wise sumprint(x*y)#element-wise productprint(x/2)#和单一数值(标量)组合起来运算,即广播#---------------------N维数组----------------.原创 2020-10-28 22:41:24 · 195 阅读 · 0 评论 -
数学、物理常用常数与单位模块constants
scpiy工具包的常数模块constants包含大量用于科学计算的常数,下面给出其中几个,更多查看http://docs.scipy.org/doc/scipy/reference/cnstants.htmlfrom scipy import constants as Cprint(C.pi)#圆周率print(C.golden)#黄金比例print(C.c)#真空中的光速print(C.h)#普朗克常数print(C.mile)#一英里等于多少米print(C.inch)#一英寸等于多原创 2020-10-28 20:06:20 · 409 阅读 · 0 评论 -
用python提供的AES算法实现消息的加解密
import stringimport randomfrom Crypto.Cipher import AES#假如没有这个包,记得自己安装哦#生成指定长度的密钥def keyGenerater(length): if length not in (16,24,32): return None x=string.ascii_letters+string.digits return ''.join([random.choice(x) for i in ran.原创 2020-10-27 16:38:18 · 257 阅读 · 0 评论 -
换位密码算法
换位密码算法基本原理:先把明文按固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密。为加强安全性,可进行多次换位密码算法运算。import randomdef encrypt(plainText,t): result=[] length=len(t) temp=[plainText[i:i+length] for i in range(0,len(plainText),length)] for item in temp[:-1]: new.原创 2020-10-26 21:13:57 · 2078 阅读 · 0 评论 -
IP地址查询全代码
import requestsurl='http://m.ip138.com/iplookup.asp?ip='try: # headers={'Connection':'keep-alive'} kv={'user-agent':'Mozilla/5.0','Connection':'close'}#必须加上这步,否则会爬取失败 r=requests.get(url+'202.204.80.112',headers=kv) print(r.status_code) .原创 2020-10-26 19:45:26 · 3122 阅读 · 0 评论 -
爬取网上图片
import requestsimport osurl='http://pic1.sc.chinaz.com/files/pic/pic9/202010/bpic21550.jpg'#有的图片爬取不下来,或者爬取下来图片打不开,可以去网上找别的方法root='D://pics//'path=root+url.split('/')[-1]try: if not os.path.exists(root): os.mkdir(root)#创建文件夹 if not os..原创 2020-10-26 18:54:39 · 180 阅读 · 0 评论 -
百度360搜索全代码
import requestskeyword='python'try: kv={'wd':keyword} r=requests.get('http://www.baidu.com/s',kv)#百度搜索关键词 print(r.request.url)#打印url地址 r.raise_for_status() print(len(r.text))#打印搜索结果经编码后字符串的长度 'print(r.text[1:10000])'#打印前10000个字符串.原创 2020-10-26 15:11:41 · 530 阅读 · 0 评论 -
爬取亚马逊中国网页商品信息
import requestsurl='https://www.amazon.cn/dp/B07TBV89LK/ref=lp_1952994051_1_1?s=home-improvement&ie=UTF8&qid=1603676360&sr=1-1'try: kv={'user-agent':'Mozilla/5.0'}#改变头部信息 r=requests.get(url) #print(r.status_code) r.raise_.原创 2020-10-26 09:54:30 · 236 阅读 · 0 评论 -
爬虫入门程序
import requestsurl=input("请输入你想爬取的网页:")try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding print(r.text) 'print(r.text[:1000])'#限制爬取内容长度except: print("爬取失败")...原创 2020-10-26 09:17:40 · 147 阅读 · 0 评论 -
用python编写维吉尼亚密码加解密
简单介绍:维吉尼亚密码算法使用一个密钥和一个表来实现加密,根据明文和密钥的对应关系进行查表来决定加密结果。假设替换表如图https://www.qqxiuzi.cn/bianma/weijiniyamima.png所示,最上面一行表示明文,最左边一列表示密钥,那么二维表格中与明文字母和密钥字母对应的字母就是加密结果。例如单词PYTHON使用ABCDEF做密钥的加密结果就是PZVKSS可在此网站验证https://www.qqxiuzi.cn/bianma/weijiniyamima.php代码.原创 2020-10-25 20:50:02 · 4354 阅读 · 0 评论 -
随机数生成散点图
import matplotlib.pylab as plimport numpy as npx=np.random.random(100)y=np.random.random(100)pl.scatter(x,y,s=x*500,c=u'r',marker=u'*')#s指的是大小,c指的是颜色,marker指的是符号形状pl.title('随机数生成散点图')pl.show()...原创 2020-10-25 19:44:12 · 1393 阅读 · 0 评论 -
用python绘制散点图
import numpy as npimport pylab as plpl.rcParams['font.sans-serif']=['SimHei']#解决标题、坐标轴标签不能是中文的问题pl.rcParams['axes.unicode_minus']=False#标题等默认是英文输出a=np.arange(-4*np.pi,4*np.pi,0.1)b=np.cos(a)pl.scatter(a,b)#绘制散点图pl.title('余弦散点图')pl.show()...原创 2020-10-25 19:35:00 · 426 阅读 · 0 评论 -
用python画函数图像
代码:import numpy as npimport pylab as plpl.rcParams['font.sans-serif']=['SimHei']#解决标题、坐标轴标签不能是中文的问题pl.rcParams['axes.unicode_minus']=False#标题等默认是英文输出x=np.arange(-4*np.pi,4.0*np.pi,0.0001)#生成数组,0到2π之间,0.001为步长y=np.sin(x)#对数组中所有元素求正弦值,得到新数组pl.plot(原创 2020-10-25 19:26:17 · 777 阅读 · 0 评论 -
用python编写斐波那契数列
输出1-1000的斐波那契数列a,b=0,1while b<1000: print(b) a,b=b,a+b测试结果:原创 2020-10-16 08:45:19 · 492 阅读 · 0 评论 -
用Python扩展库psutil查询系统信息
1.该库常用来系统运行状态的检测和维护,注意参考时搞清楚每个程序的开始和结尾,这里程序有点多import datetimeimport psutil#扩展库psutil用来检测和维护系统运行状态#查看CPU信息-------------------------------------------------print(psutil.cpu_count())#查看CPU核数print(psutil.cpu_count(logical=False))#查看物理CPU个数print(psutil.原创 2020-10-15 20:33:11 · 352 阅读 · 0 评论 -
计算a+aa+.............+aaaa..a的和,其中a为小于10的自然数
def demo(v,n): assert 0<v<10,'v must between 1 and 9' assert type(n)==int,'n must be integer' result,t=0,0 for i in range(n): t=t*10+v result+=t return resultprint(demo(3,4))原创 2020-10-13 18:10:45 · 589 阅读 · 0 评论 -
用python编写给定数字组成的每位数都不相同的所有数
给定1,2,3,4四个数字,输出每位数都不相同的三位数digits=(1,2,3,4)for i in digits: ii=i*100 for j in digits: if j==i: continue jj=j*10 for k in digits: if k==i or k==j: continue print(ii+jj+k原创 2020-10-13 17:40:19 · 2681 阅读 · 0 评论 -
用python编写鸡兔同笼问题
def NumberOfjitu(x,y):#其中x表示鸡兔数量,y表示鸡兔脚的数量 for ji in range(0,x): for tu in range(0,x): if ji+tu==x and ji*2+tu*4==y: print("鸡有{}只".format(ji),"兔有{}只".format(tu)) NumberOfjitu(30,90)#引用函数,输出鸡兔30只,脚90只的鸡兔数...原创 2020-10-13 16:31:20 · 8710 阅读 · 0 评论 -
用python编写输出2到100的所有素数
for i in range(2,101): j=2 for j in range(2,i): if(i%j==0): break else: print(i,end=' ')原创 2020-10-11 22:32:42 · 10946 阅读 · 1 评论