条件语句
条件语句的作用
条件语句允许程序根据不同的条件执行不同的代码块,是程序实现决策的基础。
if语句
# 基本的if语句
age = 18
if age >= 18:
print("您已成年")
# if-else语句
score = 85
if score >= 60:
print("及格")
else:
print("不及格")
# if-elif-else语句
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
# 嵌套的if语句
age = 20
has_ticket = True
if age >= 18:
if has_ticket:
print("可以进入电影院")
else:
print("请先购票")
else:
print("未成年不能观看")
注意:Python使用缩进来表示代码块,确保if语句下的代码块正确缩进(通常是4个空格)。
循环语句
for循环
# 遍历列表
fruits = ['苹果', '香蕉', '橙子']
for fruit in fruits:
print(fruit)
# 使用range()
for i in range(5): # 0到4
print(i)
# 带步长的range()
for i in range(0, 10, 2): # 0, 2, 4, 6, 8
print(i)
# 遍历字典
student = {'name': '小明', 'age': 18}
for key in student:
print(f"{key}: {student[key]}")
# 同时获取索引和值
for index, value in enumerate(fruits):
print(f"第{index+1}个水果是:{value}")
while循环
# 基本while循环
count = 0
while count < 5:
print(count)
count += 1
# 带条件的while循环
number = 1
sum = 0
while number <= 100:
sum += number
number += 1
print(f"1到100的和是:{sum}")
# 无限循环
while True:
user_input = input("请输入'q'退出:")
if user_input == 'q':
break
控制语句
控制语句的作用
控制语句可以改变循环的执行流程,包括提前结束循环或跳过当前迭代。
break和continue
# break示例
for i in range(1, 11):
if i == 5:
break # 遇到5就结束循环
print(i)
# continue示例
for i in range(1, 6):
if i == 3:
continue # 跳过3
print(i)
# 实际应用示例
while True:
password = input("请输入密码:")
if len(password) < 6:
print("密码太短,请重新输入")
continue
if password == "123456":
print("登录成功")
break
print("密码错误,请重试")
else子句
# 循环的else子句
for i in range(5):
if i == 10:
break
else:
print("循环正常完成") # 只有循环正常完成才会执行
# 查找示例
numbers = [1, 3, 5, 7, 9]
search = 4
for num in numbers:
if num == search:
print("找到了")
break
else:
print("没有找到")
练习与实践
练习1:猜数字游戏
创建一个猜数字游戏,要求:
- 程序随机生成一个1-100的数字
- 用户有最多7次机会猜测
- 每次猜测后提示数字是偏大还是偏小
参考代码:
import random
# 生成1-100的随机数
target = random.randint(1, 100)
max_tries = 7
tries = 0
while tries < max_tries:
guess = int(input(f"请猜一个1-100的数字(还有{max_tries-tries}次机会):"))
tries += 1
if guess == target:
print(f"恭喜你,猜对了!用了{tries}次机会")
break
elif guess < target:
print("猜小了")
else:
print("猜大了")
else:
print(f"游戏结束,正确答案是{target}")
练习2:九九乘法表
使用嵌套循环打印九九乘法表:
# 打印九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}\t", end="")
print() # 换行