前言
处于内卷时代下的半桶水前端开发,也迫于半桶水压力开始追寻另外一条属于自己的道,我在众多语言秘籍当中选择了python这条道。便想起通过博客形式更新自己对这个道的理解。不足之处,还请海涵。
字符串
所谓字符串就是由零或者多个字符组成的有序序列,在python当中也是较为常用的数据类型;
提示:在使用一些特殊符号同时需要使用到转义字符 (\) 且是不可变类型
切片与索引(类似js当中的字符串切割)
索引规则是:如字符n:则n[0]获取的是第一个字符,n[ len(n) -1 ]获取的是最后一个字符;反之n[-1]获取的是最后一个字符;n[-n]表示获取的是方向索引
字符串方法
在python当中也有相关的字符串方法来操作字符串
| 方法 | 介绍 | 使用 | |
|---|---|---|---|
| in | in成员运算符,主要是用于判断一个字符串是否存在与另外一个字符或者字符串 | s1 = 'hello, world' | |
| len | 获取字符串长度 | s1 = 'hello, world' | |
| capitalize | 将字符串首字母转大写 | s1 = 'hello, world' | |
| title | 将字符串每个单词首字母大写 | s1 = 'hello, world' | |
| upper | 将字符串全部转成大写 | s1 = 'hello, world' | |
| lower | 将字符串全部转成小写 | s1 = 'hello, world' | |
| find / rfind | find:从字符串的首字母从前往后查找目标字符串并返回对应的下标,没有的话返回-1 rfind:从字符串的首字母从后往前查找目标字符串并返回对应的下标,没有的话返回-1 | s1 = 'hello, world' | |
| index / rindex | index:从前往后查找目标字符串在对应字符串当中的下标 rindex:从后往前查找目标字符串在对应字符串当中的下标 | s1 = 'hello, world' | |
| startswith | 检查字符串是否是指定的字符串开头----返回的是布尔值 | s1 = 'hello, world!' | |
| isdigit/isalpha/isalnum | 检查字符串是否由数字字符串,字母字符串,数字和字母组成的字符组成。返回的是布尔值 | s1 = 'hello, world!' | |
| center/rjust/ljust/zfill | 字符串格式化,当传入的字符宽度小于字符串本身宽度的时候,便不会对目标字符串进行格式化处理。center:对目标字符串居中并在量产 填充;rjust:从左侧进行填充;ljust:从右边进行填充;zfill:在字符串左侧进行补零 | s = 'hello, world' | |
| strip | 剪切字符串两端空格 | s = ' jackfrued@126.com \t\r\n' | |
| replace | 替换指定目标的字符串 | s = 'hello, world' | |
| split | 切割字符串,可指定切割方式默认情况下是对空格进行切割 | s = 'I love you' words = s.split() | |
| join | 可指定字符串进行拼接 | s = 'I love you' | |
| encode/decode | 字符串编码/解码 | 在python当中也有相关的字符串方法来操作字符串 |
| 方法 | 介绍 | 使用 |
|---|---|---|
| in | in成员运算符,主要是用于判断一个字符串是否存在与另外一个字符或者字符串 | s1 = 'hello, world' |
| len | 获取字符串长度 | s1 = 'hello, world' |
| capitalize | 将字符串首字母转大写 | s1 = 'hello, world' |
| title | 将字符串每个单词首字母大写 | s1 = 'hello, world' |
| upper | 将字符串全部转成大写 | s1 = 'hello, world' |
| lower | 将字符串全部转成小写 | s1 = 'hello, world' |
| find / rfind | find:从字符串的首字母从前往后查找目标字符串并返回对应的下标,没有的话返回-1 rfind:从字符串的首字母从后往前查找目标字符串并返回对应的下标,没有的话返回-1 | s1 = 'hello, world' |
| index / rindex | index:从前往后查找目标字符串在对应字符串当中的下标 rindex:从后往前查找目标字符串在对应字符串当中的下标 | s1 = 'hello, world' |
| startswith | 检查字符串是否是指定的字符串开头----返回的是布尔值 | s1 = 'hello, world!' |
| isdigit/isalpha/isalnum | 检查字符串是否由数字字符串,字母字符串,数字和字母组成的字符组成。返回的是布尔值 | s1 = 'hello, world!' |
| center/rjust/ljust/zfill | 字符串格式化,当传入的字符宽度小于字符串本身宽度的时候,便不会对目标字符串进行格式化处理。center:对目标字符串居中并在量产 填充;rjust:从左侧进行填充;ljust:从右边进行填充;zfill:在字符串左侧进行补零 | s = 'hello, world' |
| strip | 剪切字符串两端空格 | s = ' jackfrued@126.com \t\r\n' |
| replace | 替换指定目标的字符串 | s = 'hello, world' |
| split | 切割字符串,可指定切割方式默认情况下是对空格进行切割 | s = 'I love you' words = s.split() |
| join | 可指定字符串进行拼接 | s = 'I love you' |
| encode/decode | 字符串编码/解码 |
集合
所谓集合,就是多个数据类型集合在一起,集合具有:无序性,互异性,确定性。
提示:在使用求集合的时候都会对数据进行去重处理
| 方法 | 介绍 | 使用 |
|---|---|---|
| {} | 创建集合字面量语法 | set1 = {1, 2, 3, 3, 3, 2} |
| set() | 集合构造器,在使用这个的时候会将重复的集合数据进行去重处理 | set2 = set('hello') |
| for in | 遍历集合数据 | set2 = set('hello') |
| in | 成员判断 | set1 = {11, 12, 13, 14, 15} |
| &/intersection | 获取两个集合的交集 | set1 = {1, 2, 3, 4, 5, 6, 7} set2 = {2, 4, 6, 8, 10} |
| |/union | 获取两个并集 | set1 = {1, 2, 3, 4, 5, 6, 7} set2 = {2, 4, 6, 8, 10} |
| - / difference | 获取差集 | set1 = {1, 2, 3, 4, 5, 6, 7} set2 = {2, 4, 6, 8, 10} |
| ^ / symmetric_difference | 对差集(相当于两个集合的并集减去交集) | set1 = {1, 2, 3, 4, 5, 6, 7} set2 = {2, 4, 6, 8, 10} |
| add() | 添加集合(去重) | set2 = {1,2,3,4} |
| update() | 添加元素(去重) | set2 = {1,2,3,4} |
| discard() | 删除指定的元素 | set2 = {1,2,3,4} |
| remove() | 删除指定元素(且传入的元素必须包含在集合当中,不然会报错) | set2 = {1,2,3,4} |
| pop() | 随机删除集合当中的一个元素 | set2 = {1,2,3,4} |
| clear() | 清空集合当中的所有元素 | set2 = {1,2,3,4} |
| isdisjoint | 判断两个集合当中是否存在相同的元素 | set1 = {'Java', 'Python', 'Go', 'Kotlin'} set2 = {'Kotlin', 'Swift', 'Java', 'Objective-C', 'Dart'} |
| frozenset | 不可变集合和set一样,且不能添加删除 | set1 = frozenset({1, 3, 5, 7}) |
list
列表是由一些列元素按照特定的顺序构成的数据序列,可以由任意的数据组成,且可以重复。
| 方法 | 介绍 | 用法 |
|---|---|---|
| append | 在列表尾部添加元素-----list.append(event) | items = ['Python', 'Java', 'Go', 'Kotlin'] |
| remove | 删除指定元素:当删除的指定元素不存在的时候会抛出错误异常 | |
| pop | 删除指定索引元素 -----list.pop(evnet) | |
| clear | 清空list元素--------list.clear() | |
| index | 获取元素下标--------list.index(event,index) | |
| sort | 元素排序 -----list.sort() | |
| count | 获取指定元素出现的次数 ----list.count(event) | |
| reverse | 元素反转(倒序) ------list.reverse() |
tuple
元组:元组是python当中不可变的类型,且不能被操作修改。定义一元组可以可以通过(100,)('hello',)以上标识为元组注:在定义一个元组元素的时候必须逗号结尾。否则标识为常量值
| 方法 | 介绍 | 用法 |
|---|---|---|
| len | 获取元组长度 | |
| in | 成员运算符 | t1 = (1,2,3,4) |
元组的使用之打包与解包(类似js当中的解构)
在解包时:如果两边长度不相等会报错;解决办法是通过*表达式 且在使用*解包的时候不能同时存在两个
#打包
a = 1,2,3
print(type(a)) <class 'tuple'>
print(a) # (1,2,3)
#解包
t1 = (1,2,4)
a,b,c = t1
print(a) #1
print(b) #2
print(c) #4
##############
t2 = ('a','b','c')
*a,b = t2
print(a) #['a','b'] 类型为list
print(b) # 'c'
##############
t3 = (1,2,3,4,5)
*a,*b,2 = t3 #报错
字典 (js当中的对象)
以下示例都为
students = { 1001: {'name': '狄仁杰', 'sex': True, 'age': 22, 'place': '山西大同'}, 1002: {'name': '白元芳', 'sex': True, 'age': 23, 'place': '河北保定'}, 1003: {'name': '武则天', 'sex': False, 'age': 20, 'place': '四川广元'} }
| 方法 | 介绍 | 用法 |
|---|---|---|
| get(key) | 获取对应键对应的值 | print(students.get(1002)) # {'name': '白元芳', 'sex': True, 'age': 23, 'place': '河北保定'} |
| keys() | 获取字典当中的所有的key值 | print(students.keys()) # dict_keys([1001, 1002, 1003]) |
| values() | 获取字典的所有值 | print(students.values()) # dict_values([{...}, {...}, {...}]) |
| item() | 获取字典所有的键值对 | print(students.items()) # dict_items([(1001, {...}), (1002, {....}), (1003, {...})]) |
| for in | 遍历字典 | |
| pop(key,default) | 删除对应key的键值,并返回该值, default:当删除的key不存在时返回的值 | stu1 = students.pop(1002) print(stu1) # {'name': '白元芳', 'sex': True, 'age': 23, 'place': '河北保定'} |
| popitem() | 删除字典的最后一组键值对,返回值是一个二元组 | key, value = students.popitem() print(key, value) # 1003 {'name': '武则天', 'sex': False, 'age': 20, 'place': '四川广元'} |
| setdefault(key,default) | 获取当前键对应的值是否在字典当中,如果在返回对应的键对应的值,反之则用defaultr替代 | result = students.setdefault(1005, {'name': '方启鹤', 'sex': True}) print(result) # {'name': '方启鹤', 'sex': True} print(students) # {1001: {...}, 1005: {...}} |
| update(obj) | 更新字典 | |
| del(key) | 删除字典当中的键对应得到值 |