Python 入门阶段,最容易陷入 “看懂代码却写不出来” 的困境 —— 核心原因是没吃透 “代码逻辑” 和 “底层原理”。今天我整理了 7 个超实用的 Python 基础案例,覆盖字符串处理、循环计算、图形绘制、组合搭配等高频场景,每个案例都会拆解代码、讲解原理,帮你把基础打扎实。
案例 1:个性化字符串输出 —— 学会灵活拼接内容
需求
让用户输入名字和国家,输出 “世界这么大,XX 想去 XX 看看” 的个性化句子。
修正后代码(原代码有格式化语法小问题)
python
运行
# 获取用户输入:input()函数接收控制台输入,返回字符串类型
str1 = input("请输入一个人的名字:")
str2 = input("请输入一个人的国家:")
# 字符串格式化:用format()替换占位符,实现动态内容拼接
print("世界这么大, {}想去{}看看。".format(str1, str2))
关键原理
- input () 函数:用于获取用户从控制台的输入,无论输入数字还是文字,返回结果都是字符串类型(如果需要数字,后续需用 int ()/float () 转换)。
- 字符串格式化:
{}是占位符,format(str1, str2)会按顺序将 str1、str2 填入占位符。
也可以用更简洁的f-string写法:print(f"世界这么大, {str1}想去{str2}看看。"),效率更高且易读。
运行结果
plaintext
请输入一个人的名字:小王
请输入一个人的国家:中国
世界这么大, 小王想去中国看看。
案例 2:1 到 n 求和 —— 掌握循环与累加逻辑
需求
让用户输入整数 n,计算并输出 1+2+3+...+n 的结果。
修正后代码(原代码有变量大小写错误:S 和 s 混用)
python
运行
# 获取用户输入并转换为整数(input返回字符串,需用int()转成数字)
n = int(input("请输入整数n:"))
# 初始化累加器:sum_total用于存储最终和,初始值为0
sum_total = 0
# 循环遍历1到n:range(int(n))生成0~n-1的序列,所以用i+1得到1~n
for i in range(n):
sum_total += i + 1 # 等价于 sum_total = sum_total + (i+1)
# 输出结果
print("1到n求和结果:", sum_total)
关键原理
- range () 函数:
range(n)生成[0, 1, 2, ..., n-1]的整数序列,若要生成 1~n,可写range(1, n+1)(更直观)。 - 累加器逻辑:先定义一个初始值为 0 的变量(如 sum_total),每次循环将当前数字(i+1)加到变量中,循环结束后变量就是总和。
- 变量大小写敏感:Python 中
sum_total和Sum_Total是两个不同变量,原代码中S和s混用会导致报错,需注意命名规范。
运行结果
plaintext
请输入整数n:12
1到n求和结果:78
案例 3:打印九九乘法表 —— 理解嵌套循环与格式化对齐
需求
输出整齐的九九乘法表(每行显示 1×i 到 i×i 的算式)。
修正后代码(原代码有格式符错误:* 号位置不对)
python
运行
# 外层循环控制“行数”:i从1到9(对应乘法表的第1行到第9行)
for i in range(1, 10):
# 内层循环控制“每行的列数”:j从1到i(第i行有i个算式)
for j in range(1, i + 1):
# 格式化输出:{:2}让结果占2个字符位置,保证对齐;end=''表示不换行
print(f"{j}×{i}={j*i:2}", end=' ')
# 每一行的列打印完后,主动换行(否则所有内容会在一行)
print()
关键原理
- 嵌套循环:外层循环(i)控制 “行”,内层循环(j)控制 “每行的列”。比如 i=3 时,j 会取 1、2、3,对应 “1×3=3”“2×3=6”“3×3=9”。
- 格式化对齐:
{j*i:2}中,2表示让结果占 2 个字符位置 —— 若结果是 1 位数字(如 3),会自动补一个空格;若是 2 位数字(如 12),刚好占满,避免表格错乱。 - end 参数:print () 默认结尾是换行符(\n),
end=' '让每次打印后用空格分隔,直到内层循环结束,再用print()主动换行。
运行结果
plaintext
1×1= 1
1×2= 2 2×2= 4
1×3= 3 2×3= 6 3×3= 9
1×4= 4 2×4= 8 3×4=12 4×4=16
1×5= 5 2×5=10 3×5=15 4×5=20 5×5=25
1×6= 6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7= 7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8= 8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9= 9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
案例 4:1 到 10 阶乘求和 —— 搞懂阶乘计算与叠加
需求
计算 1! + 2! + 3! + ... + 10! 的结果(阶乘定义:n! = n×(n-1)×...×1,0! = 1)。
代码实现
python
运行
# 初始化两个变量:sum_total存总和(初始0),tmp存当前阶乘(初始1,因为1! = 1)
sum_total, tmp = 0, 1
# 循环遍历1到10:计算每个数的阶乘,并累加到总和
for i in range(1, 11):
tmp *= i # 等价于 tmp = tmp × i,每次更新当前i的阶乘(如i=2时,tmp=1×2=2!)
sum_total += tmp # 把当前阶乘加到总和中
# 输出结果
print("运算结果为: {}".format(sum_total))
关键原理
- 阶乘计算逻辑:用
tmp存储 “当前阶乘”——i=1 时,tmp=1×1=1!;i=2 时,tmp=1!×2=2!;i=3 时,tmp=2!×3=3!,以此类推,避免重复计算。 - 累加逻辑:每次计算出 i! 后,立即加到
sum_total中,循环结束后sum_total就是 1! 到 10! 的总和。
运行结果
plaintext
运算结果为: 4037913
案例 5:倒序循环与位运算 —— 小众但高效的计算方式
需求
通过倒序循环和位运算,计算初始值 n=1 经过 4 次运算后的结果。
代码实现
python
运行
# 初始值n=1
n = 1
# 倒序循环:range(4, 0, -1)生成4、3、2、1的序列(start=4,stop=0,step=-1,不包含stop)
for i in range(4, 0, -1):
# 位运算:<<1 表示左移1位,等价于乘以2;先算(n+1),再左移
n = (n + 1) << 1
# 输出最终结果
print(n)
关键原理
- 倒序 range:
range(start, stop, step)中,step=-1 表示 “从 start 往 stop 递减”,且不包含 stop。range(4,0,-1)的实际序列是 [4,3,2,1],共 4 次循环。 - 位运算左移:
<<1是二进制左移 1 位,比如数字 4(二进制 100)左移 1 位变成 8(1000),等价于×2,但位运算比乘法运算效率更高。 - 分步计算过程:
- 第 1 次循环(i=4):n=(1+1)×2=4
- 第 2 次循环(i=3):n=(4+1)×2=10
- 第 3 次循环(i=2):n=(10+1)×2=22
- 第 4 次循环(i=1):n=(22+1)×2=46
运行结果
plaintext
46
案例 6:用 turtle 画五角星 —— 轻松上手图形绘制
需求
使用 Python 内置的 turtle 库,绘制一个红色填充的五角星。
代码实现
python
运行
# 导入turtle库(Python内置,无需额外安装,用于绘制图形)
from turtle import *
# 设置填充颜色为红色
fillcolor("red")
# 开始填充(后续绘制的闭合图形会被填充颜色)
begin_fill()
# 循环绘制五角星的5条边:直到回到起点才停止
while True:
forward(200) # 向前移动200像素(绘制一条边)
right(144) # 向右转144度(五角星的每个外角是144度)
# 判断是否回到起点:pos()返回当前坐标,abs(pos())<1表示坐标接近(0,0)
if abs(pos()) < 1:
break # 回到起点,退出循环
# 结束填充(完成颜色填充)
end_fill()
# 保持绘图窗口,直到手动关闭
done()
关键原理
- turtle 库基础:turtle 是 Python 内置的绘图库,通过 “移动画笔” 绘制图形 ——
forward(d)向前移 d 像素,right(angle)向右转 angle 度,pos()返回当前坐标(x,y)。 - 五角星的角度规律:五角星有 5 条边,每个外角是 144 度(360°/5×2=144°),所以每次右转 144 度,循环 5 次后会回到起点。
- 颜色填充:
fillcolor(color)设置填充色,begin_fill()和end_fill()之间的闭合图形会被填充 —— 这里 while 循环绘制的五角星是闭合的,所以会被填成红色。
运行结果
会弹出一个绘图窗口,显示一个红色填充的五角星,关闭窗口后程序结束。
案例 7:饮食搭配组合 —— 生成不重复的两两组合
需求
有 5 种食材(西红柿、花椰菜、黄瓜、牛排、虾仁),生成 “不同食材” 的两两搭配(如 “西红柿花椰菜”,排除 “西红柿西红柿” 这种重复)。
修正后代码(原代码有格式符错误:{{} 应改为 {}+{})
python
运行
# 定义食材列表:存储5种食材
diet = ['西红柿', '花椰菜', '黄瓜', '牛排', '虾仁']
# 外层循环:遍历列表索引(0~4,对应5种食材)
for x in range(0, 5):
# 内层循环:再次遍历列表索引(0~4)
for y in range(0, 5):
# 条件判断:排除x==y(同一食材重复搭配)
if not (x == y):
# 输出搭配:diet[x]是第一个食材,diet[y]是第二个食材
print(f"{diet[x]}{diet[y]}")
关键原理
- 嵌套循环遍历索引:x 和 y 分别遍历列表的 5 个索引(0~4),理论上会生成 5×5=25 种组合。
- 去重逻辑:
if not (x == y)排除了 “同一索引对应的食材”(如 x=0、y=0 对应 “西红柿西红柿”),最终保留 5×4=20 种不重复搭配。 - 列表索引访问:
diet[x]通过索引 x 获取列表中的食材 —— 列表索引从 0 开始,所以 x=0 是 “西红柿”,x=1 是 “花椰菜”。
运行结果
plaintext
西红柿花椰菜
西红柿黄瓜
西红柿牛排
西红柿虾仁
花椰菜西红柿
花椰菜黄瓜
花椰菜牛排
花椰菜虾仁
黄瓜西红柿
黄瓜花椰菜
黄瓜牛排
黄瓜虾仁
牛排西红柿
牛排花椰菜
牛排黄瓜
牛排虾仁
虾仁西红柿
虾仁花椰菜
虾仁黄瓜
虾仁牛排
总结:从案例中提炼的 Python 入门核心
这 7 个案例看似简单,却覆盖了 Python 入门的高频知识点:
- 基础语法:变量定义、输入输出(input/print)、条件判断(if)、循环(for/while)、嵌套循环;
- 数据类型:字符串(格式化)、列表(索引访问);
- 特殊技巧:位运算(<<)、第三方库(turtle)、累加 / 阶乘逻辑;
- 避坑点:变量大小写敏感、range () 序列范围、print () 的 end 参数。
建议大家把代码复制到 PyCharm 或 IDLE 中运行,再试着修改参数(比如把乘法表改成 10 阶,把五角星边长改成 150)——“动手改代码” 比 “光看代码” 更能理解原理。Python 入门没有捷径,多敲、多试、多思考,就能慢慢掌握!
5661

被折叠的 条评论
为什么被折叠?



