一: 三元运算
1 result = 1 if a>0 else 2
三元运算先判断 if 后的语句是否成立, 像上面代码如果 a>0 则 result = 1 , 不是则 result = 2
二: string 与 bytes 相互转换
- name = "我的名字叫雷锋"
- print(name)
- print(name.encode(encoding="utf-8"))# 将 name 表示的 "我的名字叫雷锋" 转换为 bytes
- 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. 列表定义及输出
- name = ["唐三藏","孙悟空","猪八戒","沙和尚","白龙马"]
- print(name) #输出 name 中所有的数据
- print(name[0]) #输出 name 这个列表下标为 0 的数据, 唐三藏
- print(name[1:3]) #输出 name 中下标 1-3 不包括 3 的数据即[孙悟空, 猪八戒](顾头不顾尾)
- print(name[-1]) #输出最后一个数据
- print(name[-2:]) #输出最后两个值
- print(name[-2:-1]) #输出倒数第二个值(顾头不顾尾)
- 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. 列表复制
- name = [0,1,2,[3.1,3.2],4,5,[6.1,6.2]]
- name2 = name.copy() #将 name 中储存的数据复制一份给 name2
- print(name,\n,name2)
- print(-------------------------------)
- name[0] = 10
- name[6] = 60
- name[3][0] = 30
- 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,1@/*+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 变为列表, 元素变为元组
来源: http://www.bubuko.com/infodetail-2523985.html