避坑指南|24 个案例吃透 Python 基础,少走 90% 弯路
哈喽大家好,又见面啦!😊很多友友们学 Python 总卡在 “看会了、写不出”,与其死记语法,不如用实战案例真正吃透基础。本篇整理24 个 Python 入门经典案例,从变量、循环、函数到列表、字典、字符串操作,全覆盖 Python 核心基础。不空谈理论,只靠案例上手,跟着练完,就能稳稳打下 Python 编程地基。
#python循环结构学习练习
=========================================================================
#第一部分:for循环基础
=========================================================================
# 案例1:遍历列表
print("\n【案例1】遍历列表")
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# 案例2:使用 range() 函数
print("range(0, 10, 2) 生成 0-9 的偶数:")
for i in range(0, 10, 2):
print(i, end=" ")
print()#相当于print(end=“\n”)
# 案例3:遍历字符串
print("\n【案例3】遍历字符串")
text = "Python"
for char in text:
print(f"字符: {char}")
# 案例4:遍历字典
print("\n【案例4】遍历字典")
scores = {"张三": 85, "李四": 92, "王五": 78}
print("遍历键:")
for name in scores:
print(name, end=" ")
print()
print("遍历值:")
for score in scores.values():
print(score, end=" ")
print()
print("遍历键值对:")
for name, score in scores.items():
print(f"{name}: {score}分")
#4.1新增键值对
print("\n简单方法新增键值对:")
scores["麻子"]=100
print(scores)
print("\nupdate()方法新增多个键值对:")
scores.update({"哈哈": 5, "呵呵": 5})
print("批量添加后:", scores)
# 案例5:enumerate() 同时获取索引和元素
#enumerate(colors):这是核心。它是一个内置函数,作用是给 colors 列表里的每个元素“贴上标签”(索引),它返回一个枚举对象(Iterator),每次迭代产生一个 (索引,元素) 的元组(Tuple)。
# index, color:这是元组解包(Tuple Unpacking)。
# enumerate 产生 (0, "红色")。
# Python 自动把 0 赋值给变量 index,把 "红色" 赋值给变量 color。
print("\n【案例5】使用 enumerate()")
colors = ["红色", "绿色", "蓝色"]
for index,color in enumerate(colors):
print(f"索引{index}:{color}")
#案例6:enumerate()自定义起始索引
print("\n【案例6】enumerate() 自定义起始索引")
for index,color in enumerate(colors,start=1):
print(f"第{index}种颜色: {color}")
=========================================================================
# 第二部分:while循环
=========================================================================
# 案例7:基础 while 循环
print("\n【案例7】基础 while 循环 - 打印 1-5")
i=1
while i<=5:
print(i,end=" ")
i+=1
# 案例8:计算 1 到 100 的和
print("\n【案例8】计算 1 到 100 的和")
i=1
sum=0
while i<=100:
sum+=i
i+=1
print(f"结果为{sum}")
#案例9,random()函数的运用
import random
print("\n随机输出一定范围的数字:")
num=random.randint(1, 6)#可能取到6
print(f"随机数为{num}")
print("\n输出一个四位数:")
code=" "
for i in range(4):
code+=str(random.randint(0,9))
print(f"验证码为{code}")
#随机从列表里面选取一个元素
import random
colors = ["红色", "绿色", "蓝色"]
random_index=random.randint(0,len(colors)-1)
print(colors[random_index])
# 案例10:猜数字游戏
import random
target = random.randint(1, 10)
guesses = [3, 7, 5] # 模拟用户的猜测
guess_count = 0
print(f"目标数为{target}")
while guess_count<=len(guesses)-1:
guess=guesses[guess_count]
if guess==target:
print("\n恭喜你猜对了!")
break
elif guess<target:
print("\n太小了")
else:
print("\n太大了!")
else:
print(f"游戏结束!正确答案是{target}")
=========================================================================
# 第三部分:控制循环控制语句,break,continue,pass
=========================================================================
# 案例11:break - 跳出整个循环
(方法一)
print("\n【案例11】break - 找到第一个能被7整除的数")
for i in range(1,50):
if i%7==0:
print(f"能被7整除的数字为:{i}")
break
print("\n找到能被7整除的数")
(方法二)
for i in range(0,50,7):
print(f"能被7整除的数为{i}")
(方法三)
for i in range(1,50):
if i%7==0:
print(f"结果为{i}")
# 案例12:continue - 跳过本次迭代
(方法一)用range()函数
print("\n【案例12】continue - 只打印奇数")
for i in range(1,50,2):
print(f"奇数为:{i}")
(方法二)用continu循环
for i in range(1,50):
if(i%2==0):
continue
print(i,end=" ")
print()
# 案例13:pass - 占位符
print("\n【案例13】pass - 占位符")
for i in range(3):
pass
print("循环完毕")
# 案例14:break vs continue 对比
print("\n【案例14】break vs continue 对比")
print("使用 break:")
for i in range(1, 6):
if i == 3:
break
print(i, end=" ")
print()
#结果:1 2
print("使用 continue:")
for i in range(1, 6):
if i == 3:
continue
print(i, end=" ")
print()
#结果1 2 4 5
=========================================================================
#第四部分,嵌套循环
=========================================================================
#案例15:循环高级技巧
#将1-6之间的平方添加到列表中(传统方法)
print("\n【案例21】列表推导式")
result = []
for i in range(1,6):
result.append(i**2)
print(f"结果为{result}")
#列表推导式(列表推导式把「创建空列表 + 循环 + 追加元素」三步合并成了一步,代码更简洁)
result=[i**2 for i in range(1,6)]
print(f"列表推导式结果为{result}")
# 案例16:带条件的列表推导式
# 只取偶数的平方
print("\n【案例22】带条件的列表推导式")
result=[i**2 for i in range(1,6) if i%2==0]
print(f"带条件的列表推导式结果为:{result}")
# 案例17:单词长度字典推导式
#传统方法
words = ["apple", "banana", "cherry"]
word_lengths = {} # 先创建空字典
for word in words:
word_lengths[word] = len(word) # 逐个添加键值对
print(f"传统方法单词长度字典: {word_lengths}")
#利用推导式
words = ["apple", "banana", "cherry"]
word_lengths={word:len(word) for word in words}
print(f"利用推导式求单词长度字典: {word_lengths}")
# 案例18:zip() 函数实现列表并行遍历
print("\n【案例24】zip() 并行遍历多个列表")
names=["张三","李四","王二"]
ages=[20,21,22]
cities=["北京","上海","广州"]
for name,age,city in zip(names,ages,cities):
print(f"{name},{age}岁,来自{city}")
#案例19:反向遍历reversed()
| 类型 | 示例 | 返回值类型 |
|---|---|---|
| 字符串 | reversed("hello) | 迭代器 |
| 列表 | reversed([1,2,3]) | 迭代器 |
| 元组 | reversed((1,2,3)) | 迭代器 |
| range | reversed(range(5)) | 迭代器 |
以上reversed()返回的是迭代器对象,需要转换才能用
#方式一:转成列表
s="hello"
print(list(reversed(s)))
#方式二:转成字符串(用join))
print(''.join(reversed(s)))
#方式三:用for循环
for char in reversed(s):
print(char,end=' ')
print("\n【案例25】reversed() 反向遍历")
for i in reversed(range(1,6)):
print(i,end=" ")
print()
#反向输出字符串
str="hello ljj"
result=reversed(str)
print(''.join(result))
#或者
s=str[::-1]
print(s)
#案例20:sorted()的运用,升序和降序
语法:sorted(可迭代对象, key=None, reverse=False)
print(sorted("hello"))
| 参数 | 说明 |
| 第一个参数 | 要排序的可迭代对象(列表、字符串、元组等) |
| key | 排序规则函数,可选 |
| reverse | False 升序(默认),True 降序 |
#升序
①列表
nums=[1,2,3,4,5]
print(sorted(nums))
②字符串
print(sorted("hello"))
③元组
print(sorted((1,3,2,8,6)))
#降序,使用reverse=True
①数组
nums=[1,2,3,4,5]
print(sorted(nums,reverse=True))
②字符串
print(sorted("hello",reverse=True))
#按照字符串长度排序
words = ["apple", "kiwi", "banana", "pear", "watermelon"]
print(sorted(words,key=len))
print(sorted(words,key=len,reverse=True))
#按照绝对值排序
nums=[-1,-8,-2,-6,-7,0]
print(sorted(nums,key=abs))
=========================================================================
#第五部分,小案例
=========================================================================
# 案例21:判断质数
#基础版
print("\n【案例27】判断质数")
def is_prime(n):
if n<0:
return False
for i in range(2,n):
if n%i==0:
return False
return True
#测试
print(is_prime(3))
print(is_prime(8))
#优化版
import math
def is_prime(n):
if n<=1:
return False
if n==2:
return False
if n%2==0:
return False
for i in range(3,int(math.sqrt(n))+1,2):
if n%i==0:
return False
return True
#用户判断输入
num=int(input("请输入一个正整数:"))
if is_prime(num):
print(f"{num}是质数")
else:
print(f"{num}不是质数")
#进阶版:找出一定范围内的所有质数
import math
def if_prime(n):
if n<=1:
return False
if n==2:
return False
if n%2==0:
return False
for i in range(3,int(math.sqrt(n))+1,2):
if n%i==0:
return False
return True
def find_prime(start,final):
for i in range(start,final):
if if_prime(i):
print(f"{i}是质数")
start=int(input("请输入开始数:"))
final=int(input("请输入结束数:"))
find_prime(start, final)
# 案例22:计算阶乘(阶乘是乘积)
#方法一
def factorial(n):
#边界值判断
if n<0:
print("负数没有阶乘")
if n==0 or n==1:#数学上规定0的阶乘为1
return 1
result=1
#循环判断
for i in range(1,n+1):
result*=i
return result
num=int(input("请输入一个数字:"))
print(f"{num}的阶乘为{factorial(num)}")
#方法二
def factorial(n):
#边界值判断
if n<0:
print("负数没有阶乘")
if n==0 or n==1:#数学上规定0的阶乘为1
return 1
return n*factorial(n-1)
# 调用示例
print(f"5的阶乘(递归):{factorial(5)}")
# 案例23:斐波那契数列(从第 2 项开始,每一项都等于前两项之和)
print("\n【案例29】斐波那契数列前10项")
def summary(n):
#边界值判断
if n<=0:
return[]
if n==1:
return[0]
if n==2:
return[0,1]
result=[0,1]
#从第三项开始
for i in range(2,n):
next_num=result[i-1]+result[i-2]
result.append(next_num)
return result
num=int(input("请输入要求的项数:"))
re=summary(num)
print(f"前{num}项的结果为{re}")
# 案例24:找出列表中的最大值和最小值
print("\n【案例30】找出最大值和最小值(不使用内置函数)")
def create_list(n):
num_list=[]
for i in range(n):
num=int(input("输入列表元素:"))
num_list.append(num)
return num_list
n=int(input("请输入列表的长度:"))
num_list=create_list(n)
max_num=num_list[0]
min_num=num_list[0]
for i in num_list :
if i>max_num:
max_num=i
if i<min_num:
min_num=i
print(f"列表为{num_list}")
print(f"列表中的最大值为{max_num},最小值为{min_num}")
写到这里,30 个 Python 基础案例就全部结束了。如有问题欢迎大家一起在评论区交流哦😊
编程从来不是一蹴而就的事情,每一行代码、每一次报错、每一次修改,都是成长的痕迹。
不必焦虑进度,也不用害怕犯错,坚持动手、坚持思考,你会慢慢发现,曾经觉得难懂的逻辑,早已变成熟练的技能。
愿你在编程的路上,保持热爱,稳步前行。基础打牢,未来的路才会越走越宽。
加油~
更多推荐



所有评论(0)