自定义博客皮肤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

  • 博客(91)
  • 收藏
  • 关注

转载 Python格式化输出的三种方式

一、占位符程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接,非常之麻烦,我们来试一试。age = 18print('My name is xxx,my age is '+str(age))My name is xxx,my age

2020-12-29 16:59:45 1135

转载 Python: 字符串开头或结尾匹配str.startswith(),str.endswith()

问题需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme 等等。解决方案1.检查字符串开头或结尾的一个简单方法是使用str.startswith() 或者是str.endswith() 方法。比如:eg1:>>> filename = 'spam.txt'>>> filename.endswith('.txt')True>>> filename.startswith('file:')False>&

2020-12-22 16:52:54 3438

转载 Python: ljust()|rjust()|center()字符串对齐

通过某种对齐方式来格式化字符串1.对于基本的操作,可以使用字符串的ljust(),rjust(),center()>>>text = 'Hello world'>>>text.ljust(20)'Hello world '>>>text.rjust(20)' Hello world'>>>text.center(20)' Hello world '>>>所有这些方法都能接受

2020-12-22 16:12:47 1316 1

转载 Python 在字符串中处理html 和xml

问题:想将HTML 或者XML 实体如&entity;或&#code; 替换为对应的文本。再者,你需要转换文本中特定的字符(比如<, >, 或&)。解决方案:1.想替换文本字符串中的< 或者> ,使用html.escape() 函数可以很容易的完成。>>> s = 'Elements are written as "<tag>text</tag>".'>>> import html>

2020-12-22 15:41:44 305 1

转载 Python: 字符串中嵌入变量

问题:想创建一个内嵌变量的字符串,变量被它的值替换掉解决方案:1.Python并没有对在字符串中简单替换变量值提供直接的支持,但是通过字符串的format()方法来解决这个问题>>>s.format(name='guoguo',n=30)'guoguo has 30 messages.'>>>S='{name} has {n} messages.">>>S.format(name='guoguo' ,n=3)'guoguo has 3 me

2020-12-22 15:37:07 1064

转载 python 将字节字符串转换成十六进制字符串

想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串1)只是简单的解码或编码一个十六进制的原始字符串,可以使用 binascii模块>>> s = b'hello'>>> # Encode as hex>>> import binascii>>> h = binascii.b2a_hex(s)>>> hb'68656c6c6f'>>> binascii

2020-12-21 16:49:27 2308

转载 python 用lambda表达式代替简单的函数, 匿名函数

当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了。比如:>>> add = lambda x,,y : x + y>>> add(2,3)5>>> add( ' hello', 'world ' )'helloworld'>>>这里使用的 lambda表达式跟下面的效果是一样的:'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道

2020-12-21 16:45:03 711

转载 python 匿名函数捕获变量值 (执行时的值)

先看下下面代码的效果:>>> x = 10>>> a = lambda y: x + y>>> x = 20>>> b = lambda y : x + y>>>现在我问你,a(10)和 b(10)返回的结果是什么?如果你认为结果是20和30,那么你就错了:'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程

2020-12-21 16:42:25 501

转载 python 减少可调用对象的参数个数

