Python——中篇 1、 字符串的常用方法 1.1、 拼接 1.1.1、 示例1(常用): 1 2 3 4 5 6 a = "洋群满满" b = "爱python" c = a + bprint(c) ------------------------------------------------------------------- 输出 ---> 洋群满满爱python
注意:如果是str和number则需要对number转换,通过str(number)转换。
1.1.2、 示例2(极少使用): 1 2 3 4 a = "洋群满满" "爱python"print(a) ------------------------------------------------------------------- 输出 ---> 洋群满满爱python
1.2、 切片(截取) 用法灵活,需要对上一篇的索引已有深刻的理解。
1.2.1、 语法 string[start : end : step] 注意:左开右闭
1.2.2、 示例1:截取python 1 2 3 4 5 a = "洋群满4爱python" b = a[3:]print(b) ------------------------------------------------------------------- 输出 ---> python
1.2.3、 示例2: 截取洋满真爱 1 2 3 4 5 a = "洋群满满真可爱" b = a[::2] # 或者 b = a[0::2]print(b) ------------------------------------------------------------------- 输出 ---> 洋满真爱
1.3、 获取字符串长度 获取字符串长度由于比较少用,洋群满满就不写了,需要了解的可以私聊。
1.3.1、 语法
len(string)
1.3.2、 示例—len(string) 1 2 3 4 5 a = "洋群满满爱python" b = len(a)print(b) ------------------------------------------------------------------- 输出 ---> 11
1.4、 分割字符串 通过split分割字符串,常用于将字符串转换成列表。
1.4.1、 语法 str.split(sep,maxsplit) str.rsplit(sep,maxsplit) - sep:分割符,默认为None。 - maxsplit:最大分割数,默认无限制。 - split:从左往右分割。 - rsplit:从右往左分割 。
1.4.2、 示例1—split 1 2 3 4 5 a = "洋群满满,爱,python" b = a .split ("," ,1 )print (b) ------------------------------------------------------------------- 输出 ---> ['洋群满满' , '爱,python' ]
1.4.3、 示例2—rsplit 1 2 3 4 5 a = "洋群满满,爱,python" b = a .rsplit ("," ,1 )print (b) ------------------------------------------------------------------- 输出 ---> ['洋群满满,爱' , 'python' ]
1.5、 合并字符串 可以将可迭代对象 通过*join()**方法**合并成字符串 *。(可迭代对象:后续洋群满满会在高级部分进行讲解,并自定义我们想要的可迭代对象)在这里大家可以通俗的理解为可迭代对象就是str,dict,list,tuple 。
1.5.1、 语法
str.join(iterable)
1.5.2、 示例1(join) 1 2 3 4 5 a = ["洋群满满" , "爱" , "python" ] b = "" .join (a)print (b) ------------------------------------------------------------------- 输出 ---> 洋群满满爱python
1.5.3、 示例2(不常用) 1 2 3 4 5 a = {"洋洋爱" : "当然" , "群群" : "是的" }b = "" .join (a)print (b) ------------------------------------------------------------------- 输出 ---> 洋洋爱群群
1.6、 检测子字符串在字符串的索引 ps :当子字符串不存在时,会报错!可以利用这个特性来判断子字符串是否存在 。
1.6.1、 语法
str.index(sub[, start[, end]]) -> int - sub:要检测的子字符串。 - start:检测的开始位置索引,默认从头开始。 - end:检测的结束位置索引,默认到最后。 可灵活使用!
1.6.2、 示例1 1 2 3 4 5 6 a = "洋洋是群群的呀" b = a.index("洋洋") # b = a.index("洋洋", 0, -1)print(b) ------------------------------------------------------------------- 输出 ---> 0
1.6.3、 示例2 1 2 3 4 5 6 a = "洋洋是群群的呀" b = a.index("洋群") # b = a.index("洋群", 0, -1)print(b) ------------------------------------------------------------------- 抛出异常 ValueError
1.7、 指定字符串开头或者结尾 *startswith()**指定**某个字符串开头 *。如果是 ,返回True ,反之 返回False 。 **endswith()**指定某个字符串结尾 。如果是 ,返回True ,反之 返回False 。
1.7.1、语法
str.startswith(prefix[, start[, end]]) -> bool str.endswith(suffix[, start[, end]]) -> bool - prefix/suffix: 要检测的子字符串。 - start: 检测的开始位置索引, 默认从头开始。 - end: 检测的结束位置索引, 默认到最后。
1.7.2、 示例1 1 2 3 4 5 a = "洋洋是群群的呀" b = a.startswith("洋洋")# b = a.startswith("洋洋",0,-1) ------------------------------------------------------------------- 输出 ---> True
1.7.3、 示例2 1 2 3 4 5 6 a = "洋洋是群群呀" b = a.endswith("群群") # b = a.endswith("群群",0,-1) 输出Tureprint(b) ------------------------------------------------------------------- 输出 ---> False
思考一下为什么b=a.endswith(“洋群满满”,0,-1)的时候输出True, 洋洋会在下篇进行解释
1.8、 字符串转全部大写 1.8.1、 语法
str.upper()
1.8.2、 示例—upper 1 2 3 4 5 a = "abc" b = a.upper()print(b) ------------------------------------------------------------------- 输出 ---> ABC
1.9、 字符串转全部小写 1.9.1、 语法
str.lower()
1.9.2、 示例—lower 1 2 3 4 5 a = "ABC" b = a.lower()print(b) ------------------------------------------------------------------- 输出 ---> abc
1.10、 字符串格式化 1.10.1、 语法
① % ② format() ③ f-string 注意:第一种方式官方并不太建议, 详细请看官方文档 第三种f-string格式化方式需要python3.7以上的版本!!!
1.10.2、 示例—% 1 2 3 4 5 a = "洋群满满" b = "hello %s" % aprint(b) ------------------------------------------------------------------- 输出 ---> hello 洋群满满
1 2 3 4 5 a = "洋群满满" b = "hello {}".format(a)print(b) ------------------------------------------------------------------- 输出 ---> hello 洋群满满
1.10.4、 示例— f-string 1 2 3 4 5 a = "洋群满满" b = f"hello {a}"print(b) ------------------------------------------------------------------- 输出 ---> hello 洋群满满
1.11、 编解码 1.11.1、 概念
编码: 将字符串编码成字节。 解码: 将字节解码成字符串。
1.11.2、 语法
编码: str.encode(encoding,errors) 解码: str.decode(encoding,errors) - encoding: 需要编码或者解码的格式, 一般为utf-8, 或者gbk。 - errors: 错误的处理方式, 默认是strict, 遇到非法字符抛出异常, 默认即可。 后续洋群满满会专门加一篇ASCII和Unicode和UTF-8和gbk的文章。
1.11.3、 示例—encode 1 2 3 4 5 6 a = "洋群满满" b = a.encode() print(b) ------------------------------------------------------------------- 输出 ---> b'\x e6\x b4\x 8b\x e7\x be\x a4\x e6\x bb\x a1\x e6\x bb\x a1' 注:输出的是以16进制形式的字符编码值
1.11.4、 示例—decode 1 2 3 4 5 a = b'\x e6\x b4\x 8b\x e7\x be\x a4\x e6\x bb\x a1\x e6\x bb\x a1' b = a.decode() print(b) ------------------------------------------------------------------- 输出 ---> 洋群满满
2、 数字型常用方法 2.1、 浮点型转整型 2.1.1、 语法
int()
2.1.2、 示例—int 1 2 3 4 5 a = 1.1 b = int(a)print(b) ------------------------------------------------------------------- 输出 ---> 1
2.2、 保留小数位并四舍五入 2.2.1、 语法
round(number, digits) - digits: 四舍五入时要使用的小数位数,默认为0。
2.2.2、 示例—round 1 2 3 4 5 a = 3.1415 b = round(a, 3)print(b) ------------------------------------------------------------------- 输出 ---> 3.142
3、 列表常用方法 注意: 想要熟悉掌握列表常用方法, 必须熟悉上一篇的索引, 以及可变类型。
3.1、 将其他类型转换成列表 3.1.1、 语法
list(iterable) 可迭代对象iterable字符串部分已经备注, 这里洋群满满就不备注了。
3.1.2、 示例—list 1 2 3 4 5 a = (1, 2, 3) b = list(a)print(b) ------------------------------------------------------------------- 输出 ---> [1, 2, 3]
3.2、 指定位置插入数据 3.2.1、 语法
list.insert(index,obj)
3.2.2、 示例—insert 1 2 3 4 5 a = [1, 2, 3] a.insert(1, "洋群满满")print(a) ------------------------------------------------------------------- 输出 ---> [1, '洋群满满' , 2, 3]
3.3、 在列表末尾添加数据 3.3.1、 语法
list.append(obj)
3.3.2、 示例—append 1 2 3 4 5 a = [1, 2, 3] a.append("洋群满满")print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 3, '洋群满满' ]
3.4、 将其他可迭代对象追加到列表中 3.4.1、 语法
list.extend(iterable)
3.4.2、 示例—extend 1 2 3 4 5 a = [1, 2, 3] a.extend((4, 5, 6))print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 3, 4, 5, 6]
3.5、 修改指定索引的数据 3.5.1、 语法
list[index] = obj
3.5.2、 示例—index 1 2 3 4 5 a = [1, 2, 3] a[0] = "洋群满满"print(a) ------------------------------------------------------------------- 输出 ---> ['洋群满满' , 2, 3]
3.6、 删除指定索引的数据 3.6.1、 语法
① del list[index] ② list.pop(index)
3.6.2、 示例—del 1 2 3 4 5 a = [1, 2, 3] del a[2]print(a) ------------------------------------------------------------------- 输出 ---> [1, 2]
3.6.3、 示例—pop 1 2 3 4 5 a = [1, 2, 3] a.pop(2)print(a) ------------------------------------------------------------------- 输出 ---> [1, 2]
3.7、 删除第一个出现的指定数据 3.7.1、 语法
list.remove(value)
3.7.2、 示例—remove 1 2 3 4 5 a = [1, 2, 3, 2] a.remove(2)print(a) ------------------------------------------------------------------- 输出 ---> [1, 3, 2]
3.8、 清空列表 3.8.1、 语法
list.clear()
3.8.2、 示例—clear 1 2 3 4 5 6 a = [1, 2, 3] a.clear()print(a) ------------------------------------------------------------------- 输出 ---> [] 12345
3.9、 统计列表长度 3.9.1、 语法
len(list)
3.9.2、 示例—len 1 2 3 4 5 a = [1, 2, 3] b = len(a)print(b) ------------------------------------------------------------------- 输出 ---> 3
3.10、 统计数据在列表中出现的次数 3.10.1、 语法
list.count(value)
3.10.2、 示例—count 1 2 3 4 5 a = [1, 2, 3, 2] b = a.count(2)print(b) ------------------------------------------------------------------- 输出 ---> 2
3.11、 列表排序 3.11.1、 语法
list.sort(key,reverse) - key: 指定排序方式的函数。 - reverse: 等于True降序, 等于False升序, 默认False。
3.11.2、 示例—sort 1 2 3 4 5 a = [1, 2, 3, 2] a.sort()print(a) ------------------------------------------------------------------- 输出 ---> [1, 2, 2, 3]
3.11.3、 示例—根据字典的 key=洋群满满 进行升序排序 1 2 3 4 5 6 7 8 def hello_list(e): return e["洋群满满" ] a = [{"洋群满满" : 18 }, {"洋群满满" : 26 }, {"洋群满满" : 20 }] a.sort (key=hello_list)print (a) ------------------------------------------------------------------- 输出 ---> [{'洋群满满' : 18 }, {'洋群满满' : 20 }, {'洋群满满' : 26 }]
备注:函数 在前面已经详细讲解, 上述示例只是演示key的作用。
3.12、 列表反转 3.12.1、 语法
list.reverse()
3.12.2、 示例—reverse 1 2 3 4 5 a = [1, 2, 3, 4] a.reverse()print(a) ------------------------------------------------------------------- 输出 ---> [4, 3, 2, 1]
4、 元组的常用方法 4.1、 创建空元组 4.1.1、 语法
① tuple() ② ()
4.1.2、 示例—tuple() 1 2 3 4 5 a = tuple() # a = ()print(a) ------------------------------------------------------------------- 输出 ---> ()
4.2、 通过索引访问元组的值 4.2.1、 语法
tuple[index]
4.2.2、 示例—tuple[index] 1 2 3 4 5 a = (1, 2, 3, 4) b = a[0]print(b) ------------------------------------------------------------------- 输出 ---> 1
4.3、 删除元组 4.3.1、 语法
del tuple
4.3.2、示例—del tuple 1 2 3 4 5 6 7 a = (1, 2, 3, 4) print(a) del aprint(a) ------------------------------------------------------------------- 第一行输出 ---> (1,2,3,4) 第二行抛出 NameError
注意: 上篇已经明确表示元组是不可变类型, 所以对于元组来说不存在修改和切片。因为当你修改元组时, 实际情况是会在内存中开辟新的内存地址用来存放新的元组。
下面用代码给大家演示一下
1 2 3 4 5 6 a = (1 , 2 , 3 , 4 )print (f"原元组的值是{a}" ) print (f"原元组的内存地址是{id(a)}" ) b = a [:2] print (f"修改后元组的值是{b}" ) print (f"修改后元组的内存地址是{id(b)}" )
备注: python通过内置函数id()来访问值的内存地址
输出结果如下:
1 2 3 4 5 6 7 C:\Python\python.exe D:/Desktop/ test/demo.py 原元组的值是(1 , 2 , 3 , 4 ) 原元组的内存地址是2745085044200 修改后元组的值是(1 , 2 ) 修改后元组的内存地址是2745085729928 Process finished with exit code 0
5、 字典的常用方法 想要熟练掌握字典的常用方法,需要对上一篇字典的key-value(键值对)的格式比较熟悉,字典的key必须是不可变类型,value可以是任何类型。
5.1、 创建空字典 5.1.1、 语法
① dict() ② {}
5.1.2、 示例—dict 1 2 3 4 5 a = {} #a = dict()print(a) ------------------------------------------------------------------- 输出 ---> {}
5.2、 获取字典的值 5.2.1、 语法
① dict[key] ② dict.get(key, default=None)
5.2.2、 示例1—dict[key] 1 2 3 4 a = {"name" : "洋群满满" , "age" : 23 }print (a["name" ]) ------------------------------------------------------------------- 输出 ---> 洋群满满
5.2.3、 示例2—dict.get 1 2 3 4 5 a = {"name" : "洋群满满" , "age" : "23" }b = a .get ("name" )print (b) ------------------------------------------------------------------- 输出 ---> 洋群满满
注意: 在第一种方式中, 如果key不存在, 会抛出异常;第二种方式如果key不存在, 则返回默认值。
5.3、 修改字典的值 5.3.1、 语法
① dict[key] = value ② dict.update(new_dict)
5.3.2、 示例1—dict[key] = value 1 2 3 4 5 a = {"name" : "洋洋" , "age" : 23 }a ["name" ] = "洋群满满" print (a) ------------------------------------------------------------------- 输出 ---> {'name' : '洋群满满' , 'age' : 23 }
5.3.4、 示例2—dict.update(new_dict) 1 2 3 4 5 a = {"name" : "洋群满满" , "age" : 23 }a .update ({"python" : "hello" })print (a) ------------------------------------------------------------------- 输出 ---> {'name' : '洋群满满' , 'age' : 23 , 'python' : 'hello' }
注意: 如果指定的key在字典中不存在, 那么就是增加一个键值对。
5.4、 计算字典元素个数 5.4.1、 语法
len(dict)
5.4.2、 示例—len(dict) 1 2 3 4 5 a = {"name": "洋群满满", "age": 23} b = len(a)print(b) ------------------------------------------------------------------- 输出 ---> 2
5.5、 获取字典所有的key 5.5.1、 语法
dict.keys()
5.5.2、 示例—dict.keys() 1 2 3 4 5 6 a = {"name" : "洋群满满" , "age" : 23 }b = a .keys ()print (b) ------------------------------------------------------------------- 输出 ---> ["name" ,"age" ] 12345
5.6、 获取字典所有的value 5.6.1、 语法
dict.values()
5.6.2、 示例—dict.values() 1 2 3 4 5 a = {"name" : "洋群满满" , "age" : 23 }b = a .values ()print (b) ------------------------------------------------------------------- 输出 ---> ['洋群满满' , '23' ]
5.7、 获取字典的key-value 5.7.1、 语法
dict.items()
5.7.2、 示例—dict.items() 1 2 3 4 5 a = {"name" : "洋群满满" , "age" : "23" }b = a .items ()print (b) ------------------------------------------------------------------- 输出 ---> [('name' , '洋群满满' ), ('age' , '23' )]
6、 条件语句 在python中条件语句就是三个关键字 if elif else 。
6.1、 语法
if 判断条件: 执行代码 elif 判断条件: 执行代码 else: 执行代码 说明: 在上述的条件判断中是互斥的, 也就是说要么执行if的代码, 要么执行elif的代码, 要么执行else的代码, 并且只要其中一个符合条件, 那么程序便不会判断后面的条件了。这部分可以优化代码。
6.1.1、 示例1—if/elif…/else 1 2 3 4 5 6 7 8 9 a = "洋群满满" if a == "洋群满满" : print ("洋群满满1" )elif a == "洋群满满" : print ("洋群满满2" )else : print ("什么都不是" ) ------------------------------------------------------------------- 输出 ---> 洋群满满1
6.1.2、 示例2—if/if/if… 1 2 3 4 5 6 7 8 9 10 11 a = "洋群满满" if a == "洋群满满" : print("洋群满满1" )if a == "洋群满满" : print("洋群满满2" )if a == "洋群满满" : print("洋群满满3" ) 输出 输出 输出
7、 循环语句 python中循环包括while循环和for循环。
while循环:表示给定一个判断条件为True时, 进入循环体, 为False跳出循环体;
for循环:表示会重复的执行语句;
死循环:表示程序一直在循环体当中跳不出来。一定要避免死循环!!!
7.1、 while循环 7.1.1、 语法
while 判断条件: 执行代码
7.1.2、 示例—while 1 2 3 4 5 6 a = 0 while a < 10: print(a) a += 1 ------------------------------------------------------------------- 输出 ---> 0-9
7.2、 for循环 7.2.1、 语法
① for iterating_var in iterable: 执行代码 ② for iterating_var in range(start,stop,step) 执行代码 - start是开始数据 - stop是结束数据 - step是步长
7.2.3、 示例1—in 1 2 3 4 for i in [1, 2, 3]: print(i) ------------------------------------------------------------------- 输出 ---> 1~3
7.2.4、 示例2—in range 1 2 3 4 for i in range(1, 10, 2): print(i) ------------------------------------------------------------------- 输出 ---> 1 3 5 7 9
7.3、 循环控制语句 7.3.1、 语法
① break ② continue 说明: - break会终止循环体,程序不再往下循环; - continue结束本次循环,程序继续下一次的循环。 注意: 如果是嵌套循环, 那么break终止的是当前所在的循环体, 而不是整个循环嵌套体。
7.3.2、 示例1—break 1 2 3 4 5 6 7 8 for i in [1 , 2 , 3 ]: for j in [4 , 5 , 6 ]: if j == 5 : break print (j) ------------------------------------------------------------------- 输出 ---> 4 4 4 解释一下: 在程序中是一个循环嵌套, 当j==5 时, 内层循环会终止进入外层循环的下一次循环。
7.3.4、 示例2—continue 1 2 3 4 5 6 7 8 for i in [1, 2, 3]: for j in [4, 5, 6]: if j == 5: continue print(j) ------------------------------------------------------------------- 输出 ---> 4 6 4 6 4 6 解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会跳出本次循环, 进入内层循环的下一次循环。
到此我们在本篇中学习了python数据类型的常用方法,条件语句和循环语句 。各位coder在学习过程中可在底下评论区发表你们的想法。看到了都会回复的。
那么下一篇洋群满满将和大家看一下python当中的异常处理,函数和模块 。