自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

python学习者的博客

人生苦短,我用python

  • 博客(95)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

转载 Python中的@函数装饰器到底是什么?

在解释@函数装饰器之前,先说一下,类中的类方法和静态方法。在Python中完全支持定义类方法、静态方法。这两种方法很相似,Python它们都使用类来调用(ps:用对象调用也可以)。区别在于:Python会自动绑定类方法的第一个参数,类方法的第一个参数会自动绑定到类本身;但对于静态方法则不会自动绑定。类方法用@classmethod修饰,静态方法用@staticmethod修饰,如下:#coding=utf-8class Person: @classmethod def eat(cl

2021-01-28 16:35:50 51

转载 Python中的函数(高级使用)

一、将函数作为变量去使用在Python中函数也是一种对象,是一种名为function的对象,所以可以将函数赋值给变量,类似整数、浮点数、列表、元组、字典赋值给变量。我们编写如下程序:#coding=utf-8def power(base,exponent): """定义函数:计算乘方""" result = 1 for i in range(1,exponent + 1): result *= base return resultmy_functi

2021-01-28 16:33:01 55

转载 Python基础教程:print输出带颜色的方法详解

书写格式:开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。-----------------------------------------------

2021-01-28 15:55:50 67

转载 Python如何在子类里扩展父类的property?

废话不多说,先上代码:class Person: def __init__(self, name): self.name = name @property def name(self): print("I am in the Person's name getter") return self._name @name.setter def name(self, value): print("I am in the Person's name setter") if not

2021-01-23 16:03:04 68

转载 Python基础教程:类--继承和方法的重写

什么是继承继承就是让类与类之间产生父子关系,子类可以拥有父类的静态属性和方法继承就是可以获取到另一个类中的静态属性和普通方法(并非所有成员)在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类注意:python中的继承可分为:单继承和多继承'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''class Animal: def

2021-01-23 15:47:29 54

转载 python基础入门:高阶函数

什么是高阶函数变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数def fun(x, y, f): print f(x), f(y) fun(1, -2, abs) 结果: 1 2内置高阶函数map函数map( ) 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939

2021-01-23 15:42:42 48

转载 Python基础入门:dir()与help()的使用

