这一章把“和电脑对话”的词汇量真正攒起来:字符串、列表、字典、条件判断、循环、函数。它们是所有 Python 程序的积木,也是后面数据处理与自动化的地基。
s = "码上问学"
print(len(s)) # 长度:4(一个中文字算一个字符)
print(s[0]) # 取第 1 个字符:码
print(s[0:2]) # 切片:取前 2 个 → 码上
# 常用“整理文字”的方法
print(" hello ".strip()) # 去掉两端空格 → hello
print("a-b-c".split("-")) # 按 - 切开 → ['a','b','c']
print("-".join(["x","y"])) # 用 - 连接 → x-y
print("Python".lower()) # 转小写 → python
# 转义字符:\n 换行、\t 制表符
print("第一行\n第二行")
print("姓名\t年龄") # \t 把两列对齐
# 原始字符串 r"...":反斜杠不当转义,写文件路径 / 正则最方便
print(r"C:\Users\name\file")
# f-string:把变量直接嵌进字符串,最推荐的格式化写法
name, score = "李华", 92
print(f"{name} 考了 {score} 分,评价:{'优秀' if score >= 90 else '良好'}")
# 编码:文字 ⇄ 字节(网络传输、存文件时要用)
b = "码上问学".encode("utf-8")
print(b) # 一串字节
print(b.decode("utf-8")) # 字节还原成文字
scores = [88, 92, 75, 100]
scores.append(60) # 追加一个元素
scores[0] = 90 # 改第 1 个
print(scores)
print("最高分:", max(scores))
print("平均分:", sum(scores) / len(scores))
point = (116.4, 39.9) # 元组:北京经纬度,定好不改
print("经度", point[0], "纬度", point[1])
fruits = ["苹果", "香蕉", "橙子"]
fruits.insert(1, "西瓜") # 在位置 1 插入
print(fruits) # ['苹果', '西瓜', '香蕉', '橙子']
last = fruits.pop() # 删最后一个并返回它
print("pop 出:", last, ",剩下:", fruits)
matrix = [[1, 2, 3], [4, 5, 6]] # 二维列表 = 一张表格
print(matrix[1][2]) # 第 2 行第 3 列 → 6
# 元组:定义后不能改(适合“固定的一组值”,如经纬度)
point = (116.4, 39.9)
try:
point[0] = 0
except TypeError as e:
print("报错:", e)
grade = {"张三": 90, "李四": 85, "王五": 77}
print(grade["张三"]) # 按键取值 → 90
grade["赵六"] = 95 # 新增一个
print("李四" in grade) # 判断键是否存在 → True
# 集合:自动去重(集合“无序”,打印顺序不固定,故用 sorted 排好再看)
tags = set(["Python", "Python", "数据", "数据", "自动化"])
print(sorted(tags)) # ['Python', '数据', '自动化']
grade = {"张三": 90, "李四": 85, "王五": 77}
for name, g in grade.items(): # 同时拿到“键”和“值”
print(name, "的分数是", g)
# 嵌套字典:一个学生有多门成绩
scores = {"张三": {"数学": 90, "英语": 88}, "李四": {"数学": 85, "英语": 92}}
print(scores["张三"]["数学"]) # 90
# 集合运算:共同好友 / 全部好友
a = {"小明", "小红", "小刚"}
b = {"小红", "小刚", "小强"}
print("共同好友:", sorted(a & b)) # 交集(集合无序,sorted 排好序看)
print("所有好友:", sorted(a | b)) # 并集
age = 17
if age >= 18:
print("已成年")
elif age >= 12:
print("青少年")
else:
print("儿童")
# 逻辑组合
score = 85
if score >= 60 and score < 90:
print("及格,继续加油")
# 三元表达式:一行写完“如果…否则…”
age = 17
label = "成年" if age >= 18 else "未成年"
print(label)
# 成员判断 in:在不在里面
if "Python" in ["Python", "Java", "Go"]:
print("会 Python 真好")
# 多档评级
score = 82
if score >= 90: level = "优秀"
elif score >= 75: level = "良好"
elif score >= 60: level = "及格"
else: level = "不及格"
print("等级:", level)
fruits = ["苹果", "香蕉", "橙子"]
for f in fruits: # 挨个取出
print("我喜欢吃", f)
# 带编号地遍历
for i, f in enumerate(fruits):
print(i, f) # 0 苹果 / 1 香蕉 / 2 橙子
# 重复 N 次
for n in range(1, 4): # 1,2,3
print(n, "的平方是", n * n)
# while:条件满足就一直跑
n = 1
while n <= 3:
print("第", n, "次")
n += 1
# break 提前退出 / continue 跳过本次
for x in range(1, 6):
if x % 2 == 0:
continue # 偶数跳过
if x > 4:
break # 大于 4 就停
print("奇数:", x)
# zip:同时遍历两个序列
names = ["张三", "李四"]
ages = [22, 25]
for name, age in zip(names, ages):
print(name, "今年", age)
def avg(numbers): # 定义一个函数,numbers 是参数
"""计算一串数字的平均分"""
return sum(numbers) / len(numbers)
data = [88, 92, 75, 100]
print("平均分:", avg(data)) # 调用函数
# 默认参数 & 任意参数
def greet(name, prefix="你好"):
return f"{prefix},{name}"
print(greet("李华"))
print(greet("Tom", "Hello"))
def greet(name, prefix="你好", times=1):
return (f"{prefix},{name}!") * times
print(greet("李华")) # 用默认 prefix / times
print(greet("Tom", "Hello", 2)) # 位置参数
print(greet("王芳", times=3)) # 关键字参数,顺序无所谓
# lambda:一行写的小函数,常配合 sorted / map
square = lambda x: x * x
print(square(5)) # 25
nums = [{"age": 22}, {"age": 19}, {"age": 25}]
print(sorted(nums, key=lambda d: d["age"])) # 按 age 从小到大
把本章所有积木拼起来:给定一份成绩,逐人判定等级,并统计整体情况。
def level(score):
if score >= 90: return "优秀"
if score >= 75: return "良好"
if score >= 60: return "及格"
return "不及格"
records = [("张三", 92), ("李四", 80), ("王五", 55), ("赵六", 68)]
total = 0
for name, s in records:
total += s
print(f"{name}:{s} 分,等级 {level(s)}")
print("全班平均分:", total / len(records))
1用 f-string 输出“某某 的体重是 xx kg”,变量自己起名。
2列表 nums = [3, 1, 4, 1, 5, 9, 2, 6],用三行分别求它的长度、最大值、去重后的元素个数。
3用字典存三个城市的温度,再用循环打印“城市:温度”。
提示:第 2 题用 len()、max() 和 set();第 3 题用 for k, v in d.items()。先自己写,再点开参考。
name, weight = "小明", 60
print(f"{name} 的体重是 {weight} kg")
nums = [3, 1, 4, 1, 5, 9, 2, 6]
print("长度:", len(nums))
print("最大:", max(nums))
print("去重后个数:", len(set(nums)))
temp = {"北京": 26, "上海": 30, "广州": 33}
for city, t in temp.items():
print(city, ":", t)