Python速成系列二
文章目录
- Python 条件语句与循环结构详解
- 一、条件语句(if-elif-else)
- 1. 基本 if 结构
- 2. if-else 结构
- 3. if-elif-else 结构
- 4. 嵌套条件语句
- 5. 三元表达式(条件表达式)
- 二、循环结构
- 1. while 循环
- 2. for 循环
- 3. 循环控制语句
- break - 终止整个循环
- continue - 跳过当前迭代
- else - 循环正常结束后执行
- 4. 循环嵌套
- 5. 无限循环与退出
- 三、实用技巧
- 四、常见应用场景
Python 条件语句与循环结构详解
一、条件语句(if-elif-else)
1. 基本 if 结构
if 条件:# 条件为True时执行的代码
示例:
age = 20
if age >= 18:print("您已成年")
2. if-else 结构
if 条件:# 条件为True时执行的代码
else:# 条件为False时执行的代码
示例:
age = 16
if age >= 18:print("您已成年")
else:print("您未成年")
3. if-elif-else 结构
if 条件1:# 条件1为True时执行
elif 条件2:# 条件2为True时执行
else:# 所有条件都为False时执行
示例:
score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
elif score >= 60:print("及格")
else:print("不及格")
4. 嵌套条件语句
if 条件1:if 条件2:# 条件1和条件2都为True时执行else:# 条件1为True但条件2为False时执行
else:# 条件1为False时执行
示例:
age = 20
has_id = Trueif age >= 18:if has_id:print("可以进入酒吧")else:print("需要出示身份证")
else:print("未成年人禁止进入")
5. 三元表达式(条件表达式)
语法:值1 if 条件 else 值2
示例:
age = 18
status = "成年" if age >= 18 else "未成年"
print(status) # 输出:成年# 等同于:
if age >= 18:status = "成年"
else:status = "未成年"
二、循环结构
1. while 循环
用于不确定循环次数的场景
基本语法:
while 条件:# 循环体代码
示例1:基础while循环
count = 0
while count < 5:print(count)count += 1
示例2:用户输入验证
pd= ""
while pd!= "content":pd= input("请输入密码:")
print("密码正确!")
2. for 循环
用于遍历序列或已知循环次数的场景
基本语法:
for 变量 in 序列:# 循环体代码
示例1:遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:print(fruit)
示例2:配合range()使用
# range(stop) - 生成0到stop-1的整数序列
for i in range(5): # 0,1,2,3,4print(i)# range(start, stop) - 生成start到stop-1的整数序列
for i in range(2, 5): # 2,3,4print(i)# range(start, stop, step) - 以step为步长生成序列
for i in range(0, 10, 2): # 0,2,4,6,8print(i)
3. 循环控制语句
break - 终止整个循环
for i in range(10):if i == 5:breakprint(i) # 输出0,1,2,3,4
continue - 跳过当前迭代
for i in range(10):if i % 2 == 0:continueprint(i) # 输出1,3,5,7,9
else - 循环正常结束后执行
for i in range(5):print(i)
else:print("循环正常结束")# 如果循环被break中断,else不会执行
for i in range(5):if i == 3:breakprint(i)
else:print("这行不会执行")
4. 循环嵌套
# 打印九九乘法表
for i in range(1, 10):for j in range(1, i+1):print(f"{j}x{i}={i*j}", end="\t")print() # 换行
5. 无限循环与退出
while True:command = input("请输入命令:")if command == "exit":breakprint(f"执行命令:{command}")
三、实用技巧
- 使用enumerate()同时获取索引和值
fruits = ["苹果", "香蕉", "橙子"]
for index, fruit in enumerate(fruits):print(f"第{index+1}个水果是{fruit}")
- 使用zip()并行迭代多个序列
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):print(f"{name}今年{age}岁")
- 列表推导式中的条件
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers if x % 2 == 0]
# 结果:[4, 16]
- 字典推导式
words = ["hello", "world", "python"]
word_lengths = {word: len(word) for word in words}
# 结果:{'hello': 5, 'world': 5, 'python': 6}
四、常见应用场景
- 菜单选择系统
while True:print("1. 查询余额")print("2. 存款")print("3. 取款")print("4. 退出")choice = input("请选择操作:")if choice == "1":print("余额查询中...")elif choice == "2":print("存款操作...")elif choice == "3":print("取款操作...")elif choice == "4":breakelse:print("无效输入,请重新选择")
- 数字猜谜游戏
import randomtarget = random.randint(1, 100)
attempts = 0while True:guess = int(input("猜一个1-100的数字:"))attempts += 1if guess < target:print("猜小了")elif guess > target:print("猜大了")else:print(f"恭喜!你猜对了,用了{attempts}次")break
- 文件内容处理
# 统计文件中每个单词出现的次数
word_count = {}
with open("example.txt") as file:for line in file:words = line.strip().split()for word in words:word_count[word] = word_count.get(word, 0) + 1
⭐⭐⭐
对于每个阶段的学习,不能仅仅只停留在看懂了的基础上,要动手去实践,真正记到脑子里,这是最重要的🔥🔥🔥