有一个被其他python 代码使用的callable 对象,可能是一个回调函数或者是一个处理器,但是它的参数太多了,导致调用时出错如果需要减少某个函数的参数个数, 你可以使用functools.partial() 。partial() 函数允许你给一个或多个参数设置固定的值,减少接下来被调用时的参数个数。为了演示清楚,假设你有下面这样的函数:def spam(a, b, c, d):print(a, b, c, d)现在我们使用partial() 函数来固定某些参数值:'''遇到问题没人解答?

2020-12-21 16:39:25 338

转载 python ‘%r‘或者‘{!r}‘的意思

这两个都是python的转译字符, 类似于%r, %d,%f>>> a = '123'>>> b = 'hello, {!r}'.format(a)>>> b"hello, '123'" 上面的例子用的是format,跟直接%效果类似。>>> a = '123'>>> b = 'hello, %r' % a>>> b"hello, '123'"这对一部分的对象还是很有用的。r直

2020-12-21 16:37:56 1186

转载 Python二十个小技巧

本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。 在平常编程过程中,以下技巧大多非常有用。1 字符串反转使用切片反转字符串。str1="qwert" rev_str1=str1[::-1] #输出 # trewq2 使首字母大写将字符串转换为首字母大写。使用 title()方法完成的。str1="this is a book" print(str1.title()) # This Is A Book3 在字符串中查找唯一元素下面代

2020-12-19 16:32:01 294 1

转载 6 个例子教你重构 Python 代码

1. 合并嵌套的 if 条件太多的嵌套会使代码难以理解,这在 Python 中尤为如此,因为 Python 没有括号来帮助区隔不同的嵌套级别。阅读深度嵌套的代码容易让人烦躁,因为你必须理清哪些条件属于哪一级。因此,我们应尽可能减少嵌套,如果两个条件可以用 and 合在一起,会比嵌套更易读。合并之前:if a:if b:return c合并后:if a and b:return c2. 将重复的代码移到条件语句之外我们应该始终寻找移除重复代码的方法。这是提升代码能力的好办法。

2020-12-19 16:19:22 381 1

转载 Python运算符可不只有加减乘除

数学里面的加减乘除,就是运算符,但是 Python 的运算符更多样,更复杂,分为算术运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符。为了更直观的看到运算符的使用,本文采用代码和注释结合的方式进行讲解。算术运算符a = 21b = 10c = 0# 加c = a + b # 31# 减c = a - b # 11# 乘c = a * b # 210# 除c = a / b # 2.1# 求余数c = a % b # 1# 幂(次

2020-12-19 16:14:53 328 1

转载 Python十大常用文件操作

日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘。本篇文章整理了10个Python中最常用到的文件操作,无论是批处理还是读取文件都会用到,相信这个梳理会有所帮助。1. 显示当前目录当我们想知道当前的工作目录是什么的时候,我们可以简单地使用 os 模块的 getcwd() 功能,或者使用 pathlib 的 cwd() ,如下所示。>>> # 第一种方法:显示当前目录... im

2020-12-19 16:08:39 426 1

转载 Python排序函数用法

Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,dict),我们可以使用更灵活的sorted()函数。一.List的sort()函数Python源码builtins.py文件对sort()函数的定义如下def sort(self, key=None, reverse=False): """ L.sort(key=None, reverse=False) -> N

2020-12-19 15:43:33 573 1

转载 Python教程:多变量的灵活处理

今天就和大家介绍一个最基础,非常好用,但是很多人不知道的操作。解压变量我们都知道,Python允许进行多个变量的赋值操作,比如著名的交换两个元素,如果是在C++或者Java语言当中,如果不通过函数实现,必须要引入第三个变量,比如:# swap a, bc = aa = bb = c我们要交换a和b必须要引入c,这是因为当我们赋值b给a的时候,a原本的值会丢失,所以我们必须要先”缓存“下来。但是由于Python支持多变量赋值的操作,所以大可不必引入其他变量就可以完成,所以交换两个元素在Pyth

2020-12-18 15:30:29 892 1

转载 Python教程:自定义排序全套方案

Python封装了成熟的排序函数。我们只需要调用内部的sort函数,就可以完成排序。但是实际场景当中,排序的应用往往比较复杂,比如对象类型,当中有多个字段,我们希望按照指定字段排序,或者是希望按照多关键字排序,这个时候就不能简单的函数调用来解决了。字典排序我们先来看下最常见的字典排序的场景,假设我们有一个字典的数组,字典内有多个字段。我们希望能够根据字典当中的某一个字段来进行排序,我们用实际数据来举个例子:kids = [ {'name': 'xiaoming', 'score': 99, '

2020-12-18 15:22:24 895

转载 Python序列的增量赋值

增量赋值运算符有 += 和 *=。+= 背后的特殊方法是 __iadd__,如果一个类没有实现__iadd__方法,Python 会退一步调用__add__方法。这两个方法的区别在于,__iadd__为就地改动,不会改变原值的内存地址,而 __add__ 方法会得到一个新对象。考虑下面一个表达式:a += b如果 a 实现了__iadd__ 方法,a 会就地改动(内存地址不变)。如果 a 没有实现 __iadd__ 方法,那么 a += b这个表达式的效果就变得跟a = a + b一样了,生成一个新

2020-12-18 15:08:32 635 1

转载 python反转列表的三种方式

1.内建函数 reversed() li = [1,2,3,4,5,6] a = list(reversed(li)) print(a)注意:reversed()函数返回的是一个迭代器,而不是一个List,所以需要list函数转换一下2.内建函数sorted语法sorted(iteralbe,key=None,reverse=Falseiterable,用来比较的参数key用来比较的元素reverse-排序规则, reverse = True(降序 reverse=False(

2020-12-18 14:43:37 728

转载 python多值参数函数介绍,数字累加例子

python函数是可以接收不确定个数的参数的,最简单的例子如下:def func(num, * args, **kwargs):  print(num)  print(args)  print(kwargs)如果运行func(25),执行结果如下:25(){}如果运行fun(1, 2, 3, 4), 执行结果如下:1(2, 3, 4){}如果运行fun(1, 2, 3, 4, name = 'xiaoming', age = 18),执行结果如下:1(2,

2020-12-18 14:33:28 752

转载 python中 使用join()方法 对各种数据类型中元的素进行合并拼接

"连接符".join(列表或元组或字符串或字典)返回的是一个使用连接符进行拼接的字符串如果对象是列表,元组,就是以一个下标元素为单位进行拼接如果对象是字符串,就是一个单词元素为单位进行拼接如果对象是字典,就是以一个键为单位进行拼接列表In [4]: a = ["123", "123"]In [5]: b = "".join(a)In [6]: bOut[6]: '123123'字典'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同

2020-12-18 14:28:30 514

转载 python 使用 sorted 对 列表嵌套元组的数据进行排序

在开发的过程可能会遇到这么一个需求,存在一个列表嵌套元组的数据:data = [(1, 'a'),(2, 'b'),(5, 'c'),(3, 'd'),(4, 'e')]需要将这个列表按照元组的第一个或者第二个元素进行排序, 这时可以直接使用内置函数sorted()进行处理1.按照第一个元素的大小进行排序new_data = sorted(data)print(new_data)输出:[(1, 'a'), (2, 'b'), (3, 'd'), (4, 'e'), (5, 'c')]2

2020-12-18 14:21:02 814

转载 python字典遍历的几种方法

1.遍历key值>>> a{'a': '1', 'b': '2', 'c': '3'}>>> for key in a: print(key+':'+a[key]) a:1b:2c:3>>> for key in a.keys(): print(key+':'+a[key]) a:1b:2c:3在使用上,for key in a和 for key in a.keys():完全等价。2.遍历valu

2020-12-17 14:48:14 368

转载 python关于列表增加元素的几种操作

1、insert方法,该方法包含两个参数,第一个参数为插入的位置参数,第二个参数为插入内容a = [0,0,0]b = [1,2,3]a.insert(0,b)print a输出:[[1, 2, 3], 0, 0, 0]2、extend方法,该方法的参数为一个列表,将该指数所指定到的列表插入到原列表中'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''a = [0,

2020-12-17 14:33:53 485

转载 Python 面试题:输入一个数组,输出该数组的第二大的数字

问题:输入一个数组,输出该数组的第二大的数字,并且编写相关的测试用例注意:1.如果list含有非int, float元素需要remove2.如果list有重复的最大元素,需要自己处理,内置的list.sort(reverse=True)和heapq.nlargest排序,元素个数不变。附上代码removeInvalidItems 去掉不是int或float类型的值。注意:不能像下边这样用一次循环,因为remove某个元素,下标发生了改变,有些值并不能移除for item in l: # r

2020-12-17 14:23:31 669

转载 python函数的万能参数

我们通过一个简单的事例来展示一下函数的万能参数,我们先写一个最简单的函数def test(*args,**kwargs): print(args,kwargs)然后定义两个变量l = [1,2,3,4]d = {"a":1,"b":2}下面我们分别看下两种传参的方式有什么不同第一种方式test(l,d)如果是使用上面的方式传参,那么l,d这2个变量都会传递给args这个形参,作为args变量的两个元素,kwargs是一个空的字典,没有任何参数传递一个他([1, 2, 3, 4

2020-12-17 14:13:32 388

转载 python子类如何继承父类的实例变量?

类型1:父类和子类的实例变量均不需要传递class A(object): def __init__(self): self.name = "cui" def get_name(self): return self.nameclass B(A): def __init__(self): super(B,self).__init__() self.age = 12b = B()类型2:父类的实例变量不需要传递

2020-12-17 14:09:21 1098

转载 Python面试题:字节到大整数的打包与解包

需求:处理一个拥有128位长的16个元素的字节字符串将bytes解析为整数,使用 int.from_bytes() 方法,并像下面这样指定字节顺序:# 为了将bytes解析为整数,使用 int.from_bytes() 方法,并像下面这样指定字节顺序:data = b'\x00\x124V\x00x\x90\xab\x00\xcd\xef\x01\x00#\x004'print(len(data)) # 16# 如果byteorder为'big',则最重要的字节位于字节数组的开头。 如果byte

2020-12-17 14:04:17 329

转载 Python执行精确的浮点数运算

有时候:代码上数字计算可能会有如同下面的误差原因:这些错误是由底层CPU和IEEE 754标准通过自己的浮点单位去执行算术时的特征。 由于Python的浮点数据类型使用底层表示存储数据,因此你没办法去避免这样的误差。a=3.2b=2.1print(a+b) # 5.300000000000001print(a+b==5.3) # False如果:对浮点数执行精确的计算操作,并且不希望有任何小误差的出现解决:decimal 模块'''遇到问题没人解答?小编创建了一个Python学习交

