变量名
- 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
- 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
- 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
- 变量名应既简短又具有描述性。例如, name比n好, student_name比s_n好, name_length比length_of_persons_name好。
- 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
数字
- 单精度型占4个字节32位的内存空间只能提供七位有效数字
- 双精度型占8个字节64位的内存空间可提供17位有效数字
- python3 默认的是17位小数的精度
int 整型,动态长度
float 单精度浮点数值
double 双精度浮点数值
decimal 精度最高,底层利用字符串实现
字符串
' ' " " ''' '''三种
str_test = 'wo shi mxj'
str_test.strip() 移除空白
str_test.split(' ') 以空格分割
len(str_test) 长度
str_test.index[1] 索引
str_test.[0:-1] 切片
+ 合并
replace('a', 'b', 10) a换成b,换10次
isdigit()判断是否是数字
islower()判断是否是全部小写
isupper()判断是否是全部大写
lower()全部转换为小写
upper()全部转换为大写
isspace()判断是否是全都是空格
istitle()判断是否是标题(首字母大写)
swapcase()大小写字母翻转
- 字符串格式化
'no data available for person with id: {}, name: {}'.format(id, name)
'no data available for person with id: %s, name: %s' % (id, name))
列表
name_list = ['mxj', 'seven', 'eric']
name_list = list(['mxj', 'seven', 'eric'])
索引 name_list[0]
追加 name_list.append('mxj')
插入 name_list.insert(2,'hf')
扩展 name_list.extend('hf','girl')
删除 del name_list[1]
name_list.remove('mxj')
长度 len(name_list)
切片 name_list[0:3]
name_list[0:]
弹出 name_list.pop()
name_list.pop(0)
包含 'mxj' in name_list
元组
元组本身是不可变的,但是内部的元素可以是可变类型
-
对列表和元组,我们放置了相同的元素,但是元组的存储空间,却比列表要少 16 字节。,由于列表是动态的,所以它需要存储起始数据指针,来指向初始元素(例如,对于 int 型,8 字节)。另外,由于列表可变,所以需要额外存储已经分配的长度大小(8 字 节),这样才可以实时追踪列表空间的使用情况,当空间不足时,及时分配额外空间
-
元组要比列表更加轻量级一些, 所以总体上来说,元组的性能速度要略优于列表。
-
存储的数据和数量不变,用元组,否则用列表
创建元祖:
ages = (11, 22, 33, 44, 55)
ages = tuple((11, 22, 33, 44, 55))
索引
切片
循环
长度
包含
字典
作用:去重,关系运算,传值,取值
定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:
1.每个元素必须是不可变类型(可hash,可作为字典的key)
2.没有重复的元素
3.无序
-
字典和集合是进行过性能高度优化的数据结构,特别是对于查找、添 加和删除操作。
person = {“name”: “mr.wu”, ‘age’: 18}
person = dict({“name”: “mr.wu”, ‘age’: 18})
索引 person[‘age’]
键不存在会报错,使用get不会,返回默认值0
person.get(‘addr’,0)
新增 person[‘addr’]=’‘wuhan’
setdefault,键值存在,返回键的值;不存在,为键赋值,返回赋的值
person.setdefault(‘age’,20)
删除 del person[0]
del person[‘addr’]
键、值、键值对 person.keys person.values person.items
长度 len(person)
集合
使用set()创建集合
集合并集 |
集合交集 &
集合差集 -
|并集(print(pythons.union(linuxs)))
&交集(print(pythons.intersection(linuxs)))
-差集(print(pythons.difference(linuxs)))
^对称差集(print(pythons.symmetric_difference(linuxs)))
不可变数据类型
数字,字符串,布尔类型,元组
编码
unicode:简单粗暴,多有的字符都是2Bytes,优点是字符–数字的转换速度快;缺点是占用空间大。
UTF-8:精准,可变长,优点是节省空间;缺点是转换速度慢,因为每次转换都需要计算出需要多长Bytes才能够准确表示。
转换
unicode------>encode(编码)-------->utf-8
utf-8---------->decode--------->unicode