← Python 学习路线(共 8 章)

第 2 章 变量、类型与字符串

red wenzi · 2026-09-15 · 编程语言 · Python · 📖 预计阅读 7 分钟 · 共 2 道练习
🎯 本章你会学到:动态类型、f-string、切片:Python 最常用的三件事。建议边读边敲,每节练习先自己做,再展开答案对照。

Python 的变量是贴在对象上的名字,类型跟着值走。同一个名字可以先指向整数、再指向字符串——但每次运算时类型必须匹配,否则立刻报错。

类型与 f-string
name = "Ann"
score = 90
ratio = score / 100          # 除法总是得到 float

print(f"{name} scored {score}, ratio={ratio:.2f}")
print(type(score).__name__, type(ratio).__name__)
print(7 // 2, 7 % 2, 2 ** 10)   # 整除、取余、幂
print(0.1 + 0.2)                # 浮点精度问题依然存在
运行结果
Ann scored 90, ratio=0.90
int float
3 1 1024
0.30000000000000004

字符串与切片

字符串常用操作
text = "  Hello, Python World  "

print(repr(text.strip()))          # 去两端空白
print(text.strip().lower())
print(text.strip().split(", "))    # 按分隔符切分成列表
print("-".join(["a", "b", "c"]))   # 列表拼回字符串

word = "python"
print(word[0], word[-1])           # 首字符、末字符
print(word[1:4], word[::-1])       # 切片、反转
运行结果
'Hello, Python World'
hello, python world
['Hello', 'Python World']
a-b-c
p n
yth nohtyp
操作写法说明
格式化f"{x:.2f}"f-string,最推荐的拼接方式
切片s[1:4] / s[::-1]左闭右开;步长 -1 表示反转
查长度len(s)字符串、列表、字典都通用
去空白s.strip() / lstrip() / rstrip()返回新字符串
切分与拼接s.split(sep) / sep.join(seq)处理文本的两个主力
类型转换int(s) / float(s) / str(x)转换失败抛 ValueError
⚠️ 易错点 字符串不可变:s.strip()s.upper() 都返回新字符串,原来的 s 不会变。
⚠️ 易错点 1 + "2" 会抛 TypeError。Python 不会帮你隐式转换——这是动态类型不等于弱类型的关键区别。

✍️ 本节练习

2.1必做圆的面积

读入半径 r(浮点数),输出面积,保留 2 位小数。圆周率用 3.14159265。

输入 一个实数 r。

输出 一行 area=面积(2 位小数)。

样例输入
2
样例输出
area=12.57

💡 提示 float(input()) 读入小数;f-string 里 {x:.2f} 控制小数位。

✅ 查看参考答案与解析
r = float(input())
area = 3.14159265 * r * r
print(f"area={area:.2f}")

解析 {area:.2f} 会四舍五入到 2 位小数;这种格式化方式比 %format() 都更易读。

2.2挑战句子统计与反转

读入一行句子,输出单词数、最长的单词(并列取最先出现的)和整句反转后的结果。

输入 一行英文句子。

输出 三行:words=longest=reversed=

样例输入
hello world python
样例输出
words=3
longest=python
reversed=nohtyp dlrow olleh

💡 提示 split() 切词,max(words, key=len) 找最长,切片 [::-1] 反转整句。

✅ 查看参考答案与解析
sentence = input()
words = sentence.split()

longest = max(words, key=len)
print(f"words={len(words)}")
print(f"longest={longest}")
print(f"reversed={sentence[::-1]}")

解析 maxkey=len 表示按长度比较,并列时返回最先出现的那个——这类按规则取最值的写法比手写循环短得多。

📚 本文概念都在知识大全:

Python · pip 与虚拟环境 · 列表/字典/集合 · 推导式 · f-string · 异常处理 · dataclass · pandas · 模块与包