目录
程序是用来处理数据的,变量是用来存储数据的
一、变量的定义
(1)在python中,每个变量 在使用前都必须赋值, 变量 赋值以后 该变量才会被创建
(2)等号 (=)用来给变量赋值。等号左边是变量名称,右边是存储在变量中的值
写法: 变量名 = 值
变量定义之后,就可以使用了
tips:
① 已经定义的变量可以直接使用
② 变量名 只有在 第一次出现 才是 定义变量
③ 变量名 再次出现,不是定义变量,而是直接使用之前定义过的变量
④ 在开发程序中,可以修改之前定义变量中保存的值
二、变量的命名规则
- 变量名只能包含字母、数字和下划线。
- 变量名不能以数字作为开头
- 不要将python关键字和函数名用作变量名
- 变量名既简短又有意义
- 多个单词的时候用 下划线 连接,或者每个单词的第一个字母大写即可
python中查阅关联字
import keyword
print(keyword.kwlist)
三、变量的类型
(1)数字型变量
整型(int)、浮点型(float)、布尔型(bool)、复数型(主要用于科学计算)、
(2)非数字型变量
列表、元组、字典、字符串
tips:
① 在python中,定义变量时不需要是定变量的类型的
② 在运行的时候,python解释器会根据赋值语句等号右侧的数据自动遇到处变量中保存数据的准确类型
③ 如何获取变量类型:type() 函数,type(变量名)
四、变量的输入输出
- 输入:就是 用代码 获取 用户通过 键盘 输入的信息
- input 函数用来获取用户在 键盘上输入的信息
1、input() 函数实现键盘输入
- 用户输入的任何内容Python都会认为是一个 字符串
- 语法:字符串变量 = input("提示信息")
2、类型转化函数
- int(x):将x转换为整型
- int(float):将x转换为浮点型
3、变量的格式化输出
- print函数可以将信息输出到控制台
- 如果希望输出文字信息的同事,一起输出数据 ,就需要用到格式化操作符
- %被称为格式化操作符,专门用户处理字符串的格式化
- 包含 % 的字符串,被称为 格式化的字符串
- %和不同 字符 连用,不同类型的数据 需要使用不同的格式化字符
常见的格式化字符
- %s :字符串
- %d:有符号十进制整数
- %06d:表示输出的整数显示位数,不足的地方用0不全;长度超过的,显示原数
- %f:浮点数;%.2f 表示保留小数点后两位
- %%:输出百分号
输出格式化语法
- print("格式化字符串" % 变量1)
- print("格式化字符串" % (变量1,变量2,···))
五、非数字型变量
- 列表(List)是一种有序和可更改的集合。允许重复的成员。
- 元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。
- 词典(Dictionary)是一个无序,可变和有索引的集合。没有重复的成员。
- 集合(Set)是一个无序和无索引的集合。没有重复的成员。
- 字符串
1、列表
(1)定义列表
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
new_stu_name = ["王力宏", "李现"]
(2)从列表中取数
# 取出指定一个数据
print(stu_name[0]) # 输出:张三
# 取出一个范围 ,例如取出第二项到第四项
# list[n:m] 取出索引值在 n 和 m-1 之间的所有项
print(stu_name[1:4]) # 输出:['李四', '王麻子', '黎明']
print(stu_name[-3:-1]) # 输出:['王麻子', '黎明']
# 指定数据的索引位置
print(stu_name.index("张三"))
(2) 增加
# 末尾增加项目 append()
stu_name.append("小明")
print(stu_name) # 输出:['张三', '李四', '王麻子', '黎明', '珍妮', '小明']
# 指定位置增加项目 insert()
stu_name.insert(1, "顾佳")
print(stu_name) # 输出:['张三', '顾佳', '李四', '王麻子', '黎明', '珍妮', '小明']
# 追加一个新列表 extend()
stu_name.extend(new_stu_name)
print(stu_name) # 输出:['张三', '顾佳', '李四', '王麻子', '黎明', '珍妮', '小明', '王力宏', '李现']
(2) 修改
# 修改指定位置项: 列表名[索引] = 需要修改的结果
stu_name[1] = "路遥" #
print(stu_name) # 输出:['张三', '路遥', '李四', '王麻子', '黎明', '珍妮', '小明', '王力宏', '李现']
(3) 删除项目
# 删除指定索引的数据 :del 列表名[索引]
del stu_name[0]
print(stu_name) # 输出:['路遥', '李四', '王麻子', '黎明', '珍妮', '小明', '王力宏', '李现']
# 删除列表
del new_stu_name
# 清空列表
new_stu_name = ["王力宏", "李现"]
print(new_stu_name)
new_stu_name.clear()
print(new_stu_name)
# 删除第一个出现的指定数据remove()
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
stu_name.remove("张三")
print(stu_name)
# 删除列表最后一项
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
stu_name.pop()
print(stu_name)
# 删除指定索引数据
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
print(stu_name)
stu_name.pop(1)
print(stu_name)
(4) 排序
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
print(stu_name)
stu_name.sort() # 升序排列
print(stu_name)
stu_name.sort(reverse=True) # 降序排列
print(stu_name)
stu_name.reverse() # 逆序排列
print(stu_name)
(5) 遍历列表
stu_name = ["张三", "李四", "王麻子", "黎明", "珍妮"]
for x in stu_name:
print(x)
(6) 列表的其他练习#
# 列表合并
list1 = ["apple", "banana", "cherry"]
list2 = ["王力宏", "李现"]
new_list = list1 + list2
print(new_list)
列表函数汇总
(1)按照索引取出列表中的数据
- 列表名称[n]:取出索引为n的项。
- 列表名称[n:m]:取出索引为n到m-1之间的所有项。(m>n>=0)
- 列表名称[n:m]:取出倒数第|n| 至 倒数第|m|+1项。(m>n>=0)
(2)添加
- append()函数:在列表末尾增加项目。用法:列表名.append(数据)
- insert()函数:在指定位置增加项目。用法:列表名.insert(索引,数据)
- extend()函数:将列表2追加至列表。用法:列表名.extend(列表2)
(3)修改
- 修改指定位置项: 列表名[索引] = 需要修改的结果
(4)删除
- del 列表名[索引]:删除指定索引的值
- del 列表名: 删除列表
- remove() 函数:删除第一个出现的指定数据。用法:列表名.remove(数据)
- pop() 函数:
- 删除最后一项。用法:列表名.pop()
- 删除指定索引数据。用法:列表名.pop(索引)
- clear函数:清空列表。用法:列表名.clear()
(5) 排序
- 列表名.sort() : 升序排列
- 列表名.sort(reverse = True) : 降序排列
- 列表名.reverse() : 逆序排列
(6)统计
- len(列表名):求列表长度
- 列表名.count(数据):统计列表中指定数据出现的次数
(7)列表的遍历
使用for循环
for x in 列表名:
print(x)
(8) 列表的复制
定义一个列表:this_list = ["apple", "banana", "cherry"]
方法一:my_list = list(this_list)
方法二:my_list_1 = this_list.copy()
方法三:my_list_2 = this_list
注意:
方法一和方法二 是真正的复制,新产生的列表和原始列表是相互独立的,两个列表做的更改互不影响
方法三只是一种赋值,my_list_2 只是对this_list的引用,当this_list做更改后,my_list_2也会相应的更改。
(9)列表合并
list1 = ["apple", "banana", "cherry"]
list2 = ["王力宏", "李现"]
new_list = list1 + list2
print(new_list)
2、元组
# 元组:元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。用圆括号表示
# 由于元组不能更改,所以没有增加、删除、修改的操作
# 定义元组(两种方法均可)
stu_name = ("张三", "李四", "王麻子")
stu_name_tuple = tuple(("张三", "李四", "王麻子"))
# 元组表中取数
# 取出指定一个数据
print(stu_name[0]) # 输出:张三
# 取出一个范围 ,例如取出第二项到第四项
# list[n:m] 取出索引值在 n 和 m-1 之间的所有项
print(stu_name[1:4]) # 输出:['李四', '王麻子', '黎明']
print(stu_name[-3:-1]) # 输出:['王麻子', '黎明']
# 指定数据的索引位置
print(stu_name.index("张三"))
# 计算元组中某个值出现的次数
print(stu_name.count("张三"))
# 元组与列表的转化
a = ("nan", "xiaom", "ming")
b = list(a)
c = tuple(b)
print(a)
print(b)
print(c)
# 元组的遍历,同列表
for x in a:
print(x)
# 判断元组中是否包含指定数据
a = ("a", "b", "c")
if "nanxiaomin" in a:
print("有")
else:
print("没有")
# 元组的长度 len()
a = ("a", "b", "c")
print(len(a))
# 元组合并
a = ("a", "b", "c")
b = ("ni", "zhen", "hao")
print(a + b)
元组的常用操作
(1)取值操作
- 元组名称[n]:取出索引为n的项。
- 元组名称[n:m]:取出索引为n到m-1之间的所有项。(m>n>=0)
- 元组名称[n:m]:取出倒数第|n| 至 倒数第|m|+1项。(m>n>=0)
- 元组名称.index(数据):取出制定数据的索引位置
(2)计算元组中某个值出现的次数
- print(元组名称.count(数据))
3、字典
# 字典:字典是一个无序、可变、有索引的集合。字典用花括号{}表示,拥有键和值。
# 创建一个字典
my_dict = {
"name": "Jane",
"age": 28,
"birth": 19920509
}
my_dict_dict = dict(name="July", age=20, birth=20000509)
# 字典的常见操作
# 1、获取指定键对应的值
print(my_dict["name"])
print(my_dict.get("name"))
# 2、修改值
my_dict["name"] = "July" # 修改键name的值
print(my_dict)
# 3、增加项目
my_dict["sex"] = "女" # 直接输入想增加的键值对即可
print(my_dict)
my_dict.update({"high": 158})
print(my_dict)
# 4、删除项目
# (1) pop() 删除指定键名的项
my_dict.pop("sex") # 删除键sex的项
print(my_dict)
# (2)popitem() 删除最后插入的项目(3.7之前的版本,删除随机项目)
my_dict.popitem()
print(my_dict)
# (3)del 删除字典 或者 删除指定键名的项目
del my_dict["age"] # 删除键age的项目
print(my_dict)
# del my_dict # 删除键字典 my_dict
# (4) 清空字典
my_dict.clear()
print(my_dict)
# 4、字典的复制
my_dict = {
"name": "Jane",
"age": 28,
"birth": 19920509
}
# (1) copy()方法
my_dict1 = my_dict.copy()
print(my_dict)
print(my_dict1)
# (2) dict()方法
my_dict2 = dict(my_dict)
print(my_dict2)
# 5、 字典的遍历
# (1) for循环遍历,输出所有键名
for x in my_dict:
print(x)
for x in my_dict.keys():
print(x)
# (2) for循环遍历,输出所有值
for x in my_dict:
print(my_dict[x])
for x in my_dict.values():
print(x)
# (3) 遍历键和值 items()
for x,y in my_dict.items():
print(x,y)
# 6、字典的长度
print(len(my_dict)) # 返回字典的项目数
# 7、字典的嵌套
stu1 = {
"name": "Jane",
"age": 28,
"birth": 19920509
}
stu2 = dict(name="July", age=20, birth=20000509)
my_class ={
"stu1": stu1,
"stu2": stu2
}
print(stu1)
print(stu2)
print(my_class)
4、集合
# 集合(set):集合是无序和无索引的。用花括号{}表示。无重复成员 # 集合是无序的,所以不能用索引来访问 # 创建一个集合 my_set = {"apple", "banana", "cherry"} my_set1 = set(("apple", "banana", "cherry")) # 集合的常见操作 # 1、遍历集合 for x in my_set: print(x) # 2、增加项目 # (1) add() 方法,增加一个项 my_set.add("orange") print(my_set) # (2) update() 方法,增加多个项 my_set.update(["orange", "mango", "grapes"]) print(my_set) # 3、删除项目 # (1) remove(),如果要删除的项目不存在,会报错 my_set.remove("orange") print(my_set) # (2)discard() my_set.discard("orange") print(my_set) # (3)pop() 返回被删除的项。因为集合是无序的,所有pop()相当于随机删除 my_set.pop() print(my_set) # (4) 清空集合 clear() my_set.clear() print(my_set) # (5)彻底删除集合 del my_set # print(my_set) # 此处,因为my_set已经被删除,所以执行会报错 # 4、集合的合并 set1 = {1, 2, 3, 4} set2 = {9, 4, 5, 7} set3 = set1.union(set2) set1.update(set2) print(set3) print(set1) # 5、集合的交集、差集等计算,用到更新