一:三元运算
1 result = 1 if a>0 else 2
三元运算先判断 if后的语句是否成立,像上面代码如果a>0则 result = 1 ,不是则result = 2。
二:string与bytes相互转换
1 name = "我的名字叫雷锋" 2 print(name) 3 print(name.encode(encoding="utf-8"))#将name表示的"我的名字叫雷锋"转换为bytes 4 print(b‘\\xe6\\x88\\x91\\xe7\\x9a\\x84\\xe5\\x90\\x8d\\xe5\\xad\\x97\\xe5\\x8f\\xab\\xe9\\x9b\\xb7\\xe9\\x94\\x8b‘.decode())
先把字符串转化为bytes(默认为utf-8)
之后把bytes解码为字符串
三:列表
1.列表定义及输出
1 name = ["唐三藏","孙悟空","猪八戒","沙和尚","白龙马"] 2 print(name) #输出name中所有的数据 3 print(name[0]) #输出name这个列表下标为0的数据,“唐三藏” 4 print(name[1:3]) #输出name中下标1-3不包括3的数据即[‘孙悟空‘, ‘猪八戒‘](顾头不顾尾) 5 print(name[-1]) #输出最后一个数据 6 print(name[-2:]) #输出最后两个值 7 print(name[-2:-1]) #输出倒数第二个值(顾头不顾尾)
8 print(name[0:-1:2]) #从下标为0的数据输出致最后一个,步长为2(三个值都可以缺省)
2.:列表修改
name = ["唐三藏","孙悟空","猪八戒","沙和尚","白龙马"] name.append("观世音")#追加一个值 name.insert(1,"六耳猕猴")#将六耳猕猴插入列表中下标为1的位置 name[4] = "卷帘将军"#将下标为4的位置改为“卷帘将军” name.remove("孙悟空")#将孙悟空在列表中删除 del name[1]#将下标为1的数据在列表中删除 a = name.pop(1)#删除并返回下标为1的数据 b = name.index("白龙马")#找到并返回第一个值为白龙马的下标 c = name.count("唐三藏")#统计列表中值为“唐三藏”数据的个数 print(name,a,b,c) name.clear()#清空列表中的数据 print(name)
3.列表合并
num = [1,2,3,4] num2 = [5,6,7,8] num.extend(num2)#将num2中的数据添加到num print(num,num2)
4.列表复制
1 name = [0,1,2,[3.1,3.2],4,5,[6.1,6.2]] 2 name2 = name.copy() #将name中储存的数据复制一份给name2 3 print(name,‘\\n‘,name2) 4 print(‘-------------------------------‘) 5 name[0] = 10 6 name[6] = 60 7 name[3][0] = 30 8 print(name,‘\\n‘,name2)
结果如下图
可以看出name2复制了name的数据(即对name更改不会对name2产生影响)
列表中还可以嵌套列表但是列第一层列表中存放的是指向下一层列表存放位置的指针不是数据本身
而name2复制的也是name中存放的指针,所以对也就是name[3]和name2[3]都是存放的指向[3.1,3.2]这个列表的指针,更改name[3][0]进行更改也就是通过指针对子列表进行更改
所以name2的输出数据也会受影响
name[6]=60则是将name[6]中的指针改为了60,子列表不受影响,name2输出也就不受影响
四:元组
不能修改只能查,又称为只读列表
元组定义:
num = (1,2,3,4)
五:字符串常用函数
1.
name = ‘my name is \\tjack‘ print(name.capitalize()) #首字母大写 print(name.count(‘a‘)) #统计字符串中a的数量 print(name.center(10,‘+‘)) #打印10个字符将name的值放在中间,不够用+补齐 print(name.endswith(‘ck‘)) #判断字符串是不是由ck结尾 print(name.expandtabs(20)) #将一个\\t转化为20个空格 print(name.find(‘name‘)) #返回name所在的位置 找不到返回-1 print(name[1:6]) #切片输出,输出1-6的元素 information = ‘{name1} is {age1} years old‘ print(information.format(name1 = ‘jack‘,age1 = 20)) print(information.format_map({‘name1‘:‘jack‘,‘age1‘:‘20‘})) #使用字典 print(name.index(‘name‘)) #返回name所在的位置 找不到抛出异常
结果如下
2.
print(‘aa‘.isalpha()) #判断是不是纯英文字符 print(‘+‘.join([‘1‘,‘2‘,‘3‘,‘4‘])) #将列表变为字符串,以+为间隔符 print(‘abcd‘.ljust(50,‘+‘)) #50个长度不够右侧用+作为占位符 print(‘abcd‘.rjust(50,‘-‘)) #50个长度不够左侧用-作为占位符 print(‘Jack‘.lower()) #返回小写 print(‘Jack‘.upper()) #返回大写 p=str.maketrans(‘abcdefg‘,‘[email protected]/*+5%‘) #两个字符串一一对应,指定字符转化规则 print(‘fog‘.translate(p)) #‘fog’按照p这个规则进行加密 print(‘jack jone‘.replace(‘j‘,‘J‘,2)) #将字符串中的j改为J转换两个(缺省为全部替换) print(‘1+2+3+4‘.split(‘+‘,2)) #将+号作为分隔符返回列表值,执行2次(缺省为全部) print(‘Jone Jack‘.swapcase()) #大小写反转 print(‘jone jack‘.title()) #转换为标题样式
结果如图:
六:字典
1.
data = {‘student1‘:‘jack‘,‘student2‘:‘joker‘,‘student3‘:‘jone‘} print(data[‘student1‘]) #字典没有顺序也没有下标,取值通过key data[‘student1‘] = ‘sam‘ #修改student1的值 data[‘student4‘] = {‘amy‘:11} #增加一个值可以是字符串、字典、列表、元组 data[‘student5‘] = [‘jack‘,‘linda‘] data[6] = (1,2,3,4) print(data) del data[6] #删除 data.pop(‘student5‘) #删除 print(data) print(data.get(‘student5‘)) #根据key查找并返回,找不到返回None同(if ‘student5‘ in data: else) print(data.values()) #打印所有值 print(data.keys()) #打印所有key
2.
a = {‘a‘:1,‘b‘:2} b = {‘a‘:7,‘c‘:3} a.update(b) #用b作为参数更新a(key重复替换,不重复增加) print(a) print(a.items()) #将a变为列表,元素变为元组