Python基础
文章目录
Chapter 1 基础语法
-
常见数据类型
类型 描述 说明 string 字符串类型 用引号引起来的数据都是字符串 int 整型 数字类型,存放整数 float 浮点型 数字类型,存放小数 -
数据类型查询
type(变量)
-
数据类型的转换
语句(函数) 说明 int(x) 将对象x转换为整数型 float(x) 将对象x转换为浮点型 str(x) 将对象x转换为字符串类型 - 字符串必须为数字才可以转换为数字类型
- 任何类型均可以转换成为字符串
-
算术运算符
运算符 描述 实例 + 加 两个对象相加 a + b - 减 得到负数或是一个数减去另一个数 a - b * 乘 两个数相乘或是返回一个被重复若干次的字符串 a * b / 除 b / a 输出结果 // 取整除 返回商的整数部分 9//2 输出结果 4 % 取余 返回除法的余数 b % a ** 指数 a**b -
复合赋值运算符
运算符 描述 实例 += 加法赋值运算符 c += a 等效于 c = c + a -= 减法赋值运算符 c -= a 等效于 c = c - a *= 乘法赋值运算符 c *= a 等效于 c = c * a /= 除法赋值运算符 c /= a 等效于 c = c / a %= 取模赋值运算符 c %= a 等效于 c = c % a **= 幂赋值运算符 c ** = a 等效于 c = c ** a //= 取整除赋值运算符 c //= a 等效于 c = c // a
Chapter 2 字符串
-
字符串的三种定义方式
-
单引号定义法
可以内含双引号
name = 'python'
-
双引号定义法
可以内含单引号
name = "python"
-
三引号定义法
name = """python"""
-
-
字符串格式化
格式符号 转化 %s 将内容转换成字符串,放入占位位置 %d 将内容转换成整数,放入占位位置 %f 将内容转换成浮点型,放入占位位置 class_num = 57 avg_salary = 16781 message = "Python大数据学科,北京%d期,平均工资:%d" % (class_num, avg_salary) print(message)
-
数字精度控制
- 使用辅助符号"m.n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
num1 = 11.345 print("num1保留两位小数的结果 %.2f",num1)
-
字符串特点
- 字符串可以通过下标访问
- 旧字符串无法修改,只能得到新的字符串
-
字符串常见操作
-
查找特定字符串的下标索引值
语法:字符串.index(字符串)
name = 'Tencent' # index方法 index = name.index('n') print(f"字母n的索引位置为:{index}")
-
字符串的替换
语法:字符串.replace(字符串1,字符串2)
注意:得到的是新字符串,旧字符串无变化
# replace方法 new_name = name.replace('T', 't') print(f"name:{name},new_name:{new_name}") # name:Tencent,new_name:tencent
-
字符串的分割
语法:字符串.split(分隔符字符串)
注意:得到是字符串列表
my_str = 'Welcome to Swatow' str_list = my_str.split(' ') print(f"切割后的字符串列表:{str_list}") # 切割后的字符串列表:['Welcome', 'to', 'Swatow']
-
字符串的规整操作(去前后指定字符串)
语法:字符串.strip(字符串)
# 去除前后“12” my_str = '12Welcome to Swatow21' print(my_str.strip('12')) # 结果:Welcome to Swatow # 去除前后空格 my_str = ' hello world! ' print(my_str.strip()) #结果:Hello world!
-
统计字符串中某字符串的出现次数
语法:字符串.count(字符串)
name = 'Tencent' # 统计数量 count = name.count('n') print(f"'n'在字符串中出现的次数:{count}")
-
总结
编号 操作 说明 1 字符串[下标] 根据下标索引取出特定位置字符 2 字符串.index(字符串) 查找给定字符的第一个匹配项的下标 3 字符串.replace(字符串1, 字符串2) 将字符串内的全部字符串1,替换为字符串2不会修改原字符串,而是得到一个新的 4 字符串.split(字符串) 按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表 5 字符串.strip()字符串.strip(字符串) 移除首尾的空格和换行符或指定字符串 6 字符串.count(字符串) 统计字符串内某字符串的出现次数 7 len(字符串) 统计字符串的字符个数
-
Chapter 3 判断语句
-
比较运算符
运算符 描述 == 判断内容是否相等 != 判断内容是否不相等 > 判断运算符左侧内容是否大于右侧 < 判断运算符左侧内容是否小于右侧 >= 判断运算符左侧内容是否大于等于右侧 <= 判断运算符左侧内容是否小于等于右侧 -
if elif else 语句
if age >= 18 & age <= 130: print("你已经成年了!") elif age >= 0 & age < 18: print("你还未成年!") else: print("您输入的数据有误!")
Chapter 4 循环语句
-
While循环
i = 0 sum = 0 while i <= 100: sum = sum + i i += 1
-
for循环
-
语法
for 临时变量 in 待处理的数据集: 循环代码
-
示例
for i in range(5): print(i)
-
-
continue 和 break 关键字
- continue:中断本次循环,直接进入下一次循环
- break:直接结束所在循环
- 两个关键字只作用于所在循环,无法作用于上层循环
Chapter 5 函数
-
函数的定义
def 函数名(传入参数): 函数体 return 返回值
-
函数返回值
- return可以设置返回值
- 无设置返回值时返回为None
-
变量作用域
-
全局变量:指的是在函数体内、外都能生效的变量
-
局部变量:定义在函数体内部的变量,即只在函数体内部生效
-
global关键字 可以在函数内部声明变量为全局变量
def test_A(): print(num) def test_B(): global num num = 200 print(num) num = 100 test_A() test_B() print(f"全局变量num = {num}")
-
Chapter 6 列表list
-
数据容器
-
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
-
分为5类:列表(list)、元祖(tuple)、字符串(str)、集合(set)、字典(dict)
-
总结
** ** 列表 元组 字符串 集合 字典 元素数量 支持多个 支持多个 支持多个 支持多个 支持多个 元素类型 任意 任意 仅字符 任意 Key:ValueKey:除字典外任意类型Value:任意类型 下标索引 支持 支持 支持 不支持 不支持 重复元素 支持 支持 支持 不支持 不支持 可修改性 支持 不支持 不支持 支持 支持 数据有序 是 是 是 否 否 使用场景 可修改、可重复的一批数据记录场景 不可修改、可重复的一批数据记录场景 一串字符的记录场景 不可重复的数据记录场景 以Key检索Value的数据记录场景
-
-
列表的定义
# 字面量 [元素1,元素2,元素3,元素4] # 定义变量 变量名称 = [元素1,元素2,元素3,元素4] # 定义空列表 变量名称 = [] 变量名称 = list()
-
列表索引
- 正向索引
- 反向索引
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/818725fc702149d6985fabd6fb8d1c09.png#pic_center)
-
嵌套索引
-
列表常见操作方法
-
查询元素下标
语法:列表.index(元素)
my_list = ['python','java','javaScript'] print(my_list.index('python')) # 结果为0
-
修改特定位置(索引)的值
语法:列表[下标] = 值
my_list = [1,2,3] my_list[1] = 5 print(my_list) # 结果:[1,5,3]
-
插入元素
语法:列表.insert(下标, 元素)
my_list = [1,2,3] my_list.insert(1,'python') print(my_list) # 结果:[1,'python',2,3]
-
追加元素到列表尾部
语法:列表.append(元素)
my_list = [1,2,3] my_list.append('python') print(my_list) # 结果:[1,2,3,'python']
-
添加其他数据容器的元素
语法:列表.extend(其它数据容器)
my_list = [1,2,3] my_list.extend([4,5,6]) print(my_list) # 结果:[1,2,3,4,5,6]
-
删除元素
语法1:del 列表[下标]
语法2:列表.pop(下标)
my_list = [1,2,3] # 方式1 del my_list[0] print(my_list) # 结果:[2,3] # 方式2 my_list.pop(0) print(my_list) # 结果:[2,3]
-
删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)
# 删除元素 remove():删掉元素在列表中的第一个匹配项 my_list = ['Apple', 'Tencent', 'Tesla', 'NIO'] my_list.remove('Apple') print(f"通过remove方法移除后列表为:{my_list}") # 通过remove方法移除后列表为:['Tencent', 'Tesla', 'NIO']
-
清空列表内容
语法:列表.clear()
# 清空列表 clear(): my_list.clear() print(f"清空后的列表:{my_list}") # 清空后的列表:[]
-
统计某元素在列表内的数量
语法:列表.count(元素)
my_list = ['Apple', 'Tencent', 'Tesla', 'NIO'] count = my_list.count('Tencent') print(f"列表中'Tencent'的数量为:{count}") # 列表中'Tencent'的数量为:1
-
统计列表内有多少元素
语法:len(列表)
# 统计列表中元素的总数量 count = len(my_list) print(f"列表元素一共有{count}个") # 列表元素一共有4个
-
总结
编号 使用方式 作用 1 列表.append(元素) 向列表中追加一个元素 2 列表.extend(容器) 将数据容器的内容依次取出,追加到列表尾部 3 列表.insert(下标, 元素) 在指定下标处,插入指定的元素 4 del 列表[下标] 删除列表指定下标元素 5 列表.pop(下标) 删除列表指定下标元素 6 列表.remove(元素) 从前向后,删除此元素第一个匹配项 7 列表.clear() 清空列表 8 列表.count(元素) 统计此元素在列表中出现的次数 9 列表.index(元素) 查找指定元素在列表的下标找不到报错ValueError 10 len(列表) 统计容器内有多少元素
-
-
列表的遍历
- for循环
- while循环
Chapter 7 元组tuple
-
元组的定义
# 定义元组的字面量 (元素,元素,元素,元素) # 定义元组变量 变量名称 = (元素,元素,元素,元素) # 定义空元组 变量名称 = () 变量名称 = tuple()
-
元组的常见操作方法
-
总结
编号 方法 作用 1 index() 查找某个数据,如果数据存在返回对应的下标,否则报错 2 count() 统计某个数据在当前元组出现的次数 3 len(元组) 统计元组内的元素个数 -
查找某个数据
# 元组的查找 t6 = ('Apple', 'Huawei', 'Xiaomi') index = t6.index('Apple') print(f"t6寻找Apple的下标为:{index}")
-
统计元素出现次数
t6 = ('Apple', 'Huawei', 'Xiaomi') count = t6.count('Huawei') print(f"t6中Huawei出现的次数:{count}")
-
统计元组的长度
count = len(t6) print(f"t6的长度为:{count}")
-
-
元组操作的注意事项
- 不可以直接修改元组的内容
- 可以修改元组内list的内容
- 不可以替换其中的list为其他list或其他类型
Chapter 8 序列切片
-
基本定义
-
序列:内容连续、有序,可使用下标索引的一类数据容器
-
序列包括:列表、元组、字符串
-
- 切片:从一个序列中,取出一个子序列
-
切片操作
-
语法:序列[起始下标:结束下标:步长]
my_list = [1, 2, 3, 4, 5] new_list = my_list[1:4] # 下标1开始,下标4(不含)结束,步长1 print(new_list) # 结果:[2, 3, 4] my_tuple = (1, 2, 3, 4, 5) new_tuple = my_tuple[:] # 从头开始,到最后结束,步长1 print(new_tuple) # 结果:(1, 2, 3, 4, 5) my_list = [1, 2, 3, 4, 5] new_list = my_list[::2] # 从头开始,到最后结束,步长2 print(new_list) # 结果:[1, 3, 5] my_str = "12345" new_str = my_str[:4:2] # 从头开始,到下标4(不含)结束,步长2 print(new_str) # 结果:"13"
my_str = "12345" new_str = my_str[::-1] # 从头(最后)开始,到尾结束,步长-1(倒序) print(new_str) # 结果:"54321" my_list = [1, 2, 3, 4, 5] new_list = my_list[3:1:-1] # 从下标3开始,到下标1(不含)结束,步长-1(倒序) print(new_list) # 结果:[4, 3] my_tuple = (1, 2, 3, 4, 5) new_tuple = my_tuple[:1:-2] # 从头(最后)开始,到下标1(不含)结束,步长-2(倒序) print(new_tuple) # 结果:(5, 3)
-
-
注意事项
- 结束下标是不含的
Chapter 9 集合set
-
集合的定义
# 定义字面量 {元素1,元素2,元素3,元素4} # 定义集合变量 变量名称 = {元素1,元素2,元素3,元素4} # 定义空集合 变量名称 = set()
-
集合的常见操作
-
添加新元素
语法:集合.add(元素)
# 添加新元素 my_set.add('Apple') print(f"添加后的集合:{my_set}")
-
移除元素
语法:集合.remove()
# 移除新元素 my_set.remove('Apple') print(f"删除后的集合:{my_set}")
-
随机取出元素
语法:集合.pop()
element = my_set.pop() print(f"随机取出的元素:{element}")
-
清空集合
语法:集合.clear()
# 清空集合 my_set.clear() print(f"清空后的集合:{my_set},类型:{type(my_set)}")
-
取出两个集合的差集
语法:集合1.difference(集合2)
# 取两个集合的差集 set1 = {1, 2, 3, 4} set2 = {1, 3, 5, 7} set3 = set1.difference(set2) print(f"在集合set1中与set2的差集:{set3}")
-
消除两个集合的差集
语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
set1.difference_update(set2) print(f"消除差集后set1的结果:{set1}") # 消除差集后set1的结果:{2, 4} print(f"消除差集后set2的结果:{set2}") # 消除差集后set2的结果:{1, 3, 5, 7}
-
2个集合合并
语法:集合1.union(集合2)
注意:得到新集合,集合1和集合2不变
# 合并 set3 = set1.union(set2) print(f"合并后集合:{set3}") # 合并后集合:{1, 2, 3, 4, 5, 7}
-
查看集合的元素数量
语法:len(集合)
# 统计集合元素的数量 count = len(set3) print(f"set3集合内的元素数量有:{count}") # set3集合内的元素数量有:6
-
总结
编号 操作 说明 1 集合.add(元素) 集合内添加一个元素 2 集合.remove(元素) 移除集合内指定的元素 3 集合.pop() 从集合中随机取出一个元素 4 集合.clear() 将集合清空 5 集合1.difference(集合2) 得到一个新集合,内含2个集合的差集原有的2个集合内容不变 6 集合1.difference_update(集合2) 在集合1中,删除集合2中存在的元素集合1被修改,集合2不变 7 集合1.union(集合2) 得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变 8 len(集合) 得到一个整数,记录了集合的元素数量
-
-
集合特点总结
- 数据是无序存储的(不支持下标索引)
- 不允许重复数据存在
- 可以修改
Chapter 10 字典dict
-
字典的定义
# 定义字典字面量 {key1: value1, key2: value2, key3: value3} # 定义字典变量 my_dict = {key1: value1, key2: value2, key3: value3} # 定义空字典 my_dict = {} my_dict = dict()
-
字典常见操作
-
获取数据
语法:字典[key]
# 获取数据 my_dict = {'周杰伦': 88, '林俊杰': 90, '薛之谦': 75} score = my_dict['周杰伦'] print(f"周杰伦的分数是:{score}")
-
新增元素
语法:字典[key] = value
my_dict = {'周杰伦': 99, '林俊杰': 88, '薛之谦': 77} # 新增元素 my_dict['五月天'] = 79 print(f"更新后的集合:{my_dict}")
-
更新元素
语法:字典[key] = value
# 更新元素 my_dict['薛之谦'] = 82
-
删除元素
语法:字典.pop(Key)
结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除
# 删除元素 score = my_dict.pop('周杰伦') print(f"移除周杰伦的考试分数为:{score},移除后字典为:{my_dict}")
-
清空字典
语法:字典.clear()
my_dict.clear() # 结果:{}
-
获取全部的keys
语法:字典.keys()
# 获取key my_dict_key = my_dict.keys() print(f"字典的所有key为:{my_dict_key},类型为:{type(my_dict_key)}")
-
遍历字典
语法:语法:for key in 字典.keys()
# 遍历字典 for key in my_dict_key: print(f"字典的key为:{key},value为:{my_dict[key]}")
-
计算字典内的全部元素(键值对)数量
语法:len(字典)
print(len(my_dict))
-
总结
编号 操作 说明 1 字典[Key] 获取指定Key对应的Value值 2 字典[Key] = Value 添加或更新键值对 3 字典.pop(Key) 取出Key对应的Value并在字典内删除此Key的键值对 4 字典.clear() 清空字典 5 字典.keys() 获取字典的全部Key,可用于for循环遍历字典 6 len(字典) 计算字典内的元素数量
-
Chapter 11 数据容器的通用操作
-
统计功能
-
统计容器的元素个数
语法:len(容器)
my_list = [1, 2, 3] my_tuple = (1, 2, 3, 4, 5) my_str = "itiheima" print(len(my_list)) # 结果3 print(len(my_tuple)) # 结果5 print(len(my_str)) # 结果7
-
统计容器的最大元素
语法:max(容器)
my_list = [1, 2, 3] my_tuple = (1, 2, 3, 4, 5) my_str = "itiheima" print(max(my_list)) # 结果3 print(max(my_tuple)) # 结果5 print(max(my_str)) # 结果t
-
统计容器的最小元素
语法:min(容器)
my_list = [1, 2, 3] my_tuple = (1, 2, 3, 4, 5) my_str = "itiheima" print(min(my_list)) # 结果1 print(min(my_tuple)) # 结果1 print(min(my_str)) # 结果a
-
-
通用转换功能
- list(容器):将给定容器转换为列表
- str(容器):将给定容器转换为字符串
- tuple(容器):将给定容器转换为元组
- set(容器):将给定容器转换为集合
-
通用排序功能
-
将给定容器进行排序
语法:sorted(容器, [reverse=True])
注意:所有容器排序后都会得到list对象
-
-
总结
功能 描述 通用for循环 遍历容器(字典是遍历key) max 容器内最大元素 min() 容器内最小元素 len() 容器元素个数 list() 转换为列表 tuple() 转换为元组 str() 转换为字符串 set() 转换为集合 sorted(序列, [reverse=True]) 排序,reverse=True表示降序得到一个排好序的列表