2020-12-17 14:00:20 1208

转载 python 统计使用技巧

1、不输入回车获取值注:需要tty模块配合。fd = sys.stdin.fileno()old_settings = termios.tcgetattr(fd)tty.setraw(sys.stdin.fileno())ch = sys.stdin.read(1) # 值个数termios.tcsetattr(fd,termios.TCSADRAIN,old_settings)2、进度条'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合

2020-12-17 13:57:57 237

转载 Python函数传参方式超级大汇总

位置参数位置参数传递是最为简单的传递方式,按照函数参数的位置顺序逐个匹配传入,传入参数的个数必须与函数参数个数一致。见示例1,根据位置顺序进行匹配,a,b,c分别赋值为2,3,4示例1def func(a,b,c): print("args:",a,b,c) if __name__ == "__main__": func(2,3,4) #输出结果 args: 2 3 4关键字参数通过关键字对变量进行赋值,可以对全部关键字进行赋值,这时候位置可以随意改变。见示例2,输出

2020-12-16 16:09:55 471

转载 python教程:将一个列表切分成多个小列表

list是python中较为常见的数据类型,它是一个可迭代对象,迭代是什么?简单的可以理解成:一个可以被for循环遍历的对象今天拿到一个类似这样的listlist_info = ['name zhangsan','age 10','sex man','name lisi','age 11','sex women']其实说白了就是两个人的个人信息,字段都一样,但是在一个共同的列表中,没办法区分,首先需要将这个大列表分成2个(这里人数是不一定的,分列表是按照每个列表固定的长度)的小列表'''遇到问题

2020-12-16 16:03:34 4196

转载 python常用8大算法

1-插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。def insert_sort(lists): # 插入排序 co

2020-12-16 15:31:20 9789 4

转载 Python3 操作符重载方法

操作符重载方法: 类(class)通过使用特殊名称的方法(len(self))来实现被特殊语法(len())的调用specialfuns.py 操作符重载方法类(class)通过使用特殊名称的方法__len__(self)来实现被特殊语法(len())的调用构造 与 析构 方法class demo1: # 构造方法, 对象实例化时调用 def __init__(self): print("构造方法") # 析构方法, 对象被回收时调用 def __

2020-12-16 14:58:23 305

转载 Python的__getattribute__ vs __getattr__的妙用

这里的属性即包括属性变量,也包括属性方法。即类的变量和方法。当访问某个实例属性时, getattribute会被无条件调用,如未实现自己的getattr方法,会抛出AttributeError提示找不到这个属性,如果自定义了自己getattr方法的话,方法会在这种找不到属性的情况下被调用,比如上面的例子中的情况。所以在找不到属性的情况下通过实现自定义的getattr方法来实现一些功能是一个不错的方式,因为它不会像getattribute方法每次都会调用可能会影响一些正常情况下的属性访问使用这几个方法可

2020-12-16 14:36:38 404

转载 python中取整数的几种方法

1、向下取整: int()>>> a = 14.38>>> int(a)142、向上取整:ceil()使用ceil()方法时需要导入math模块,例如>>> import math>>> math.ceil(3.33)4>>> math.ceil(3.88)43、四舍五入:round()'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939寻找有志同道合的小

2020-12-16 14:27:57 2897

转载 python 各种推导式玩法

推导式套路除了最简单的列表推导式和生成器表达式,其实还有字典推导式、集合推导式等等。下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res:  列表生成元素表达式,可以是有返回值的函数。 for out_exp in input_list:  迭代input_list将out_exp传入out_exp_res表达式中。 if

2020-12-16 14:19:19 234

转载 python 获取本机IP的三种方式

python获取本机IP的方式第一种:#!/usr/bin/python import socket import fcntl import struct def get_ip_address(ifname):   s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl(   s.fileno(),   0x8915, # SIOCGIFADDR   str

2020-12-16 14:15:04 1576 1

转载 Python字典中你必须知道的用法

介绍字典(dict)是Python中内置的一个数据结构,由多个键值对组成,键(key)和值(value)用冒号分隔,每个键值对之间用逗号(,)分隔,整个字典包括在大括号中({}),键必须是唯一的,值可以取任何类型,但是键必须是不可变类型,如字符串,数字或元组。底层使用了hash表来关联key和value,dict是无序的。特点包括:查找和插入的速度极快,不会随着key的增加而变慢;需要占用的内存较多所以,dict是一种以空间换取时间的数据结构,应用于需要快速查找的场景。操作:常用方法

2020-12-15 16:33:37 305

转载 Python中bisect的使用方法

Python中列表(list)的实现其实是一个数组,当要查找某一个元素的时候时间复杂度是O(n),使用list.index()方法,但是随着数据量的上升,list.index()的性能也逐步下降,所以我们需要使用bisect模块来进行二分查找,前提我们的列表是一个有序的列表。递归二分查找和循环二分查找def binary_search_recursion(lst, val, start, end): if start > end: return None mid =

2020-12-15 16:21:51 379

空空如也

空空如也

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

TA关注的人

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