python内置了很多内置函数、类方法属性及各种模块。当我们想要当我们想要了解某种类型有哪些属性方法以及每种方法该怎么使用时,我们可以使用dir()函数和help()函数在python ide交互式模式下获得我们想要的信息。dir()dir()用来查询一个类或者对象所有属性,比如:>>> dir(list)['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc_

2021-01-23 15:31:43 41

转载 python中dict的fromkeys用法

fromkeys是创造一个新的字典。就是事先造好一个空字典和一个列表,fromkeys会接收两个参数,第一个参数为从外部传入的可迭代对象,会将循环取出元素作为字典的key值,另外一个参数是字典的value值,不写所有的key值所对应的value值均为None,写了则为默认的值v = dict.fromkeys(range(10))print(v)结果:{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8

2021-01-22 16:22:41 48

转载 python类中如何判断是函数还是方法

通常我们认为在类中的函数为方法,类外面声明def为函数,这种说法有点片面方法1:class Work(object): def show(self): print("执行show方法")work = Work()print(Work.show)print(work.show)结果:<function Work.show at 0x000001CC55BC5268><bound method Work.show of <__main__.Wo

2021-01-22 16:21:37 78

转载 Python 通过List 实现队列的操作

队列与栈数据结构是使用频率较高的技术知识,今天与大家一起分享Python如何用List 来实现队列操作。队列是什么队列是一种先进先出(First-In-First-Out,Fifo)的数据结构。队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不一样,在栈中,最后入栈的元素反而被优先处理。Python 实现代码'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴

2021-01-22 15:15:48 53

转载 python isinstance和issubclass区别

一、issubclass判断两个类是否是同个类,或者有继承关系。只能判断类不能判断实例class A: passclass B(A): passprint(issubclass(B,A))print(issubclass(A,A))二、isinstance用于判断一个实例是否为一个类或者子类的实例。'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''c

2021-01-22 15:10:44 41

转载 python的格式化输出format

1. format(1)设置对齐方式 (< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐)'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''print("{:<6} is {}".format('123', 'abcd')) # 左对齐print("{:>6} is {}".format('123', 'ab

2021-01-22 15:00:37 43

转载 基于Python生成短8位唯一id解决方案

实现思路利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62(字符0-9,a-z,A-Z总数量62个字符)操作,结果作为索引取出字符,这样重复率大大降低,实践测试,运行20000000次,仅出现2个重复id(仅测试过一次)。当然,这样还达不到唯一id,因为还是有重复的。解决方法呢,可以考虑结合数据库、或者其它存储来实现,以结合数据库为例,我们可以新建一张数据库表,并给表设置一个id字段,并且设置为主键、或者增加唯一约束,每次获取

2021-01-22 14:34:22 62

转载 python基础教程:类class

class 定义一个类class 定义一个类, 后面的类别首字母推荐以 大写 的形式定义,比如Calculator. 冒号不能缺 class可以先定义自己的属性,比如该属性的名称可以写为 name=‘Good Calculator’. class后面还可以跟def, 定义一个函数. 比如def add(self,x,y): 加法, 输出print(x+y). 其他的函数定义方法一样,注意这里的self 是默认值.class Calculator: #首字母要大写,冒号不能缺 name

2021-01-21 16:25:35 42

转载 python 读取文件函数

读取文件内容 file.read()使用 file.read() 能够读取到文本的所有内容.file= open('my file.txt','r')content=file.read() print(content)""""This is my first test.This is the second line.This the third line.This is appended file. """"按行读取 file.readline()如果想在文本中一行行的读

2021-01-21 16:22:29 82

转载 python input函数

对于python的input函数需要从python2和python3两方面讲。对于python3,通过input函数输入的所有内容都会作为str类型的字符串变量传入,只需要使用int和float进行强制类型转换就可以。# python3d=float(input('Please enter what is your initial balance: \n'))p=float(input('Please input what is the interest rate (as a number): \n

2021-01-21 16:21:08 48

转载 python中函数作用域

在python中,一个函数就是一个作用域name = 'xiaoming'def change_name(): name = 'sthu' print('在change_name里的name:',name)change_name() # 调用函数print("在外面的name:",name)运行结果如下:在change_name里的name: sthu在外面的name: xiaoming我们再试一下在嵌套函数中是如何的寻找的?'''遇到问题没人解答?小编创建了一

2021-01-21 16:17:11 33

转载 用map函数来完成Python并行任务的简单示例

众所周知,Python的并行处理能力很不理想。我认为如果不考虑线程和GIL的标准参数(它们大多是合法的),其原因不是因为技术不到位,而是我们的使用方法不恰当。大多数关于Python线程和多进程的教材虽然都很出色,但是内容繁琐冗长。它们的确在开篇铺陈了许多有用信息,但往往都不会涉及真正能提高日常工作的部分。经典例子DDG上以“Python threading tutorial (Python线程教程)”为关键字的热门搜索结果表明:几乎每篇文章中给出的例子都是相同的类+队列。事实上,它们就是以下这段使用p

2021-01-21 16:10:19 29

转载 Python爬虫 教程:IP池的使用

一、简介爬虫中为什么需要使用代理一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会禁止这个IP的访问。所以我们需要设置一些代理IP,每隔一段时间换一个代理IP,就算IP被禁止,依然可以换个IP继续爬取。代理的分类:正向代理:代理客户端获取数据。正向代理是为了保护客户端防止被追究责任。反向代理:代理服务器提供数据。反向代理是为了保护服务器或负责负载均衡。免费代理ip提供网站http://www.gou

2021-01-20 15:38:24 79

转载 Python基础教程:除法的运用

1.除法除 /整除 //求余 %商和余数的元组 divmoda = 9b = 2r1 = a/bprint(r1) # 4.5r2 = a//bprint(r2) # 4r3 = a%bprint(r3) # 1r4 = divmod(a,b)print(r4) # (4, 1)2.输出百分比方式1:直接使用参数格式化:{:.2%}{:.2%}: 显示小数点后2位显示小数点后2位:print('percent: {:.2%}'.f

2021-01-20 15:30:15 46

转载 Pandas中at、iat函数详解

at 函数:通过行名和列名来取值(取行名为a, 列名为A的值)iat 函数:通过行号和列号来取值(取第1行,第1列的值)本文给出at、iat常见的用法,并附上详细代码。1. 首先创建一个DataFrame(data)Out[1]: pd.DataFrame(np.arange(15).reshape(5,3), columns=list('ABC'), index=list('abcde'))Out[1]: A B Ca 0 1 2b 3 4 ..

2021-01-20 15:26:16 91

转载 Python中的defaultdict方法

python中的dict是一个重要的数据类型,知道如何使用这个数据类型很简单,但是这个类型使用过程中容易进入一些误区,这篇文章主要对defaultdict方法的讲解,深入的了解dict数据类型。字典(dictionary)数据类型,不同于其他由数字索引的序列,字典是用”键”(key)来索引的。通常表示为dict(key: val, …),有以下特征:键可以是任何不可变(immutable)数据类型(不可变数据类型:数字,字符串、元组)(也就是说key不能为列表和字典类型);每个键必须是唯一的;字典

2021-01-20 15:24:36 62

转载 python遍历文件夹下的csv文件,读取文件内容存到数据库

一、使用python导入的原因1、csv文件为从文件数据库导出的数据文件,一个一个的导入到数据库效率就比较低下;2、日期形式的字段会存在特殊的字符或者字段中包含了单引号就会报错。二、操作1、循环读取选定文件夹下的文件''' 读取文件夹下的csv文件'''def readAllFiles(filePath): fileList = os.listdir(filePath) for file in fileList: path = os.path.join(

2021-01-20 15:22:23 95

转载 Python 基础教程:两种方法判断list是否为空

Python中判断list是否为空有以下两种方式:方式一: list_temp = [] if len(list_temp): # 存在值即为真 else: # list_temp是空的方式二:'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!''' list_temp = [] if list_temp: # 存在值即为真 else:

2021-01-19 15:54:24 73

转载 python教程:35个numpy 中不常用的方法

挑战 1:引入 numpy 并查看 numpy 的版本。要求:这是第一步,以后我们使用 numpy 时都将用别名 np。# 答案import numpy as npprint(np.__version__)#> 1.13.3挑战 2:创建数组要求:创建一维数组,内容为从 0 到 9。# 输入数组arr = np.arange(10)挑战 3:创建布尔数组要求:数组大小为 3*3,全部为 True。'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:77846

2021-01-19 15:51:46 44

转载 python参数的可变参数与关键词参数

可变参数与关键词参数def can_form_triangle(a, b, c): print(f'a = {a}, b = {b}, c = {c}') return a + b > c and b + c > a and a + c > b在没有特殊处理的情况下,函数的参数都是位置参数,也就是意味着传入的参数必须对号入座,传入的参数值1,2,3会依次赋值给a,b,c可以使用args来接收任意数量的参数,但是args不能接收带参数名的参数,# 调用函

2021-01-19 15:42:04 44

转载 Python中的变量作用域,LEGB规则和闭包原理

问题来源最近看到了一个python程序题,就三行代码,却思考了很久才考虑明白,决定分享一下。def num(): return [lambda x:i*x for i in range(4)]print([m(2) for m in num()])预计结果为:0, 2, 4, 6实际输出为:6, 6, 6, 6思路分析其实把上面的代码拆分一下,等价于下面的代码def func(): fun_lambda_list = [] for i in range(4):

2021-01-19 15:29:20 33

转载 python 函数星号参数说明

python中函数参数的传递是通过赋值来传递的。函数参数的使用又有俩个方面值得注意:函数参数是如何定义的在调用函数的过程中参数是如何被解析先看第一个问题,在python中函数参数的定义主要有四种方式:1.F(arg1,arg2,...)这 是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的 值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说

2021-01-19 14:22:47 53

转载 python多继承构造函数声明问题

背景有场景分别定义两组逻辑,随后有统一入口做基类属性的整合其中两组逻辑的积累构造函数定义入参不同设计类继承图如:实际的使用方式抽象为[使用] 小节实际开发过程中遇到问题先说结论python 多继承,需要使用super函数进行MRO的依次不重复初始化python 多继承的情况下,构造函数__init__会被依次调用并传递参数python 多继承情况下,__init__参数需要保持一致,否则会出现某些继承路径上的基类初始化遇到异常python 多继承情况下,若构造

2021-01-18 15:30:28 46

转载 python模块typing的作用

一、介绍Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,typing模块可以很好的解决这个问题typing模块的作用:自python3.5开始,PEP484为python引入了类型注解(type hints)类型检查,防止运行时出现参数和返回值类型不符合。作为开发文档附加说明,方便使用者调

2021-01-18 15:13:15 73

转载 python模块operator对排序的辅助功能

一、介绍该operator模块导出一组与Python的内部运算符相对应的高效函数。例如,等同于表达式。函数名称是用于特殊类方法的函数名称; 为方便起见,还提供了没有前导和尾随的变体。operator.add(x, y)x+y__这些函数属于执行对象比较,逻辑运算,数学运算,序列运算和抽象类型测试的类别。模块特殊函数:都返回一个可调用对象,可以用于 map(), sorted(), itertools.groupby() 等接受一个函数对象作为参数的函数operator.attrgetter(*at

2021-01-18 15:09:43 44

转载 python基于redis实现分布式锁

一、什么是分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的锁进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图:上图可以看到,变量A存在三个服务器内存中(这个变量A主要体现是在一个类中的一个成员变量,是一个有状态的对象),如果不加任何控制的话,变量A同时都会在分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的!即使不是同时发过来,三个请求分别操作三

2021-01-18 15:07:04 52

转载 Python内置的一个用于命令项选项与参数解析的模块argparse

一、argparse简单使用我们先来看一个简单示例。主要有三个步骤:创建 ArgumentParser() 对象调用add_argument()方法添加参数使用parse_args()解析添加的参数示例:import argparseparser = argparse.ArgumentParser()parser.add_argument('integer', type=int, help='display an integer')args = parser.parse_args()

2021-01-18 15:04:51 39

转载 Python合并两个List

1.使用list的extend()方法,现有两个list分别为L1和L2: >>> L1 = [1, 2, 3, 4, 5] >>> L2 = [20, 30, 40] >>> L1.extend(L2) >>> L1 [1, 2, 3, 4, 5, 20, 30, 40]2.用切片(slice)操作,L1[len(L1):len(L1)] = L2和上面的方法等价,例如:'''遇到问题没人解答?小编创建了一个Pyth

2021-01-16 15:22:31 80

转载 python教程:requests-post请求四种传送正文方式

我们要知道post请求四种传送正文方式首先需要先了解一下常见的四种编码方式:HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下:1、application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以application/x-www-form-urlencoded方式提交数据。请求

2021-01-16 15:09:43 72

转载 python获取机器信息脚本

获取机器信息当前时间函数def now_time(): now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) return now_time 获取硬盘信息函数def disk_info(): disk_dict = {} disk_name = [] disk_parttions = psutil.disk_partitions() for i in ra

2021-01-16 14:59:56 53

转载 python 实现爬取网站下所有URL

获取首页元素信息:目标 test_URL:http://www.xxx.com.cn/首先检查元素,a 标签下是我们需要爬取得链接,通过获取链接路径,定位出我们需要的信息soup = Bs4(reaponse.text, "lxml")urls_li = soup.select("#mainmenu_top > div > div > ul > li")首页的URL链接获取:完成首页的URL链接获取,具体代码如下:def get_first_url(): li

2021-01-16 14:53:32 88

转载 python 实现两个文本文件内容去重

实现两个文本内容去重,输出两个文本不重复的结果两个测试文本内容如下1.txt中内容为 1 2 3 4 5 6 7 82.txt中内容为 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 分别读取两个文本的内容读取1.txt的内容,具体实现如下:str1 = []file_1 = open("1.txt","r",encoding="utf-8")for line in file_1.readlines(): str1.append(line.replace("

2021-01-16 14:49:45 102

转载 Python 中 eval 与 exec 的相同点和不同点

相同点在 Python 中,eval 和 exec 都可以用来执行动态生成(dynamically generated)的代码。两者在Python 3中的函数声明基本相同,如下所示:eval(expression[, globals[, locals]])exec(object[, globals[, locals]])其中,输入参数中,globals 必须是字典(dict)类型,表示全局空间的变量,若未提供,则通过 globals() 方法获取全局变量,若提供的字典类型对象不包含名为 __bu

2021-01-16 13:54:20 50

转载 Python 语言中 asterisk 符号用法小结

对于 asterisk 符号的使用,本文分为预定义(predefined)和自定义(customized)两部分进行介绍。预定义部分,是指 Python 语言中已经预先定义好的部分,直接用就可以了;自定义,是指定制的,需要程序员自定义相应的功能。注意,这里讨论的 asterisk 符号的使用包括*符号和** 符号两种类型。一、预定义下面介绍 asterisk 符号在数值类型、非数值内置类型、函数定义和赋值中的用法。1. 数值类型中 asterisk 符号的用法在整型和浮点型等数值类型中,*符号作为乘

2021-01-16 13:50:44 67

Python制作超级玛丽源码

本代码是用Python制作超级玛丽小游戏的代码,仅供学习参考

2019-09-28

Python制作的推箱子小游戏.zip

用Python制作的推箱子游戏,内附源码,解压后就可以用,没有打包,仅供学习参考! 人生苦短,我用Python!

2020-03-31

MHyourh的留言板

发表于 2020-01-02 最后回复 2020-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除