PYTHON NOTES · 02
使用条件判断、while 与 for 循环控制程序执行流程。
- 条件判断
- 循环
Python 分支与循环
使用条件判断、while 与 for 循环控制程序执行流程。
1.分支语句
1.1单分支语句
#控制单个代码是否执行
#语法
if 条件:
符合条件执行的语句
#例子
num=int(input("""
请选择您要办理的业务:
1.查询余额
2.存钱
3.取钱
4.退出登录
"""))
if num == 4:
print("感谢您的使用,欢迎下次光临")
1.2双分支语句
#控制两个代码是否执行
#语法
if 条件:
符合条件执行的语句
else:
不符合条件执行的语句
#例子
num=int(input('请输入一个数字:'))
if num % 2 ==0:
print(f'{num}是偶数')
else :
print(f"{num}是奇数")
1.3多分支语句
#控制多个代码是否执行
#语法
if 条件1:
条件1成立执行的代码
elif 条件2:
条件成2立执行的代码
elif 条件3:
条件成3立执行的代码
else(也可不写else)
以上条件不成立的代码
#在elif和else的选择上
#如果是确定的值,使用elif,else用来处理异常场景
#如果是区间,else用来处理最宽泛区间
#练习:水果价格查询程序
#用户输入水果名称,输出对应水果的价格
name = input('请输入水果名称')
if name == '西瓜':
print(f'{name}的价格是1.8元')
elif name == '榴莲':
print(f'{name}的价格是29.8元')
elif name == '樱桃':
print(f'{name}的价格是30元')
elif name == '车厘子':
print(f'{name}的价格是100元')
elif name == '牛油果':
print(f'{name}的价格是20元')
elif name == '佛手瓜':
print(f'{name}的价格是16元')
else:
print('未查询到您输入的水果价格')
1.4 多分支语句的嵌套
##就是多层使用分支
# #练习 ——相亲
gender=input('请输入性别')
if gender == '男':
car = input('请输入是否有车')
if car == '是':
print('去看看')
else:
house = input('请输入是否有房')
if house == '有':
print('去看看')
else:
print('算了吧')
else:
beatuy =input('漂亮嘛?')
if beatuy == '是':
print('去看看')
else:
chara = input("温柔吗?")
if chara == '是':
print('去看看')
else:
print('算了吧')
1.5数字炸弹案例
#猜数字游戏——简易版:不提示猜大猜小
#生成一个随机数,random是python的一个内置包,可以直接调用
import random
num=random.randint(1,10)
#让用户输入一个数字,猜对了提示猜对了
guess=int(input('请猜一个1-10的数字'))
if guess== num:
print('猜对了')
#猜错了可以再猜一次,重新输入一个数字
else:
guess = int(input('还有两次机会,请猜一个1-10的数字'))
if guess == num:
print('猜对了')
else:
#猜错了可以再猜一次,重新输入一个数字
guess = int(input('最后一次机会,请猜一个1-10的数字'))
if guess == num:
print('猜对了')
else:
#第三次都没猜对,提示游戏结束
print('猜错了,游戏结束')
#不管猜没猜对都展示正确答案
print(f"正确答案是{num}")
2.循环语句
2.1 while循环
2.1.1 死循环
无限的执行一段代码,不会停止
#例
while :
print("yyqx yyds")
2.1.2 循环
可控次数的执行一短代码
#三要素:
1.定义变量 记录循环次数
2.结束条件 终止循环
3.修改变量 更新循环次数
#例
i=1
while i<= 10:
print('我要吃饭了')
i+=1
2.1.3 while循环案例
2.1.3.1 基础案例
#案例1 计算1-100的和
i=1 #定义循环变量
sum=0 #定义求和值
while i<=100: #循环100次
sum += i #求和
i += 1 #记录循环次数
print(sum) #输出最终结果
#计算x-y的和
x=int(input('请输入较小的数'))
y=int(input('请输入较大的数'))
sum = 0
i=x
while x<= y:
sum += x
x +=1
print(f'{i}到{y}的和为{sum}')
#计算x-y的平均数
x=int(input('请输入较小的数'))
y=int(input('请输入较大的数'))
count = y-x+1
sum = 0
i=x
while x<= y:
sum += x
x +=1
avg=sum/count
print(f'{i}到{y}的平均值为{avg}')
2..1.3.2 数字炸弹升级版
结束循环的两种思路
#互斥锁————通用解决方案思想
#一开始条件设置为True
#结束时锁改为False 直接退出循环
import random
num=random.randint(1,10)
guess=int(input('请猜一个1-10的数字'))
flag=True
while flag:
if guess==num:
print('猜对了')
flag = False
elif guess > num:
print('猜大了,继续猜')
guess = int(input('请猜一个1-10的数字'))
else:
print('猜小了,继续猜')
guess = int(input('请猜一个1-10的数字'))
#直接退出循环版--break
import random
num=random.randint(1,10)
guess=int(input('请猜一个1-10的数字'))
flag=True
while flag:
if guess==num:
print('猜对了')
break
elif guess > num:
print('猜大了,继续猜')
guess = int(input('请猜一个1-10的数字'))
else:
print('猜小了,继续猜')
guess = int(input('请猜一个1-10的数字'))
2.1.4 while循环的嵌套
2.1.4.1 while循环嵌套if
sum = 0
i=1
while i<=100:
if i%2==0:
sum += i
i +=1
print(f"1-100偶数的和为{sum}")
2.1.4.2 while循环嵌套while
思路:
#1.把基本的循环写出来,当成一个整体 #2.再把第一步重复多次
day = 1
while day <= 10:
count = 1
while count <= 10:
print(f"第{day}天,第{count}次")
count += 1
day += 1
2.1.4.3 9*9乘法表案例
second=1
while second<=9:
first=1
while first<=second:
print(f'{first}*{second}={first*second}',end=" ")
first +=1
print(" ")
second +=1
2.2 for循环
2.2.1 基本语法
#语法
for 临时变量 in 内容
执行的语句
#总结:
#1.for循环就是用于循环内容的
#2.for循环里面的临时变量就是内容的每一项
#3.内容一定是可迭代的对象!
#练习:定义一个字符串,循环打印字符串的每一个字符
cat="Jackson"
for i in cat:
print(i,end=" ")
2.2.2 临时变量的用法
# 临时变量应该在循环内使用 #临时变量也可以在循环外使用,但是不建议用,输出为最后一次循环的值 #如果要用的话: # 先在外部定义一个变量,用来记录临时变量,然后使用这个变量 #如果有多次循环嵌套,每个临时变量不能重复
for-else循环(python特有的循环判断)
开始
↓
执行for循环
↓
判断if执行判断语句 ?
├── 是 → 删除该学生 → 打印成功信息 → break 跳出循环 → 跳过 else → 结束
└── 否 → 继续遍历下一个
↓
所有元素都遍历完了(没有触发 break)?
├── 是 → 执行 else 块 → 打印"没有找到" → 结束
└── 否 → 继续循环
## 所有的for循环执行结束,没有触发break会执行else语句,如果触发break就不执行else语句了
2.2.3 range语句
#语法
range(num) 从0~num-1
range(num1,num2) 从num1~num2-1
range(num1,num2,step) 从num1~num2-1,步长为step
#例
#1.一个参数:range(数字)
for i in range(5):
print(f"第{i+1}次打印")
#意义:想循环几次,就循环几次
#2.两个参数 range(开始,结束+1)
for i in range(1,11):
print(f"第{i}次打印")
# 3.三个参数 range(开始,结束+1,步长)
for i in range(2,11,2):
print(i)
2.2.4 for循环嵌套-9*9乘法表
#9*9乘法表的for循环写法
#方法1:
for sec in range(1,10):
for first in range (1,sec+1):
print(f"{first}*{sec}={first*sec}",end=" ")
print(" ")
#方法2:
for i in range(9):
for j in range (9):
if j<=i:
print(f"{j+1}*{i+1}={(i+1)*(j+1)}",end=" ")
print(" ")
2.3 循环中断
#几种退出的区别
##1.pass
for i in range(10):
if i%2==0:
print(i)
else:
pass #只是跳过else 这一句话 后续代码继续执行
print(f"这是第{i+1}次循环")
##2.continue-可以通过逻辑执行,用处不大
for i in range(10):
if i%2==0:
print(i)
else:
continue #本轮循环结束,后面的代码都不执行了,继续执行下一次循环
print(f"这是第{i}次循环")
##3.break
# 直接退出循环,后面所有的都不执行了
### 总结:
# 1.continue 是跳过此次循环后面的语句,继续重头开始执行下一次循环(通过逻辑if-else可以实现)
# 2.break 直接退出循环,后面所有的都不执行了
# 3.while和for循环都可以用