# 2.基础语法:变量、数据类型、运算符、字符串处理
print("=" * 60)
print("--------------- 1. 变量 ---------------")
# 变量:存储数据,不用声明类型,赋值即定义
a = 10
b = 3.14
name = "张三"
is_ok = True
# 多变量赋值
x, y, z = 100, 200, 300
m = n = 888
print(f"a={a}, b={b}, name={name}, is_ok={is_ok}")
print(f"x={x},y={y},z={z}, m=n={m}")
print("\n--------------- 2. 基础数据类型 ---------------")
"""
常用基础类型
int 整数
float 浮点数
bool 布尔 True/False
str 字符串
None 空值
"""
num_int = 66
num_float = 9.99
flag = False
s = "hello python"
none_val = None
print(f"num_int 类型:{type(num_int)} 值:{num_int}")
print(f"num_float 类型:{type(num_float)} 值:{num_float}")
print(f"flag 类型:{type(flag)} 值:{flag}")
print(f"s 类型:{type(s)} 值:{s}")
print(f"none_val 类型:{type(none_val)} 值:{none_val}")
# 类型转换
str_num = str(123) # int转字符串
int_num = int("456") # 字符串转整数
float_num = float("7.8")# 字符串转浮点数
print(f"\n类型转换结果:str_num={str_num},int_num={int_num},float_num={float_num}")
print("\n---------------3.运算符---------------")
# 算术运算符 + - * / //取整 %取余 **幂运算
num1, num2 = 7, 3
print(f"num1={num1}, num2={num2}")
print(f"加法 7+3 = {num1 + num2}")
print(f"减法 7-3 = {num1 - num2}")
print(f"乘法 7*3 = {num1 * num2}")
print(f"除法 7/3 = {num1 / num2}")
print(f"地板除(取整数)7//3 = {num1 // num2}")
print(f"取余数 7%3 = {num1 % num2}")
print(f"幂运算 7**3 = {num1 ** num2}")
# 比较运算符 > < >= <= == !=,返回布尔
print("\n---比较运算符---")
print(f"10 > 5 : {10 > 5}")
print(f"10 == 10: {10 == 10}")
print(f"10 != 20: {10 != 20}")
# 逻辑运算符 and or not
print("\n---逻辑运算符---")
print(f"True and False : {True and False}")
print(f"True or False : {True or False}")
print(f"not True : {not True}")
# 赋值运算符 += -= *= /=
c = 5
c += 2 # c = c+2
print(f"\nc +=2 → c={c}")
print("\n---------------4.字符串处理 str---------------")
# 字符串 单引号、双引号、三引号
s1 = '我是单引号字符串'
s2 = "我是双引号字符串"
s3 = '''三引号
可以写多行
字符串内容'''
print(s1)
print(s2)
print(s3)
# 字符串索引切片 str[起始:结束:步长]
text = "ABCDEFG"
print(f"\n字符串text={text}")
print(f"text[0]第一个字符:{text[0]}")
print(f"text[-1]最后一个字符:{text[-1]}")
print(f"切片text[1:4]:{text[1:4]}")
print(f"倒序 text[::-1]:{text[::-1]}")
# 字符串常用内置方法
my_str = " hello Python "
print(f"\n原始字符串:|{my_str}|")
print(f"strip()去除首尾空格:|{my_str.strip()}|")
print(f"upper()全部大写:{my_str.upper()}")
print(f"lower()全部小写:{my_str.lower()}")
print(f"replace替换:{my_str.replace('Python','Java')}")
print(f"split分割字符串:{my_str.split()}")
# f-string格式化
age = 22
city = "喀什"
info = f"年龄:{age},城市:{city}"
print(f"f-string格式化:{info}")
# 字符串拼接
str_a = "你好"
str_b = "世界"
concat = str_a + str_b
print(f"字符串+拼接:{concat}")
# ====================== 3.容器:list、tuple、dict、set Python核心 ======================
print("\n" + "="*60)
print("================ 容器类型学习 ================")
print("\n--------------- 1.list 列表【可变,有序,允许重复】---------------")
# list 列表,方括号[],可以存任意类型,可增删改查
my_list = [10, 20, 30, "苹果", True]
print(f"原始列表 my_list = {my_list}")
# 索引取值
print(f"my_list[0] = {my_list[0]}")
print(f"my_list[-2] = {my_list[-2]}")
# 切片
print(f"切片 my_list[1:4] = {my_list[1:4]}")
# 增删改
my_list.append(999) # 末尾追加元素
print(f"append(999)之后:{my_list}")
my_list.insert(2, 666) # 指定索引位置插入
print(f"insert(2,666)之后:{my_list}")
my_list[0] = 111 # 修改指定索引元素
print(f"修改my_list[0]=111:{my_list}")
my_list.remove("苹果") # 删除指定值
print(f'remove("苹果"):{my_list}')
pop_val = my_list.pop() # 删除末尾,返回被删除的值
print(f"pop()弹出元素:{pop_val},列表现在:{my_list}")
# 常用函数
num_list = [5, 2, 9, 1]
print(f"\nnum_list={num_list}")
num_list.sort() # 排序
print(f"sort()升序排序 {num_list}")
print(f"len列表长度:{len(num_list)}")
print(f"max最大值:{max(num_list)} min最小值:{min(num_list)}")
# 遍历列表
print("\nfor循环遍历list:")
for item in num_list:
print(f" -> {item}")
print("\n---------------2.tuple 元组【不可变,有序,允许重复】---------------")
# tuple圆括号(),元组一旦定义,元素不能修改、新增、删除;只能读取
my_tuple = (1, 2, 3, "香蕉")
print(f"元组 my_tuple={my_tuple}")
print(f"索引取值 my_tuple[2]={my_tuple[2]}")
print(f"切片 my_tuple[0:3]={my_tuple[0:3]}")
print(f"元组长度 len(my_tuple)={len(my_tuple)}")
# 注意:只有一个元素的元组必须加逗号
t1 = (10,)
print(f"单元素元组 type(t1)={type(t1)}")
# 元组可以转列表实现修改
temp_list = list(my_tuple)
temp_list.append(88)
new_tuple = tuple(temp_list)
print(f"元组转list修改再转回tuple:{new_tuple}")
print("\n---------------3.dict 字典【key:value 键值对;无序(3.7+保持插入顺序);key不可重复】---------------")
# dict大括号{} key:value;key必须不可变(int,str,tuple);value任意类型
my_dict = {
"name": "小明",
"age": 18,
"city": "喀什",
"hobby": ["看书","跑步"]
}
print(f"原始字典 my_dict = {my_dict}")
# 获取值
print(f"通过key取值 my_dict['name'] = {my_dict['name']}")
print(f"get取值(安全,key不存在不会报错) my_dict.get('age') = {my_dict.get('age')}")
# 新增 / 修改key,key存在就是修改,不存在就是新增
my_dict["age"] = 19
my_dict["gender"] = "男"
print(f"修改+新增后字典:{my_dict}")
# 删除
del my_dict["city"]
pop_value = my_dict.pop("hobby")
print(f"del删除city,pop删除hobby返回:{pop_value},字典:{my_dict}")
# 字典三大视图 keys() values() items()
print("\n字典keys所有键:", list(my_dict.keys()))
print("字典values所有值:", list(my_dict.values()))
print("字典items键值对:", list(my_dict.items()))
# for循环遍历字典
print("\n遍历字典 items():")
for k, v in my_dict.items():
print(f"键:{k} → 值:{v}")
print("\n---------------4.set 集合【无序、元素唯一,自动去重】---------------")
# set集合{},不能有重复元素;不支持索引;可增删
my_set = {1, 2, 2, 3, 3, 3, 4}
print(f"集合自动去重 my_set={my_set}")
# 空集合必须 set(),不能写{},{}是空字典
empty_set = set()
print(f"空集合 type(empty_set):{type(empty_set)}")
# 添加删除
my_set.add(99)
print(f"add(99)添加元素 {my_set}")
my_set.remove(2)
print(f"remove(2)删除元素 {my_set}")
# 集合运算 交集& 并集| 差集-
s_a = {1,2,3,4}
s_b = {3,4,5,6}
print(f"\ns_a={s_a}, s_b={s_b}")
print(f"交集 & (两者都有的):{s_a & s_b}")
print(f"并集 | (全部合并去重):{s_a | s_b}")
print(f"差集 - a里面有b没有:{s_a - s_b}")
# list快速去重技巧,转set再转回list
dup_list = [1,1,2,2,3,3]
no_dup = list(set(dup_list))
print(f"\n列表去重:原始{dup_list} →去重后 {no_dup}")
print("\n" + "="*60)
print("全部代码执行完毕!以上覆盖基础语法+四大容器全部核心API")