162
社区成员




一、PyThon数据:常量与变量
1. 常量
PyThon共有4个基本数据类型:整型(int),浮点型(float),字符串(str),布尔型(bool),均以对象的形式存在。
1.1 整型
默认无小数点的数据为整型(int),如var = 123,123被默认为整型常量。
1.2 浮点型
默认有小数点的数据为浮点型(float),如var = 123.或123.0,123.被默认为浮点型常量。
1.3 字符串
PyThon字符串可以被单引号、双引号或三引号包裹,如'abc'、"abc"、'''abc'''
单引号或双引号只能包裹单行字符串,而三引号可以包裹多行字符串。
1.4 布尔型
只有真值(True)和假值(Flase),注意PyThon区分字母大小写,首字母均大写。
2. 变量
跟其他高级语言不一样,PyThon是一种动态语言,变量无需定义,直接赋值,可理解为是赋值对象的标签或引用(即不是赋值对象本身)。动态是指:变量的类型可变,取决于赋值对象的类型。
如:int (var)
bool(var)
:非0数字或非空串返回True,否则返回False
三、PyThon数据结构
str_var = 'xiaoMing' 或 “xiaoMing"
单引号或双引号包裹单行字符串
1.2 类型转换为字符串型
整型int转换为str:str(123)
浮点型float转换为str:str(123.0)
布尔型bool转换为str:str(True)或str(False)
1.3 转义字符\的应用
转变原本字符的含义:
\n:换行
\t:制表
':单引号
\:反斜杠
1.4 字符串的数学运算
1.4.1 字符串拼接
'xiao' + 'Ming' 不会修改’xiao’本身
'xiao' += 'Ming' 会修改 'xiao’本身
1.4.2 字符串复制
'ab' * 3 返回 字符串 ‘ababab’
1.5 字符串切片操作:提取子串
english = 'abcdefg',注意以下切片操作均不会改变english本身。
1.5.1 整数索引:切单个字符
english[0] = 'a' 第一个元素索引为0
english[-1] = 'g' 最后一个元素索引为-1
1.5.2 切片索引:用冒号分割,前闭后开
english[0: 2]或english[: 2] = 'ab' 从前切
english[-3: ] = 'efg' 从倒数第3个开始一直切到最后
english[-3: -1] = 'ef' 前闭后开
english[: ] = 'abcdefg' 切整个字符串
english[0: 4: 2] = 'ac' 加步长2
english[ : : -1] = 'gfedcba' 或 glish[ : : -2] = 'geca'
负步长从后往前切,只支持整体切片
1.6 字符串函数或方法
english = 'abcdefg',注意以下函数或方法不会改变english本身,只会返回一个新串对象。
1.6.1 求长度函数
len(english) = 7
1.6.2 分割方法
字符串.split() 默认以空格为分隔符,返回一个子串列表。
字符串.split('a')以字母a为分隔符,返回一个子串列表。
以此类推。
1.6.3 去空白符方法
字符串.strip() 默认去掉字符串前后所有空白符 (包括空格、\n、\t、\r、\f)。
字符串.strip('.') 去掉字符串前后所有的小数点。
字符串.strip('a') 去掉字符串前后所有的字母a。
以此类推。
1.6.4 大小写转换方法
字符串.upper() 转大写
``字符串.lower() 转小写
1.6.5 首字母大写方法
字符串.capitalize()
1.6.6 右对齐方法
字符串.rjust(n) 不足n位填充空格
1.6.7 居中方法
字符串.center(n)
1.6.8 替换方法
字符串.replace(被替换子串,替换串)
如:english.replace('cd', 'qq') = 'abqqefg' 查找english中所有的’cd’并替换为 ‘qq’。
1.6.9 子串计数方法
字符串.count(子串) 计算子串的数量
1.6.10 是否以指定子串开头或结尾方法
字符串.startswith(子串) 返回True或False
字符串.endswith(子串) 返回True或False
1.6.11 查找子串方法
字符串.find(子串) 返回子串第一次出现的位置索引(从左数)
字符串.rfind(子串) 返回子串第一次出现的位置索引 (从右数)
1.6.12 连接方法
','.join(子串列表) 用逗号将子串连接成一个新的字符串
字符串.join(子串列表) 用指定字符串将子串连接成一个新的字符串
2. 列表list
重要特性:可以包含不同类型的元素,但元素有序,用[ , ]表示。
2.1 创建列表
方法1:直接创建,[123, 123.4, 'abc', True]。[]代表空列表。
方法2:list()函数将其他数据结构对象(如字符串、元组、集合等)、迭代器、生成器转换为列表
如:list(range(5)) 返回[0, 1, 2, 3, 4]
2.2 列表嵌套
列表元素也可以是列表,提取子列表元素使用双重索引。
2.3 列表切片操作
类似于字符串的切片操作,分为整数索引切片和切片索引切片两种,不同之处在于,无论是整数索引还是切片索引,字符串切片返回的均是子串,类型为str。而列表整数索引返回指定元素,切片索引返回子列表。
2.4 列表修改
可使用切片索引同时对多个元素修改
如a[ : 2] = [100, 200]
2.5 列表合并
方法1:a + b,返回新列表,但a和b不变
方法2:a.extend(b) 将b的元素添加至a的末尾,a变b不变
2.6 列表添加元素
方法1:a.append(新元素) 将新元素添加至末尾,返回None
方法2:a.insert(index, 新元素) 将新元素添加至指定位置
2.7 列表删除元素
方法1:a.pop() 默认删除最后一个元素并将其返回
方法2:a.pop(index) 删除指定位置元素并将其返回
方法3:del a[index] 删除指定位置元素但不作返回
方法4:a.remove(元素值) 删除指定元素值,返回None
2.8 判断指定值是否在列表中
元素值 in a 返回True或False
2.9 列表元素定位
a.index(元素值) 类似字符串的find()方法
2.10 统计指定元素的个数
a.count(元素值)
2.11 列表排序
a.sort()
2.12 列表求长度
len(a)
3. 字典dict
重要特性:无序,用{key1:value1, ...}表示,每一个元素的键key互不相同。
3.1 创建字典
方法1:直接创建,{k1: v1, k2: v2, ...},{}代表空字典。
方法2:dict()将其他类型的数据结构、迭代器、生成器转换为字典。
3.2 字典取值
因为字典无序,所以没有切片操作。
方法1:a[key]做右值时,代表对应的value,取值。如果不存在,会报KeyError异常。
方法2:a.get(key),如果不存在,默认返回None
方法3:a.get(key, return_default),如果不存在,返回指定return_default。
3.3 字典修改(一定条件下添加)
a[key] = value,如果存在key,则修改其值,如果不存在,则添加一个键值对。
3.4 字典合并
a.update(b) 将字典b中的键值对添加至字典a中,a变b不变。
3.5 字典删除
del a[key] 删除指定键值对
3.6 清空字典
a.clear() 清空字典a中元素,使a变为空字典{}
3.7 判断指定键是否在字典中
key in a 返回True或False
3.8 字典方法
a.keys()、a.values()、a.items()分别返回键、值和键值对元组组成的列表迭代器 (即封装起来的列表)
4. 元组tuple
重要特性:元组一旦指定便不可改变(元素的值和顺序均不可改变),因此元组对象可以作为字典或集合的key,而列表对象不能;元素类型可以不同;有序 (可以进行切片操作)。
4.1 创建元组
方法1:直接创建:注意PyThon解释器通过逗号,判断是否是一个元组,而不是小括号()
多元素:(123, 123.4, 'abc')或123, 123.4, 'abc'
单元素:(123,)或123,
空元组:()
方法2:tuple()将其他类型数据结构、迭代器、生成器转换为元组。
4.2 元组解包赋值
a = (1, 2, 3)
b, c, d = a
相当于元组a赋值给由b、c、d组成的元组,b = 1, c = 2, d = 3。
4.3 解包数据交换
a, b = b, a 等价于a与b交换数据。
5. 集合set
重要特性:元素值唯一;无序;用{key1, key2, ...}表示。
5.1 创建集合
方法1:直接创建,{key1, key2, ...}。
方法2:set()将其他类型数据结构、迭代器、生成器转换为集合。
注意:{}表示空字典,而不是空集合。只能使用set()创建或表示。
5.2 集合运算
5.2.1 交集 &
set1 & set2
5.2.2 并集 |
set1 | set2
5.2.3 差集 -
set1 - set2
5.3 添加元素
方法1:set1.update(新元素)
方法2:set1.update(set2) 等价于并集运算,但会改变set1。
5.4 判断元素是否在集合中
key in set1 返回True或False。