今天学习字典、集合、函数和参数
1、 字典(Dictionary)
# 创建字典:名字 → 年龄
ages = {"小明": 18, "小红": 20, "小蓝": 18}
# 通过键访问值
print(ages["小明"]) # 输出:18
# 添加新键值对
ages["小绿"] = 19
print(ages) # {'小明': 18, '小红': 20, '小蓝': 18, '小绿': 19}
# 键重复时,后写的会覆盖前面的
ages["小明"] = 25
print(ages) # 小明年龄变成25
2、集合(Set)
# 创建集合(自动去重)
fruits = {"苹果", "香蕉", "苹果", "橙子"}
print(fruits) # {'苹果', '香蕉', '橙子'}
# 检查元素是否存在
print("苹果" in fruits) # True
print("西瓜" in fruits) # False
# 添加元素
fruits.add("西瓜")
print(fruits) # {'苹果', '香蕉', '橙子', '西瓜'}
3、字符串格式化
# f-string 格式化(推荐)
name = "小明"
age = 18
print(f"{name}今年{age}岁") # 小明今年18岁
# 格式化数字保留两位小数
price = 3.1415
print(f"价格:{price:.2f}元") # 价格:3.14元
# 旧版格式化方法(了解即可)
print("{}今年{}岁".format(name, age)) # 同样输出
4、函数定义
# 定义函数:计算两个数之和
def add(a, b):
return a + b
# 调用函数
result = add(3, 5)
print(result) # 8
# 没有返回值的函数
def greet(name):
print(f"你好,{name}!")
greet("小红") # 输出:你好,小红!
5、参数传递
# 位置传参(按顺序)
def make_coffee(type, size):
print(f"制作一杯{size}的{type}咖啡")
make_coffee("拿铁", "大杯") # 制作一杯大杯的拿铁咖啡
# 关键字传参(明确指定)
make_coffee(size="中杯", type="美式") # 制作一杯中杯的美式咖啡
# 默认参数(size不传时用默认值)
def make_coffee(type, size="中杯"):
print(f"制作一杯{size}的{type}咖啡")
make_coffee("卡布奇诺") # 制作一杯中杯的卡布奇诺咖啡
6、作用域
# 全局变量
global_var = "我是全局的"
def test():
# 局部变量
local_var = "我是局部的"
print(local_var) # 正常访问
print(global_var) # 能访问全局变量
test()
# print(local_var) # 报错!外部无法访问局部变量
# 修改全局变量需要声明
def change_global():
global global_var
global_var = "我被修改了"
change_global()
print(global_var) # 输出:我被修改了
7、综合运用示例
# 定义函数:根据名字查年龄(用字典)
def find_age(name, data):
return data.get(name, "查无此人")
ages = {"小明": 18, "小红": 20}
print(find_age("小明", ages)) # 18
print(find_age("小蓝", ages)) # 查无此人
# 用集合去重后格式化输出
names = ["小明", "小红", "小明", "小蓝"]
unique_names = set(names)
print(f"去重后的名字:{', '.join(unique_names)}") # 小明, 小红, 小蓝
总结:
- 把字典想象成查通讯录,集合像整理唯一物品
- 函数是预先写好的指令集,参数是给指令的配置选项
- 作用域就像不同房间的规则,全局变量是客厅物品,局部变量是卧室私人物品