![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
Hamilton_Huan
coder
展开
-
包的使用方式
需要解释的是from multiprocessing import Process是从包multiprocess里引入Process, 但Process类定义在process.py文件里,包含Process类的process.py文件是在multiprocessing目录下的,故是multiprocessing包里的一个模块。multiprocess包下有很多的模块,例如process模块,那么可以在一个示例程序里使用包multiprocess里的process模块。为例,其下还有子包dummy。原创 2023-12-13 15:16:24 · 141 阅读 · 0 评论 -
模块的使用
模块,是Python自带的、而外安装的或者开发者自己写的,在一个文件里使用模块很简单用import即可,import有点像C语言的include。在新程序里使用datetime模块可以有两种方式:方式一是把模块引入,而模块里的函数的使用需要用点运算的方式来来使用。而文件引用模块里某函数还有另外一种方式就是用from import来直接引入某模块里的某函数,即方式二。以Python2的内建模块datetime为例,讲解一下模块的基本使用。原创 2023-12-13 14:58:25 · 156 阅读 · 0 评论 -
Python中的lambda表达式
lambda表达式冒号前为传入参数列表(可多个),冒号为计算表达式,通常只能跟一个表达式,可以使用if结构,如下所示。这是一个表达式,更确切的说是函数,是一个一行函数,又称匿名函数,有些语言里称闭包。lambda表达式可以嵌套,即lambda冒号后的语句也是一个lambda表达式。lambda 传入参数 : 返回的计算表达式。取二维列表每行最大值。原创 2023-12-12 12:01:19 · 200 阅读 · 0 评论 -
函数预设默认值
中文含义:key 可以接收函数,这个函数只有一个参数,函数本身会在比较排序之前作用于可迭代数据集合的每个元素项,函数的返回值作为排序依据,意思有点像数据库的键的概念。对于li是个列表(集合),它的每个元素是字符串,也是集合类型,默认对li的排序是比较字符串首字母的大小进行排序,而key = lambda x : x[0] 的出现改变了排序规则,但还以第1个字母为基准进行排序,所以两次都是首字母排序,而第三次使用的sorted排序是以第2字母为机制排序所以后两次的排序结果不一样。1 sorted用法。原创 2023-12-12 11:59:32 · 116 阅读 · 0 评论 -
集的遍历操作
尽管集是非有序的集合类型,但也是可以借助for来遍历集的各个数据项,这种方式有个学术名词叫迭代。原创 2023-12-11 17:09:50 · 31 阅读 · 0 评论 -
集的交集、并集、差集
对称差集:$A \bigtriangleup B$ = {$x \mid x \in A \cup B$且 $x \notin A \cap B$}。差集: $A - B = ${$x \mid x \in A$ 且 $x \notin B $}。交集:$A \cap B = ${$x | x \in A$ 且 $ x \in B$}。并集:$A \cup B = ${$ x | x \in A$ 或 $x \in B $}。d = s.symmetric_difference(t)#求对称差集。原创 2023-12-11 17:08:12 · 149 阅读 · 0 评论 -
集的增删操作
删除集合里的元素可以用pop函数,pop函数和列表的pop机制一样,随机删除一个返回值就是被删除的那个元素值,但如果集是空集用pop会报错异常。add函数的参数视为一个整体插入到集里,而update函数传入的参数是把要传入的元素拆分,做为个体传入到集合中。集是可以修改的,增加元素可以用add和update函数。remove函数和discard基本一样,区别在于函数的参数值不属于集时程序报错异常。discard函数可以删除集里某值,如果discard的参数值不属于集无任何操作。异常的原因是集此时是空的。原创 2023-12-11 17:05:33 · 149 阅读 · 0 评论 -
Set集的创建
集Set的形式和字典很像,是无序集合,也是各个数据项用逗号间隔用花括号括起来,区别数据项不是一对儿,就是一个数据,且数据项的值不重复唯一。Python数据类型真的和数学里的集非常相似,它既有基础的创建集合set、集合set添加、集合删除又有交集、并集、差集等操作。可以看出集里的各项数据是不重复的,例如在s2集里的l字母只有一个。所以有时有些程序用set来对某些集合类型实现去重。创建一个集可以依据定义通过赋值来实现,也可用set函数来创建集。原创 2023-12-08 09:36:21 · 132 阅读 · 0 评论 -
如何构造字典
zip函数仅仅对传入的集合对应位置取值,构建对儿或者元组,对应位置的数据间是没有任何关系的,如果我们想存储一条直线的x和y值的字典(目的是给出x值就知道这条直线上y的值)这是最终的字典的key和value间是有一定关系的,那么可以用map的结果作为dict的参数构造字典。a集合的长度最短为5,b为7而c的长度为10,d集合的构建是从a、b、c对应位置取值组建一个元组作为d对应位置的数据项,例如:a[1] = 1, b[1] = 11, c[1] = 21,那么(1, 11, 21)作为d[1]的值。原创 2023-12-08 09:33:03 · 234 阅读 · 0 评论 -
字典的修改
第一次pop,键"liming"在字典d里是存在的,返回其对应值98,pop以后字典d里就没有“liming”这个key了,所以第二次pop时返回值为-1没有发生出错异常,而第三次pop的时候由于没有指定value而报错异常,所以pop(key, value)这种方式比较安全。但是pop函数指定的key值不存在,则会报错异常,所以为了解决此问题,pop的用法通常是两个参数,一个是准备要删除的数据的key,另一个是假设key不存在的情况下返回某值,这样就不会报错异常了。字典名.pop(key, value)原创 2023-12-08 09:05:28 · 658 阅读 · 0 评论 -
字典的遍历
items函数返回字典每项的key和value是一个有两项数据的tuplue元组构成的列表。字典不是有序的集合,就不能通过index来遍历了,那如何遍历字典呢?方法四:items函数既有key又有value。方法二:用字典的keys()返回值。方法三:字典值values()方法一和方法二完全等价。通过这样的结构可以的。缺点,没有key信息。原创 2023-12-07 15:45:15 · 248 阅读 · 0 评论 -
字典的函数
get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。还有一个函数setdefault() 函数,它和get函数类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。但是如果无key的话,get返回None而不会报错发生异常,而用[]运算即字典名[key]则会报错异常。get函数返回值就是这个key所对应的值。字典名.get(key)1 字典的get函数。原创 2023-12-07 14:21:55 · 174 阅读 · 0 评论 -
字典语义与用途
字典里的每项数据不是一个单纯的数据而是称之为一对儿的数据组合,即字典的每项数据有两项且用分号间隔,分号前称之为键key,分号后称之为值value,例如"a" : 12、"liming" : 13类似这样的构成字典的一项数据。另外作为键的可以是任意类型的数据均可,不像索引必须是整形,这是字典这种数据类型的一个重要特点。字典的键要求必须是能够哈希的、唯一不重复,因此字典的键的哈希值应该在对象的生命周期中是不会变的,这样数据查询效果更高、更快,这也就是字典这种集合类型存在的现实意义。字典d等价于下面的一张表格。原创 2023-12-07 14:19:23 · 132 阅读 · 0 评论 -
remove函数
remove函数可以删除列表里从左至右第一次出现的某值,如果某值不存在则会报错,这个问题和index函数类似,可以用count函数统计一下是否有某值,如果该值出现次数大于0即可用remove删除最左边的(第一次出现的该值)。从结果可以看出,在13这个数从列表a里删除,需通过13 in a这个判断为真True时才能执行。除了用count外还有一种办法是用in运算,先判断一下列表是否有某值。原创 2023-12-06 10:56:49 · 160 阅读 · 0 评论 -
pop函数
pop的返回值为删除的值,括号里的[index]的意思是pop函数可以不带参数即不指定位置的情况下删除并返回列表尾部的值,如果指定了index,那就返回index位置的值,如果index位置超出了列表各元素位置也会弹出异常错误。这条语句出错了,原因是a列表此时只有[0, 2]这两个元素了,长度为2即index可以取值0和1,而index为5时超出了列表的index范围,即错误"index out of range"的意思就是这个意思。列表.pop([index])从程序的执行结果可以看到。原创 2023-12-06 10:53:20 · 610 阅读 · 0 评论 -
列表元素添加到列表extend函数
extend函数可以把列表里的元素值添加到另一个列表的尾部,是两个列表的合并!原创 2023-12-05 09:27:02 · 128 阅读 · 0 评论 -
尾部添加数据append函数
添加的[1, 2]这个列表添加到了a列表的尾部了。这里有两个问题需要说明,1)列表里有列表,可以么?显然可以,多维列表,如何访问?问题2) 这个列表[1 , 2]里的各个元素值如何单个添加到a列表丽?这里可以用列表的extend函数。a[0]代表[1, 2, 3],a[0][2]则指向数字3,即等价于C语言里的二维数组的概念。insert函数是在指定位置插入新数据,append函数可以在列表的尾部插入数据。原创 2023-12-05 09:25:55 · 135 阅读 · 0 评论 -
insert函数
在C语言里如果想在集合里插入数据,比较麻烦,一般先把插入位置及以后的数据先后移动,然后再在该位置上插入新数据,过程需自己编写代码实现,Python下想对集合插入数据很简单用Insert函数就可以了,不需要写循环体移动数据,实际是Python在执行insert时帮大家完成了移动的操作。从运行结果可以看出在a列表位置为2的地方插入了数据100,而原来从2到最后的所有数据均向后移动了一个位置。列表.insert(位置,数据)原创 2023-12-04 10:14:30 · 396 阅读 · 0 评论 -
count函数
首先用count函数判断一下要查找的值6在列表a里出现的次数,如果列表里确有6这个值,就可以用列表的index函数对列表a进行数据6的查找位置操作。count函数可以统计某指定值在列表里出现的次数。原创 2023-12-04 10:12:55 · 112 阅读 · 0 评论 -
maketrans和translate函数
这是一对儿函数,用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。注:两个字符串的长度必须相同,为一一对应的关系。原创 2023-12-01 08:42:36 · 79 阅读 · 0 评论 -
find函数
find函数和index函数很相似,但有区别,index找不到会报错中断程序执行,而find函数找不到sub子串的话不报错返回-1。find函数是从字符串左向右查找,rfind函数是从字符串右向左查找。原创 2023-12-01 08:41:19 · 156 阅读 · 0 评论 -
strip函数
strip函数可以去掉字符串首尾的某些字符(不是字符串),又称剥离函数,语法格式如下所示:&pyt&%!hon&%!c = "!%&"print t程序执行结果如下:pyt&%!hon。原创 2023-11-30 09:07:08 · 113 阅读 · 0 评论 -
split函数
字符串s是一个多行的字符串,回车换行符号使得字符串展示出来是多行的结果,这个字符串很具有代表性,在很多的监控检测系统里采集的数据或者系统日志文件都是以这总形式保存数据的,一行代表一条,冒号表示该条数据的若干项数据,如何得到整个记录某字段的数据并进行数据分析是一个头疼的问题,可以用字符串的split将这些数据分割出来之后再进行处理。是将s字符串用回车分割得到列表a,通过for循环体可以对a列表里的每项再分割,用":"分割,这样每条记录就又分割出各个字段的数据了。原创 2023-11-30 09:05:54 · 461 阅读 · 0 评论 -
replace函数
replace函数可以基于某字符串将其某子串替换成其他子串,返回值是一个新的字符串,意思是原字符串不变,而是新产生一个字符串。old是要被替换的,new是要替换成的,而count参数的意思是从左至右替换几处。的作用是替换s字符串里前3次出现的子串"p"为"J"新产生s2字符串。原创 2023-11-29 09:13:52 · 247 阅读 · 0 评论 -
index函数
函数的返回值为整形,即位置。sub为要查找的子串,start参数的含义是从S字符串的第start位置开始查找而不是从字符串的第一个字符位置开始查找,end参数的含义是到字符串S的end结束查找,end以后不查是否有sub子串。请注意,尽管指定了查找的起始位置但index函数的返回的位置值依然是该子串在整个字符串里的位置,而不是相对于start的位置。字符串的index函数可以查找字符串里(某范围内)某子串出现的位置(从左)。如果没有指定start和end位置值,默认start就是0,end为字符串S尾部。原创 2023-11-29 09:12:36 · 324 阅读 · 0 评论 -
元组与for循环
之前讲述的列表、字符串都是有序集合类型,元组tuple也是有序集合,和list列表、字符串一样可以通过索引index即位置信息来访问元组的各个元素,与list不同的是元组tuple是只读的,不可通过index方式去修改某位置上的数据值,即只可以做表达式的右值而不能做左值。从程序执行的结果,可以看到代码第3行有问题,由于a是元组,a[0]可以访问元组a的第0位置上的数据值,例如代码第2行,作右值。但不能修改该位置上的数据a[0] = 21试图修改元组a的第0位置上的即a[0]的值。运行程序得到如下结果。原创 2023-11-28 09:09:08 · 165 阅读 · 0 评论 -
函数基础与递归
抽象成函数printList,实际使用printList函数时是针对每个不同的列表来使用的,每次都打印不同的列表,那么每次打印的内容,可以作为printList函数的参数,传给printList函数,传入的不同内容即实现打印不同的内容,因此函数既有要做的事情即函数体(语句块),还要有处理对象(参数)。函数体里的变量是局部的,可以在函数内部使用,而函数体外部的变量是全局的,可以在函数体内部访问(读),但如果想在函数内部修改全局变量得先用global声明一下要修改的全局变量。递归,函数定义里使用了函数本身。原创 2023-11-27 17:14:12 · 165 阅读 · 0 评论 -
负索引和负方向
对于b和c所对应的取切片操作的起点start = -1、终点end = 2,但取得b的切片操作的step = 1意思是从起点从左向右到达终点,不可能,因为终点在左边故b为空的列表集。对b起点在左方向向右是能到达终点的,而对于c那条切片语句a[1 : -2 : -1],起点在左方向向右是无法到达终点的故结果集为空。(7)s[:3:1]切片,明确指明了正向步长为1,正向切片的终点index为3,起点默认该方向的起点值0。(8)s[:3:-1]切片,负方向切片的终点为3,起点默认为该方向的起点值-n。原创 2023-11-27 16:45:19 · 213 阅读 · 0 评论 -
什么是切片
从print b这条语句的打印结果['t', 'h', 'o']可知,'t'在a列表的index为2,'n'字符的index为5,那么a[2:5]的step为1,从't'开始逐个取回字符't'、'h'、'o'组成新的列表的子集b,而字符'n'的index为5,5作为取切片操作a[2:5]里的终点,其字符'n'不取回。对于列表a取切片a[2 : 5 : 2], 从index为2开始,每2个元素为一组取每组的第一个数据值,一只到index为5结束,但不取index为5的数据。原创 2023-11-24 09:07:59 · 1111 阅读 · 0 评论 -
列表List
列表是Python里最为常见、常使用的一种集合类,Python的列表List所使用的特殊集合符号为方括号,用逗号(,)间隔每个元素(元素类型可以不同)。假设列表的元素个数(即列表的长度)为n,那么列表各个元素的位置index从左向右(正向)依次为0、1、2....、n-1。列表是有序的,每个元素都有一个位置坐标用index表示,在Python可以通过index访问列表的某位置上的数据值,当然也可修改该位置上的数据值。(1)可以依据列表的定义用方括号括起来、用逗号间隔的形式创建,例如下边的a和b这两个列表。原创 2023-11-24 08:59:27 · 54 阅读 · 0 评论 -
集合的分类
有序是说某数据集合中的每个元素都有一个位置信息,通常用index表示,可以借助这种集合类型名和位置信息访问集合里的某元素值,在Python里有序集合有list列表、string字符串和元组tuple。程序出错在代码第4行即s[0] = 'H'这行代码想修改字符串s的第0位置处的'h'为'H',由于字符串s是只读的,是不能修改的。代码第2行print s[0]这行并没有报错,0的意思是访问字符串s的第0位置处的元素值即'h',由此可见字符串是有序的且是只读不可修改的。2 可修改和不可修改。原创 2023-11-24 08:51:20 · 219 阅读 · 0 评论 -
Python算术运算符
乘 - | a * b 输出结果 200 两个数相乘或是返回一个被重复若干次的字符串 |a**b 为10的20次方, 输出结果 100000000000000000000。减 - | a - b 输出结果 -10 得到负数或是一个数减去另一个数 |9//2 输出结果 4 , 9.0//2.0 输出结果 4.0。取整除 - 返回商的整数部分。a + b 输出结果 30。b / a 输出结果 2。取模 - 返回除法的余数。b % a 输出结果 0。幂 - 返回x的y次幂。加 - 两个对象相加。原创 2023-11-23 09:48:54 · 181 阅读 · 0 评论 -
如何定义字符串
使用单引号或双引号来创建字符串,使用三引号创建多行字符串。字符串要么使用两个单引号,要么两个双引号,不能一单一双!Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。如果一个字符串里,要有引号,那么最好和外部包裹的引号类型不同,比如外层使用单引号,那么里层使用双引号。若想使用一样的符号呢?那字符串里的引号前记得加转义符号:\。字符串是Python中最常用的数据类型之一。外层使用双引号,那么里层使用单引号。以下四种写法是等价的。原创 2023-11-23 09:23:41 · 33 阅读 · 0 评论 -
Python除法
因为,在python(严格说是python2.x中,python3会有所变化,具体自己百度)里面有一个规定,像2/5中的除法这样,是要取整(就是去掉小数,但不是四舍五入)。2除以5,商是0(整数),余数是2(整数)。归纳,得到规律:不管是被除数还是除数,只要有一个数是浮点数,结果就是浮点数。所以,如果相除的结果有余数,也不会像前面一样了,而是要返回一个浮点数,这就跟在数学上学习的结果一样了。符号:%,就是要得到两个数(可以是整数,也可以是浮点数)相除的余数。前面计算5/2的时候,商是2,余数是1。原创 2023-11-22 09:02:34 · 221 阅读 · 0 评论 -
Python的运算
在有的语言中,把这个做为单独一类区分开,但是,在python中,我们不用管这个了。只要是整数,就只是整数,不用区分长短(以前版本区分),因为区分没有什么意思,而且跟小学学过的数学知识不协调。对于其它语言,整数溢出是必须正视的,但是,在python里面,就不用管了,原因就是 python为我们解决了这个问题。上面计算结果的数字最后有一个L,就表示这个数是一个长整数,不过,看官不用管这点,反正是python为我们搞定了。按照下面要求,在ide中运行,看看得到的结果和用小学数学知识运算之后得到的结果是否一致。原创 2023-11-21 09:24:00 · 53 阅读 · 0 评论 -
Python的基础语法
3. 数据类型:Python有多种数据类型,如整数(int)、浮点数(float)、字符串(str)、列表(list)、元组(tuple)、集合(set)和字典(dict)。1. 注释:在Python中,使用井号(#)表示单行注释,三个单引号(''')或三个双引号(""")表示多行注释。5. 循环语句:Python中有两种循环语句,分别是for循环和while循环。2. 变量:在Python中,不需要声明变量类型,直接赋值即可。7. 类和对象:使用class关键字定义类,通过类创建对象。原创 2023-11-16 09:08:31 · 313 阅读 · 0 评论