一、变量
1.变量的定义
变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。可以通过变量名访问。在Python中,每个变量在使用之前都需要赋值,变量只有在赋值之后才能被创建,例如:yuan = 1,其中yuan就是变量名,给他赋的值就是常量1,在将长常量1赋值给yuan这个变量后,yuan就被创建了。在python中,变量创建之后就可以直接使用。
与其它语言的区别:定义变量不需要声明变量类型,变量的类型完全等于你所赋值的常量或变量的类型。
2.变量的命名
如何去定义一个变量,变量命名也有他的命名规则。
- 变量名可以由字母、下划线和数字组成
- 变量名不能以数字开头
- 变量名不能与在Python中已定义的变量名重名
- 变量名区分大小写
- 定义变量名时,建议在=的左右两边各保留一个空格
- 变量名由两个或多个单词组成时,每个单词都应使用小写字母,并且单词与单词之间用下划线连接。如:yang_yun
- 变量名由两个或多个单词组成时,还可以用驼峰命名法来命名,驼峰命名法分为小驼峰式命名法,命名规则为第一个单词以小写字母开始,后续单词的首字母大写如:yang_Yun,另一种为大驼峰式命名法,即每一个单词的首字母都大写。如:YangYun
- 假如是用pycharm开发Python程序,定义变量名遇到拼写错误的警告, 可以选择重新定义变量名或者将此变量名加入字典中来消除警告。
3.变量的赋值
3.1 变量的常规赋值
最常见的赋值方式就是直接用=连接变量名与值。如 yang = 1。
3.2多个变量赋值
Python允许你同时为多个变量赋值。例如:
yang = yun = 1。yang, yun = list(), dict()。
4.数据类型
Python有五个标准的数据类型:
4.1 Numbers(数字)
数据类型用于存储数值,他们是不可改变的数据类型,想要改变的话会重新分配一个新的对象。
4.1.1 python有四种不同的数字类型
- int (有符号整型) 【常用】
- long (长整型[也可代表八进制和十六进制])
- float (浮点型) 【常用】
- complex (复数)
其中注意的是long类型只存在于Python2.x版本中,在Python3.x中long类型被移除,使用int代替。
4.1.2 数字类型之间的相互转换
通用(常用)转换:
函数 | 描述 |
---|---|
int(x) | 将x转换成一个整数 |
long(x) | 将x转换成一个长整数 |
float(x) | 将x转换成一个浮点数) |
4.2 String(字符串)
字符串或串是由数字,字母,下划线组成的一串字符。它是Python中表示文本的数据类型。一般被单引号或双引号包裹。
如: yangyun = ‘yangyun’
4.2.1 字符串常用操作方法
4.2.1.1 替换
str.replace():指定替代字符和被替代字符,返回替代结果。
str.center():将字符串放入中心位置可指定长度以及位置两边字符。
str.swapcase() 大写变小写,小写变大写。
str.title() 变成标题。
4.2.1.2 删除
str.strip() 删除字符串两边指定的字符,默认为空格。
str.lstrip() 删除左边的的指定字符,默认为空格。
str.rstrip() 删除右边的指定字符,默认为空格。
4.2.1.3 赋值
= " " 或 = ’ ’
4.2.1.4 连接
“+”:连接两个字符串,此方法被称为“万恶的加号”,因为每n个字符串相连,就会开辟n-1次内存从存储拷贝, 是非常耗费资源的。
str.join(): 连接两个字符串, 可指定连接符号。
4.2.1.5 比较
str.cmp: 比较两个对象,并根据结果返回一个整数。(python3中已无此方法)
直接if判断两个字符串是否相等进行比较。
4.2.1.6 查找
str.index():检测字符串中是否包含子字符串str,可指定范围。
str.find():检测字符串中是否包含子字符串str,可指定范围。
4.2.1.7 分割
字符串切片:
str[0:3] # 截取第一位到第三位的字符
str[ : : -1] # 创造一个与原字符串顺序相反的字符串
str[: -5 : -3] # 逆序截取,截取倒数第五位数与倒数第三位数之间。
str.split(): 按指定字符切割,返回数组。
str.partition(): 按指定字符切割, 返回元组。
根据换行切割:
str.splitlines()
4.2.1.8 统计
str.count():统计某个字符出现的频率。
len(str): 返回字符串的长度。
4.3 List(列表)
列表是Python中使用最频繁的数据类型。他支持字符,数字,字符串,包括嵌套列表。
列表用 [ ] 标识。
4.3.1 列表的常用操作方法
4.3.1.1 列表的创建
创建一个空列表:list1 = [] 或 list1 = list()
创建一个非空列表:list = [‘yang’,‘yun’,‘zhang’]
4.3.1.2 列表的访问
与字符串的索引一样,列表索引从0开始,列表可以进行截取,组合等
遍历列表:
for i in list:
print(i)
访问列表中的值:
list = [1, 2, 3, 4, 5, 6]
print(list[3]) # 使用下标索引来访问
print(list[0:3]) # 使用方括号的形式截取字符
4.3.1.3 列表的更新
列表添加新的元素:
list.append() # 在列表结尾添加元素
list.insert() # 插入一个元素,选择插入位置和插入元素
list.extend() # 扩展列表,在一个列表末尾一次性追加另一个序列中的多个值。
4.3.1.4 列表的删除
从列表删除数据:
list.remove() # 可指定删除元素,如有重复元素,只会删除最靠前的
list.pop() # 可删除指定位置的元素,默认为最后一个元素
del list # 可以删除整个列表或指定元素或者列表切片,列表删除后无法访问
4.3.1.5 列表的其它操作
列表的排序:
list.reverse() # 反转排序
list.sort() # 可制定排序参数
列表其它操作:
len(list) # 列表元素个数
max(list) # 返回列表最大值
min(list) # 返回列表最小值
list(seq) # 将元组转换为列表
4.4 Tuple(元组)
python元组与列表类似,不同之处在于元组的元素不能更改,元组使用小括号,列表使用方括号。
4.4.1 元组的创建
创建元组:
tuple1 = (1, 2, 3, 4, 5)
tuple1 = () # 创建一个空元组
tuple1 = (50,)
元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义。
4.4.2 元组的访问
元组与字符串相似,下标索引从0开始,可以进行截取,组合
访问元组:
print(tuple1[0])
print(tuple[1:5])
4.4.3 元组的修改
元组中的值是不允许修改的,但我们可以对元组进行连接组合。
tuple1 = (12, 34)
tuple2 = ('abc', 'xyz')
tuple3 = tuple1 + tuple2
print(tuple3)
4.4.4 元组的删除
元组中的元素值是不允许被删除的,但我们可以用del语句来删除整个元组
del tuple1
4.4.5 元组的其他操作
4.5 Dictionary(字典)
字典也是Python提高的一种常用的数据结构,他用于存放具有映射关系的数据。字典相当于保存了两组数据,其中一组数据是关键数据,被称为key;另一组可通过key来访问,称为value。
字典中的key不允许重复。
key和value的关联关系如图所示:
4.5.1 dict 的创建
- 可使用花括号来创建字典。
- 也可使用dict() 来创建字典。
例:
yang = {"杨": "张"}
yang = dict() # 空字典
4.5.2 dict 的访问
- 通过key值访问value。
- 通过key值添加key-value对。
- 通过key值删除key-value对。
- 通过key修改key-value对。
- 通过key判断key-value值是否存在。
- 通过key访问value使用的也是方括号语法,只是此时方括号中不再是索引,而是key。
dict1 = yang['杨'] # key值访问value
print(dict1) # 张
yang['云'] = yun # key 添加value
del yang['云'] # 删除key-value
yang['杨'] = yang # 已存在的key-value重新赋值
print('yuan' in yang] # 判断是否有key False
字典key相当于value的索引
列表不允许对不存在的索引赋值, 但字典则允许直接对不存在的key赋值。
4.5.3 字典的常用方法
- clear()
用于清空字典中所有的key-value对, 对一个字典执行clear()方法之后,该字典就会变成一个空词典。
dict.clear()
- get()
根据key来获取value,它相当于方括号的增强版,当使用方括号语法访问并不存在的key时,字典会引发keyError错误,但如果使用get()方法访问不存在的key值,该方法会简单返回None,不会导致错误。
dict.get('key')
- update()
update()方法可使用一个字典所包含的key-value对来更新已有的字典。在执行update()方法时,如果更新的字典包含对应的key-value对,那么原value就会被覆盖。如果不存在,则会添加进去。
dict.update({key:value})
- items()
items() 用于获取字典中的所有key-value对。
list(dict.items()) # 转换为list
- key()
获取所有的key
list(dict.key())
- values()
获取所有的value
list(dict.values)
- pop()
pop()方法用于获取指定key对应的value,并删除这个key-value对。
dict.pop('key')
- popitem()
popitem() 方法用于随机弹出字典中的一个key-value对。弹出一个元组,可以通过序列解包分别接收key和value。
dict.popitem()
- setdefault()
setdefault()方法也用于根据key值来获取对应value的值。但该方法有一个额外的功能,即当程序要获取的key在字典中不存在时,该方法会先为这个不存在的key设置一个默认的value, 然后再返回该key对应的value。
dict.setdefault('key', 'default')
- fromkeys()
fromkeys() 方法使用给定的多个key创建字典,这些key对应的value默认都是value;该方法一般不会使用字典对象调用(没什么意义),通常会使用dict类直接调用。
dict.formkeys((key1, key2), 'value')
4.6 Set(集合)
集合是一个无序的,不重复的数据组合
4.6.1 集合的创建
- 赋值方式
s = {1, 2, 3, 1, 2, 3} # type(s) => set
列表不支持创建集合
- 工厂方式
li = [1, 2, 3, 4]
yuan = set(li) # type(yuan) => set
集合可以用来作列表去重
4.6.2 集合的方法
- add()
在集合内添加一项 - update()
在集合中添加多项,跟的参数应该是可迭代对象
s.update([1, 4, 5])
- remove()
删除集合中指定的元素, 若元素不存在则报错 - pop()
随机删除集合中的某个元素,并返回删除的元素 - discard()
删除集合中指定的元素,若元素不存在则不做任何事 - clear()
清空所有集合
4.6.3 集合的关系操作
- 交集
set1 & set2 # 取两个集合相同的地方
set_1.intersection(set_2) # 取两个集合相同的地方
- 并集
set_1 | set_2 # 将两个集合合并,去重
set_1.union(set_2)
- 差集
set_1 - set_2 # 取前一个集合在后一个集合中不同的值
set_1.difference(set_2)
- 对等差分
set_2 ^ set_2 # 取两个集合中不同的值
set_1.symmetric_difference(set_2)
- 子集
set_1.issubset(set_2) # 子集
- 父集
set_1.issuperset(set_2) # 父集
- 有无交集
set_1.isdisjoint(set_2) # set_1和set_2是否有交集 => true or false