
Python学习笔记
暖仔会飞
这个作者很懒,什么都没留下…
展开
-
python学习之:妙用魔法函数 __dict___来调用对象中的方法,或者 python文件中的方法
_dict__这种方法可以针对一个.py文件中定义的方法使用,也可以针对成员方法使用对成员方法使用的时候,记得要把self关键字补上对于类方法和静态方法,不能通过__dict__来实现。原创 2022-12-11 19:09:12 · 691 阅读 · 0 评论 -
Python学习之:pycharm 运行没问题但是 terminal(终端)运行却各种 module 问题
pycharm 可以运行程序但通过终端就报错 no module原创 2022-06-27 22:19:32 · 2991 阅读 · 2 评论 -
python学习之:pandas 使用函数或者映射进行数据替换;pandas 离散化数据和分箱
文章目录函数或映射进行值替代分箱按照指定的边界值来分箱按照指定的分位数进行分箱函数或映射进行值替代df = pd.DataFrame([['jeff',18] ,['herry',20] ,['chris',25] ,['culry',38]],columns=['name','age'])df name age原创 2022-02-26 16:27:29 · 714 阅读 · 0 评论 -
python学习之:一步到位——通过 requirements 完成对 python 环境的移植
命令直接用 pip freeze > requirements.txt 的问题容易存在很多的库没有具体的版本信息,后面带一个路径一样的东西,因此采用下面的方式可以一步到位pip list --format=freeze > requirements.txt这样所有的 pip 环境都就被记录在 requirements.txt 中了然后在新设备上通过下列命令批量安装:pip install -r requirements.txt...原创 2022-02-24 20:47:01 · 468 阅读 · 0 评论 -
Python学习之:pandas 索引 loc,iloc ;数据过滤和筛选
import pandas as pdcolumns = ['name','age','sex']data = [['wang',15,'male'], ['li',20,'female']]df = pd.DataFrame(data=data,columns=columns)df name age sex 0 wang 15原创 2022-02-23 23:51:13 · 3077 阅读 · 0 评论 -
Python学习之:pandas中的注意事项
df[“column”] 和 df.column 的区别import numpy as npimport pandas as pdcolumns = ["name","id"]names = ["wangfang","zhangsan","jeff","peter","hell"]ids = [i** 2 for i in range(5)]df = pd.DataFrame(data=np.array([names,ids]).T,columns=columns)df原创 2022-02-21 14:37:17 · 1792 阅读 · 0 评论 -
python学习之:迭代器,生成器,生成器表达式,itertools
迭代器任何可以通过 for 循环遍历的对象都是通过迭代器协议来实现功能的,即他们自身都可以看做迭代器,例如:列表字典集合当我们使用 for i in A 这个语句的时候,python 解释器就会首先尝试根据 A 来生成一个迭代器,即尝试 iter(A),如果 A 是不可迭代的对象,就会报错;而通过 iter(A) 不报错,就代表 A 对象满足了迭代器协议,是可以遍历的。lst = [1,2,3]dic = {"a":1,"b":2,"c":3}set_ = {1,2,3}it原创 2022-02-20 13:51:20 · 332 阅读 · 0 评论 -
python学习之:嵌套列表推导式,把函数作为对象
文章目录嵌套列表推导式函数做对象将多个函数作为对象放到一个列表中将函数作为对象传入 map 中对列表元素批量操作嵌套列表推导式name_lsts = [["jee","peer","perry"] ,["darl","cristin","wang"]]all_names = [name for name_lst in name_lsts for name in name_lst]all_names['jee', 'peer', 'perry', 'darl', 'cri原创 2022-02-20 13:16:28 · 242 阅读 · 0 评论 -
python 学习之:字典默认值的用法
默认值从字典中读取时使用默认值dic = {"a":1,"b":2, "c":3, "d":4}key = "e"value = 0if key in dic: value = dic[key]else: value = 0value = dic.get("e",0)# 同时也可以将列表作为默认值value2 = dic.get("e",[1,2,3])value0value2[1, 2, 3]创建字典时使用默认值words = ["apple"原创 2022-02-20 10:48:18 · 1209 阅读 · 0 评论 -
Python学习之:无障碍 import 其他包中的文件: sys.path.append()
使用场景现在你的 project 的文件是这么放置的:Projectmodelresnet.pywideresnet.pytrainutil.pyrun.py如果这时候你想在 run.py 中使用 model 中的文件,你就可以在 run 的第一行开头的时候写上如下代码,你就可以进行模块的导入了import syssys.path.append("../model")...原创 2022-01-23 20:17:41 · 321 阅读 · 0 评论 -
python日常学习之:枚举类的使用
枚举类要引如 enum 包,继承 Enum 类import matplotlib.pyplot as pltimport enumclass Color(enum.Enum): red = 'r' green = 'g'plt.scatter(1,2,color=Color.red.value)Color.red.name'red'Color.red.value'r'更加详细的使用方法请参考:https://www.cnblogs.com/skaa原创 2022-01-11 20:20:30 · 246 阅读 · 0 评论 -
Python学习之:Python 中的 list , array 的区别
文章目录listarraylistlist 是 python 中自带的数据结构,类似于 java 中的抽象数据结构“arraylist” ,其中可以存放各种数据类型的元素,即不限制 list 中的元素是否具有相同的数据类型arraypython 中是不存在 array 这种数据结构的。python 中的 array 是通过调用 numpy 库才能使用的单维度的 list 可以直接通过 numpy.array() 转换成一维的 array,嵌套的list 也可以通过这个语句而直接转换成多维的 ar原创 2021-07-02 01:00:06 · 1878 阅读 · 1 评论 -
日常学习之:PIL--- 将图片和数组相互转化的利器
文章目录导包并产生随机 array 数据使用 PIL 将 array 转化成 image用 PIL 读取存储的图片导包并产生随机 array 数据import numpy as npfrom PIL import Imageimport matplotlib.pyplot as pltimg = np.random.random((50,50,3))plt.imshow(img)使用 PIL 将 array 转化成 imagedoc = Image.fromarray(np.uint8原创 2020-12-09 16:31:27 · 672 阅读 · 0 评论 -
python学习笔记:enumerate 和 zip函数
文章目录enumeratezipenumerate可以给列表中的每个元素分配一个索引zip把两个列表进行打包(按照短的那个列表的长度进行,多余的元素不进行处理)enumerate 和 zip 产生的对象都是惰性对象(生成器产生的对象),所以要通过 [*result] 这种方式来进行打印,也可以通过 list(result) 的方式...原创 2020-10-20 13:04:06 · 302 阅读 · 0 评论 -
Python应用之:如何将93张图片按照序号均匀的分到31个文件夹
文章目录1. 信息描述1.1 生成保存的路径和 31 个子文件夹1.2 把对应的图片文件按照要求分到各个文件夹1. 信息描述原始数据 93 张图片,编号: 0 – 92原始文件夹名称:raw_data新生成的文件夹名称:output_fileoutput_file 中有 30个子文件夹,编号 0 – 29现在想把这 93 张图片,按照需要每 3 个一组分别分到这 30 个文件夹中;例如:图片编号 0–2 的放入 0 号文件夹,编号 3–5 的放入 1 号文件夹。。。。1.1 生成保存的路径原创 2020-09-27 16:48:39 · 978 阅读 · 0 评论 -
Python库学习之:Numpy的常用的9种操作和方法(欢迎补充)
文章目录1. 创建2. 切片索引1. 创建import numpy as np# 按照范围和步长产生print(np.arange(5))print(np.arange(1, 10))print(np.arange(1, 10, 2))# 列表产生数组print(np.array([1, 2, 3]))print(np.array([[1, 2], [3, 4]]))# 生成全零或者全 1 的矩阵print(np.ones((3, 3)))print(np.zeros((3,原创 2020-09-11 09:02:04 · 1418 阅读 · 0 评论 -
Python学习之:计算机中的“数组”与线性代数中的“矩阵”的关联和差别
数组数组是计算机概念:数组的维度可以是任意维度;判断数组的维度可以根据一个数组有多少层 [ 来判定;以下展示了不同维度的数组import numpy as npone_dim_array = np.array([1,2,3,4])print(one_dim_array, '\n')two_dim_array = np.array([[1,2,3,4],[5,6,7,8]])print(two_dim_array, '\n')three_dim_array_1 = np.arra原创 2020-09-09 18:06:59 · 749 阅读 · 0 评论 -
Python学习笔记之:如何去除列表中的 None 值
代码lst = [1,2,3,None]# 方法1:常规使用一个新列表new_lst = []for i in lst: if i is not None: new_lst.append(i)print(new_lst)# 方法2:通过列表解析完成new_lst_1 = [i for i in lst if i is not None]print(new_lst_1)# 方法3:通过 filter 函数来实现new_lst_2 = list(filter(N原创 2020-08-29 23:36:06 · 6716 阅读 · 0 评论 -
Python学习之:如何根据经纬度来实现地图的可视化(将这些点在地图上标注出来)
文章目录最终效果展示实操步骤第一步:打开高德地图的控制台-->数据可视化第二步:创建可视化项目第三步:上传CSV数据(注意格式要求,一定要包含经纬度信息)第四步:创建可视化实例最终效果展示这些红色的点,就是我们给出的经纬度的位置所标注出来的实操步骤第一步:打开高德地图的控制台–>数据可视化依然还是借助高德地图的开放平台: 控制台–> 数据可视化 (如果你原来从来没有使用过高德地图开放平台,你要先申请一个 key,这个过程请自行完成,可以参考我的博客 https://blo原创 2020-08-29 12:24:58 · 17700 阅读 · 8 评论 -
Python日常学习之:如何使用 pyecharts进行可视化,并且把可视化的交互式结果导入 ppt 中
文章目录需求分析如何使用 pyecharts如何安装如何学习实例bootCDN如何将 pyecharts 的结果导入 ppt步骤1:在选项中加入开发工具步骤2:编辑注册表并插入 web browser 控件成果图需求分析拥有非常高质量的结果,如果不能通过可视化来进行明晰的讲解,那么数据的功力就会折损很多,所以具有强大的可视化能力目前会越来越符合各个公司的要求。但是,仅仅拥有可视化的能力,如果不能将结果应用到 ppt 中进行讲解,那么一定是一件比较遗憾的事情。基于以上两点,我用了一整天的时间,原创 2020-08-26 11:00:53 · 5539 阅读 · 28 评论 -
Python学习之:如何将zip() 中的东西打印出来
问题通过以下方式逐行打印 zip中的项是不能成功的lst = [1,2,3,4]lst2 = [5,6,7,8]lst3 = [9,1,1,2]tupel_lst = zip(lst,lst2,lst3)print(list(tupel_lst))for i in tupel_lst: print(i)解决方法lst = [1,2,3,4]lst2 = [5,6,7,8]lst3 = [9,1,1,2]tupel_lst = zip(lst,lst2,lst3)pr原创 2020-08-24 17:51:07 · 3087 阅读 · 1 评论 -
Python学习之:selenium不支持xpath中直接获取text,报错:selenium Message: invalid selector: The result of the xpath e
文章目录问题演示解决方法方法1:使用 `from lxml import etree` 中的 xpath来进行解析方法2:使用 selenium 中针对 xpath 的 `text` 方法问题演示position_info_lst = driver.find_element_by_xpath('//div//h3//text()')报错:解决方法方法1:使用 from lxml import etree 中的 xpath来进行解析 text = driver.page_source原创 2020-08-24 16:14:04 · 4372 阅读 · 0 评论 -
Python日常学习之:使用高德地图API 来获取某个位置所属在哪个省
文章目录需求和应用场景代码需求和应用场景比如说,我现在即将要完成一个功能场景:通过爬虫爬取各个单位发布的有关 Python工程师的信息,这些发布的职位信息包括了:公司名称 | 所处位置 | 薪资待遇;例如:阿里巴巴 | 杭州市 | 1.8-2.1万/月将已有的信息进行数据可视化,我想要得到不同省的Python职位的平均薪资水平,所以我需要将 杭州–> 浙江省,因为城市太多,不利于统计。进行数据可视化那么为了实现这个功能,我们用以下代码来实现,调用高德地图的 API 接口代原创 2020-08-24 12:11:07 · 814 阅读 · 0 评论 -
Python学习之:xlrd库的使用
文章目录xlrd能打开的文件类型常规操作行操作实例化一下:列操作实例化一下:单元格操作实例化一下xlrd能打开的文件类型如果是 csv 文件会报错打开的文件需要时 xls 后缀结尾import xlrdws = xlrd.open_workbook('data.csv')print(ws)报错:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b’\xc8\x原创 2020-08-23 09:00:37 · 4625 阅读 · 1 评论 -
Python学习之:如何通过 datetime 模块,将一个字符串日期得到星期几
datetime.strptime()datetime.strftime()原创 2020-08-21 11:46:09 · 2591 阅读 · 0 评论 -
Python学习之:random.randint 和 random.randrange 的区别
文章目录区别区别1:randint 是左右闭区间 ,而randrange取值是左闭右开,即取不到最右边的值区别2:randint 只是随机产生某个区间内的一个值,但是randrange则可以按固定的间隔来产生随机数区别区别1:randint 是左右闭区间 ,而randrange取值是左闭右开,即取不到最右边的值import randomlst = [random.randint(1,3) for _ in range(10)]print('randint结果:',lst)lst2 = [ra原创 2020-08-21 10:46:37 · 5586 阅读 · 0 评论 -
Python进阶学习(4)
文章目录如何去掉字符串中多余的字符可迭代对象、迭代器对象如何构造和使用迭代器对象那么问题来了:迭代器存在的意义是什么呢?如何去掉字符串中多余的字符# 使用 strip,lstrip,rstrip 去掉两端多余的空白符,不能去中间的import restring = ' whsan gda 'print(string.strip())print(string.lstrip())print(string.rstrip())# 使用切片方法去掉中间的特殊字符string = 'dh原创 2020-08-20 22:50:15 · 185 阅读 · 0 评论 -
Python学习之:一文搞懂 for 和迭代器对象、可迭代对象的关系,以及他们各自的用处
文章目录for 循环的底层逻辑那么让我们继续回到 for 循环来看所以我们可以得到很浅显的结论:for 循环的底层逻辑先来看下面这段代码:lst = [1,2,3,4,5]for i in lst: print(i)for...in... 这个结构后面跟的 lst 一定是一个可迭代的对象,那可迭代对象有哪些呢:print(issubclass(list,Iterable))print(issubclass(dict,Iterable))print(issubclass(str,I原创 2020-08-20 22:46:43 · 954 阅读 · 0 评论 -
Python进阶学习(3)
文章目录如何保存用户的记录信息如何拆分含有多个分隔符的字符串判断字符串a是否是字符串b开头或结尾调整字符串中的文本格式如何将多个小字符串拼接成大字符串如何对字符串进行左中右居中对齐如何保存用户的记录信息使用 deque 来创建双向的列表,这样可以实现固定条目的信息记录import collectionsqueue = collections.deque([],5)queue.append(1)queue.append(2)queue.append(3)queue.append(4)原创 2020-08-19 07:46:07 · 158 阅读 · 0 评论 -
Python进阶学习(2)
如何统计序列中元素的频度import randomimport collections# 产生随机数字的序列numbers = [random.randint(1,20) for _ in range(60)]print(numbers)# 给出整个列表中数值的统计信息counter = collections.Counter(numbers)print(counter)counter_dict = dict(counter) #将counter 的统计结果字典化print原创 2020-08-18 21:53:30 · 159 阅读 · 0 评论 -
Python进阶学习(1)
如何在列表、字典、集合中根据条件筛选import randomimport stringlst = [random.randint(1,100) for _ in range(100)]print(lst)result = [x for x in lst if x > 90]print(result)diction = {'student%s' % random.choice(string.ascii_lowercase) : i for i in range(1,20)}prin原创 2020-08-17 23:29:29 · 154 阅读 · 0 评论 -
Python学习笔记之:两大特性和四大基本语法
文章目录两大特性动态:强类型:四大基本语法变量命名规则缩进原则关键字特殊运算符两大特性动态:类型检查的过程发生在程序的运行阶段,类型检查的过程发生在编译阶段的是静态类型语言类型检查即:查看“变量”和它们的”类型”以及他们进行的运算是否合理;比如是否用了 str 类型的变量去 == int 类型的变量动态语言包括:- python- javascript- php静态语言包括:- c- c++- Java- c#强类型:强类型指: 不管是在编译阶段还是运行阶段,一旦某种类型原创 2020-08-11 20:56:15 · 167 阅读 · 0 评论 -
Python日常学习之:用进程池 multiprocessing.Pool() 的方式写一个多线程文件复制功能
文章目录生成测试文件夹和测试文件文件拷贝功能实现代码生成测试文件夹和测试文件import osif __name__ == '__main__': source_dir = input("请输入您想产生的文件夹名称:") filename = os.path.join('./',source_dir) try: os.makedirs(filename) except FileExistsError as e: print("文件已经原创 2020-08-06 23:42:05 · 444 阅读 · 0 评论 -
Python学习笔记之:线程、进程、进程池的基本创建和使用
1.线程 threading.Thread()import threadingth1 = threading.Thread(target=函数名,args=(参数1,参数2,....))th1.start()注意:如果只有一个参数写成如下形式th1 = threading.Thread(target=函数名,args=(参数1,))2. 进程 multiprocessing.Process()import multiprocessingprocess = multiprocess原创 2020-08-06 19:09:40 · 173 阅读 · 0 评论 -
Python学习笔记之:多线程编程进行 “同步” 操作时,互斥锁和 join 方式的区别
文章目录1. join()2. 互斥锁3. FOR EXAMPLE:1. join()使用 join 函数的线程具有更高的优先级,也就是说,整个线程 执行完之后才轮到其他线程执行。2. 互斥锁互斥锁的原理是:两个线程的优先级一样,同时进行,但是对于公共数据访问时,保证:CPU轮询到的线程在完成对公共数据执行的全部操作之后再轮询到下一个不同的线程;也就是说:虽然不同的线程同时在抢夺资源,每个抢到资源的线程在完成所有操作的时间内不会被其他线程打扰。3. FOR EXAMPLE:假设现在原创 2020-07-24 23:07:59 · 221 阅读 · 0 评论 -
Python学习笔记之:线程-进程 / 并行-并发/ 同步-异步
文章目录1. 线程 - 进程2. 并行 - 并发3. 同步 - 异步1. 线程 - 进程进程是资源分配的最小单位,线程是CPU调度的最小单位让我们来直观地理解一下:【进程】> 【线程】当你打开 matlab 或者 pycharm 或者 google 浏览器这些软件,一个进程就开启了,一个进程开启的过程相对复杂,需要调用内存空间、CPU 这些系统的资源,所以说:进程是资源分配的最小单位那么线程呢?我们都知道用 python 来实现 “多线程” 编程,这个过程,无非是把本来 主函数(主线原创 2020-07-24 19:06:50 · 293 阅读 · 0 评论 -
Python学习笔记之:threading.Thread 类的继承和改造
文章目录1. 开启新线程的基本原理2. 继承并重写 threading.Thread 类2.1 重写 threading.Thread 类中的对象方法2.2 重写 threading.Thread 类中的对象属性3. 总结:开启一个线程的基本方法:1. 开启新线程的基本原理new_thread = threading.Thread(target=, args= ) # 创建一个线程 new_thread. start() # 启动这个线程即先创建一个线程,然后使用 start 方法来原创 2020-07-24 17:44:42 · 2824 阅读 · 0 评论 -
Python学习笔记之:使用 threading.Thread()来进行多线程编程 / setDaemon进行线程守护
1. 单线程import threadingimport timedef dance(): for i in range(5): time_ = time.time() current_time = time.localtime(time_)[0:6] print("我喜欢跳舞"+"\t"+"%d-%d-%d\t%d:%d:%d"%(current_time)) time.sleep(1)def sing():原创 2020-07-24 14:17:25 · 935 阅读 · 0 评论 -
Python学习笔记之:enumerate()函数:为列表中的各个元素添加有序索引
# 创建一个新的字典dic = {}# 往字典里写入 网页名称与域名的对应字典dic["4399小游戏"] = "www.4399.com"dic["百度"] = "www.baidu.com"dic["小米"] = "www.mi.com"dic["谷歌"] = "www.google.com"# 直接打印(其结果并不是一个列表,但是在python2的版本中结果是一个列表)print(dic.keys(),"\r\n")# python3 中如下,需要用list函数来得到 keys原创 2020-07-24 07:04:32 · 914 阅读 · 0 评论 -
Python学习笔记之:使用Python面向对象的方式写一个基于TCP的简单客户端和服务端聊天器
文章目录简单:只实现一条消息的收发1.客户端2. 服务端进阶:进行多条消息的收发1.客户端2.服务端简单:只实现一条消息的收发1.客户端import socketclass tcpClient(): def __init__(self,server_ip,server_port): self.tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.address = self.t原创 2020-07-23 22:41:27 · 318 阅读 · 0 评论