Python学习笔记
一个努力学习Python的老人!
知远同学
年龄永远不是学习的障碍,不断积累,必然有所收获。加油!
展开
-
python的类
一、object是python的默认类,有很多方法,python3默认所有的类都继承object,定义类的时候类名后面加不加括号,或者括号内写上object,以下三种写法都是一样的。用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。二、类有一个名为 __init__() 的特殊方法(原创 2023-11-02 23:25:24 · 206 阅读 · 0 评论 -
解决无限debugger的简单方法
无限debugger的解决方法,右键never pause here。原创 2022-12-28 22:32:30 · 458 阅读 · 0 评论 -
python装饰器 functools.wraps()的作用
import functoolsdef wapper(func): @functools.wraps(func) #加上这个以后,被装饰的函数属性不发生改变。把原来函数的元信息临时赋值给inner函数。 def inner(*args,**kwargs): return func(*args,**kwargs) return inner"""1. 执行wapper函数,并将被装饰的函数当做参数。 相当于 wapper(index)2. 将第一步的返回值.原创 2022-02-09 22:53:05 · 789 阅读 · 0 评论 -
python 装饰器
一、不带参数装饰器#定义装饰器def decorater(func): #装饰器中要传人一个函数,就是被装饰的函数 def wrapper(): #定义内部函数 func() #先调用一下传进来的函数本身 print("铺地板") #做其他执行操作 print("刷墙面") print("买家具") return wrapper #返回执行完毕的函数,要作为对象返回出去,不能加()@decorater原创 2022-02-09 19:46:41 · 536 阅读 · 0 评论 -
python 可变参数*args和**kwargs
一、赋值中的可变参数带星号的参数就是可变参数a,b,*c = 1,2,3,4,5print(a,b,c)a,*b,c = 1,2,3,4,5print(a,b,c)*a,b,c = 1,2,3,4,5print(a,b,c)运行结果1 2 [3, 4, 5]1 [2, 3, 4] 5[1, 2, 3] 4 5带星号的参数将多余的赋值放到自己里面来,python自定义为列表格式。上面是装包的过程,下面看拆包的过程a,b,c = (1,2,3)print(a,b原创 2022-02-09 00:52:12 · 786 阅读 · 0 评论 -
python 进程和线程
一、基本概念进程是资源分配的最小单位,一个程序至少有一个进程。线程是程序执行的最小单位,一个进程至少有一个线程。进程都有自己独立的地址空间,内存,数据栈等,所以进程占用资源多。由于进程的资源独立,所以通讯不方便,只能使用进程间通讯(IPC)。线程共享进程中的数据,他们使用相同的地址空间,使用线程创建快捷,创建开销比进程小。同一进程下的线程共享全局变量、静态变量等数据,所以线程通讯非常方便,但会存在数据同步与互斥的问题,如何处理好同步与互斥是编写多线程程序的难点。一个进程中可以存在多个线程原创 2022-02-08 09:28:56 · 1714 阅读 · 0 评论 -
阿里云centos8安装python虚拟环境方法
环境:阿里云centos8需求:在阿里云中新建python项目之前,需要使用virtualenv工具创建虚拟环境。步骤:1、创建目录mkdir flask (flask 是项目文件夹)cd flask 进入flask文件夹内2、创建虚拟环境virtualenv venv 使用virtualenv 创建虚拟环境,名字为venv3、进入venv目录后,启动虚拟环境source bin/activatepip list #使用该命令,查看pip清单4、原创 2022-01-19 00:12:32 · 965 阅读 · 0 评论 -
douban top250爬取
#通过豆瓣top250网页,将排行榜中的250个电影名字,发布年份,评分,评论人数四项内容写入到data.csv文件中import requestsimport reimport csvurl = "https://movie.douban.com/top250"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.424.原创 2021-10-31 00:47:32 · 133 阅读 · 0 评论 -
python CSV读写文件
1、读文件#第一种方法import csvf=open("data.csv","r")reader = csv.reader(f)a = list(reader)print(a)reader.close()#第二种方法import csvf=open("data.csv","r")reader = csv.reader(f)for i in reader: print(i)reader.close()#第三种方法import csvwith open原创 2021-10-31 00:09:03 · 603 阅读 · 0 评论 -
豆瓣top250网页提取
#通过豆瓣top250网页,将排行榜中的250个电影名字,发布年份,评分,评论人数四项内容写入到data.csv文件中import requestsimport reimport csv#找到urlurl = "https://movie.douban.com/top250"#设置headersheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Geck.原创 2021-10-30 16:56:18 · 203 阅读 · 0 评论 -
python 百度翻译接口测试
import requestsword = input("输入您要翻译的单词:")url="https://fanyi.baidu.com/sug" #百度翻译接口dict = {"kw":word}#发送的数据必须放到字典中,通过data发送resp = requests.post(url,data=dict)print(resp.json()) #将服务器返回的内容直接处理成json数据格式...原创 2021-10-28 16:13:51 · 365 阅读 · 0 评论 -
python f-string的应用
import requestskeyword = input("输入您要搜索的关键字:")url=f"https://www.baidu.com/s?wd={keyword}"dict = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30"}r = req.原创 2021-10-28 14:50:20 · 96 阅读 · 0 评论 -
python网页快速保存程序
from urllib.request import urlopendef copypage(url,name): r=urlopen(url) #打开网页 file=r.read().decode("utf-8") #网页读取到file文件中,编码格式为utf-8 path=r"C:\Users\Administrator\Desktop" #电脑桌面路径 path2=path+"\\"+name+".html" #加上文件名后的保存路径 with ope.原创 2021-10-27 22:56:13 · 1083 阅读 · 0 评论 -
python time函数应用
#休眠函数def wait(): time.sleep(4)start=time.perf_counter()wait()end=time.perf_counter()print(end-start)输出:4.0041136#时间格式化输出t=time.gmtime()tt=time.strftime("%Y-%m-%d %H:%M:%S",t)print(tt)输出:2021-10-26 13:25:58...原创 2021-10-26 21:26:46 · 144 阅读 · 0 评论 -
亚马孙商品爬取代码
import requestsurl="https://www.amazon.cn/dp/B00HJVC506/ref=sr_1_1?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&dchild=1&keywords=%E4%B9%A6&qid=1635175690&sr=8-1"try: kv = {"user-agent": "Mozilla/5.0"} r=requests.ge.原创 2021-10-25 23:33:03 · 265 阅读 · 0 评论 -
离线环境安装requests库
离线环境安装requests库,离线下载了requests库安装后,会一直提示各种问题,原因是离线安装需要再另外安装四个库,分别是: - certifi CA认证模块 - chardet 通用字符编码检测器模块 - idna 国际化域名解析模块 - urllib3 线程安全HTTP库通过命令:pip install xxx.whl 命令行安装后,测试导包import requests 成功。...原创 2021-10-25 10:31:07 · 1141 阅读 · 0 评论 -
Windows创建virtualenv虚拟环境
1、创建虚拟环境输入命令:virtualenv 环境名(如果有多个Python版本,可以通过命令:virtualenv -p python路径 环境名,来创建虚拟环境)2、进入环境下的scripts文件夹输入命令执行脚本:activate3、接下来可以在该虚拟环境下pip安装包或做各种事情了例如安装django2.0版本就可以:pip install django==2.04、退出虚拟环境输入命令:deactivate......原创 2021-10-21 11:29:30 · 1870 阅读 · 0 评论 -
HTTP 常见status码说明
HTTP Response的第一行,即Status Line 中包含了状态码。状态码由三位数字组成,标志着服务器对客户端请求处理结果。状态码分为以下几类:1xx :信息响应类,表示接收到请求并且继续处理2xx :处理成功响应类,表示动作被成功接收、理解和响应3xx :重定向响应类,为了完成指定的动作,必须进行进一步处理4xx :客户端错误,客户端请求包含语法错误或者是不能被服务端理解5xx :服务端错误,服务器不能正确执行一个有效的请求下面是一些常见的状态码及其描述:200 OK :请求已经原创 2020-11-13 10:50:45 · 568 阅读 · 0 评论 -
Python 值班表设计
五个个轮流值班,每个人一天,通过设置字典,使用time库获取当前时间的格式化形式,对比字典获取值班人员的实现方式。还可以扩展为配置文件的方式替代字典。import timedict={"1017":"A","1018":"B","1019":"C","1020":"D","1021":"E","1022":"A","1023":"B","1024":"C","1025":"D","1026":"E"}localtime = time.localtime(time.time())date =s.原创 2020-11-09 11:03:36 · 2264 阅读 · 0 评论 -
Python 最好大学网大学排名爬取(2020年)
嵩老师课程中使用BeautifulSoup库爬取最好大学网中,大学排名的课程,爬取的网页是2016的链接,现在最好大学网的网站域名和网页已经发生了一些变化,在老师原先代码的基础上进行了一些修改,给出最新的爬取代码。一、网页分析网页链接:https://www.shanghairanking.cn/rankings/bcur/2020发生变化的地方:大学名字现在增加了超链接,所以大学名字包裹在td标签下的a标签内,这个是需要注意的。二、代码如下:import requestsimp原创 2020-11-06 15:26:21 · 5983 阅读 · 17 评论 -
python 列表指定排序
ls = [("f",90),("a", 1), ("b", 4), ("c", 9)]ls.sort(key=lambda x:x[1])print(ls)原创 2020-11-04 15:41:47 · 871 阅读 · 0 评论 -
python requests库向百度/360提交关键词搜索
import requestskeyword=input("输入要搜索的关键词:")kv={"wd":keyword}try: r=requests.get("http://www.baidu.com/s",params=kv) print(r.request.url) #打印提交的URL地址 r.raise_for_status() print(r.status_code) #打印状态码 r.encoding=r.apparent_encoding .原创 2020-11-04 10:47:33 · 1058 阅读 · 0 评论 -
python 字典键和值翻转输出代码
dict=eval(input()) #输入格式:dict = {"a":1,"b":2}dict_new={}try: for k,v in dict.items(): dict_new[v]=k print(dict_new)except: print("输入错误")原创 2020-11-04 10:22:12 · 2668 阅读 · 0 评论 -
python 统计计数
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏.原创 2020-11-04 00:15:34 · 615 阅读 · 0 评论 -
requests库 使用方法汇总笔记
通过使用requests库的get方法,向百度搜索提交关键词进行搜索,然后返回搜索内容,这是requests库最基本的方法,也是最常用的方法,实例如下:import requestsdef getHtmlText(url,data): #定义一个函数,通用框架 try: user_agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \ (KHTML, like Gecko) Chro.原创 2020-11-03 09:51:56 · 1316 阅读 · 0 评论 -
python 递归函数例子
第一个列子:字符串反转def rvs(s): if s == '': return s else: return rvs(s[1:])+s[0]s= 'abcdefg'b=rvs(s)print(b) 输出:gfedcba第二个例子:斐波那契数列def F(n): if n == 1 or n == 2: return 1 else: return F(n - 1) + F(n - 2原创 2020-10-24 23:35:12 · 2300 阅读 · 0 评论 -
Python 七段数码管显示当前时间
import turtleimport timedef drawGap(): turtle.penup() turtle.forward(6)def drawLine(draw): drawGap() if draw: turtle.pendown() else: turtle.penup() turtle.forward(60) drawGap() turtle.right(90)def dra.原创 2020-10-22 21:10:12 · 2703 阅读 · 2 评论 -
Python lambda函数学习笔记
lambda函数也叫匿名函数,因为这个函数一般都没有函数名,但是可以实现函数的功能;该函数通过保留字lambda来实现。lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。lambda [arg1 [,arg2,.....argn]]:expression看个小例子来说明一下。f = lambda x, y: x + y #lambda后面的x,y是lambda函数的两个参数,“:”后面是两个参数的原创 2020-11-06 18:53:31 · 166 阅读 · 0 评论 -
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"..原创 2020-10-22 00:22:00 · 433 阅读 · 1 评论 -
python random库介绍
前言:随机数是在各种复杂条件下产生的确定值,计算机无法产生真正的随机数,random库产生的是伪随机数,我们也常把伪随机数称为随机数。(以下介绍来自百度百科)伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。伪随机数可以用计算机大量生成,在模拟研究中为了提高模拟效率,一般采用伪随机数代替真正的随机数。模拟中使用的一般是循环周期极长并能通过随机数检验的伪随机数原创 2020-10-21 16:40:50 · 1366 阅读 · 0 评论 -
Python turtle库学习笔记
一 画布:画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置。常用的画布方法有两个:screensize()和setup()。(1)turtle.screensize(canvwidth, canvheight, bg):参数分别为画布的宽(单位像素), 高, 背景颜色如:turtle.screensize(500,1000,'green')(2)turtle.setup(width, height, startx, starty):width, height:.原创 2020-10-21 15:45:36 · 762 阅读 · 0 评论 -
python 使用turtle库简单绘图5个列子
一 使用turtle库,绘制一个蟒蛇形状的图形。...原创 2020-10-15 23:51:26 · 2074 阅读 · 0 评论 -
Python 货币转换案例
题目:人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。原创 2020-10-14 10:53:50 · 6293 阅读 · 0 评论 -
Python 温度转换案列2
tempstr = input()if tempstr[0] in "F": a = eval(tempstr[1:]) b = (a-32)/1.8 print("C{:.2f}".format(b))if tempstr[0] == "C": a = eval(tempstr[1:]) b = a *1.8 + 32 print("F{:.2f}".format(b))原创 2020-10-14 10:27:07 · 416 阅读 · 0 评论 -
python 数字形式转换案例
题目:获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。0到9对应的中文字符分别是:零一二三四五六七八九#本方法是使用遍历字典的方法实现dict1 = {"0": "零", "1": "一", "2": "二", "3": "三", "4": "四", "5": "五", "6": "六",原创 2020-10-14 01:19:47 · 627 阅读 · 0 评论 -
python中33个保留字
在变量命名时,python中有33个保留字是我们不能使用的。import keywordfor kw in keyword.kwlist: print(kw)输出:FalseNoneTrueandasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassrais原创 2020-10-13 23:18:18 · 885 阅读 · 0 评论 -
python3 format()函数格式化输出的应用
一 基本写法(1)不带编号print('{} {}'.format('hello','world'))#输出:hello world(2)带编号,可以调整输出顺序print('{0} {1}'.format('hello','world')) #输出:hello worldprint('{1} {0}'.format('hello','world')) #输出:world helloprint('{0} {1} {0}'.format('hello','world')) .原创 2020-10-13 16:00:46 · 1043 阅读 · 0 评论 -
python 摄氏度和华氏度温度转换案例
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。.原创 2020-10-13 01:28:09 · 18214 阅读 · 1 评论 -
Python 定义一个文件复制函数
利用Python定义一个文件复制函数:import os #导入os模块src_path = r'E:\pycharm\p1' #设置源文件夹,target_path = r'E:\pycharm\p2' #设置目标文件夹def copy(src, target): if os.path.isdir(src) and os.path.isdir(target): # 判断源文件夹和目标文件夹是否是文件夹类型 filelist1 = os.listdir(.原创 2020-08-07 16:07:47 · 1073 阅读 · 1 评论 -
Python自己定义一个求累加和的函数
写一个函数,可以计算参数的累加和,参数的个数是不确定的,代码如下:def add(*args): sum = 0 if len(args) > 0: for i in args: sum += i print('累加和是:', sum) else: print('没有元素,和是:', sum)args 是英语 arguments的缩写,意思是位置参数,在args前面加上*号,就表示传过去的参数不确原创 2020-07-16 19:45:49 · 9782 阅读 · 0 评论