二、if和循环语句
① if 语句
1、 If 语法
语法:
if 条件:
条件成立执行的代码1
条件成立执行的代码2
.....
实例:
# 实例
-------------------------------------------------------
age = int(input('请输入你的年龄:'))
if age >= 18:
print(f'你的年龄为{age},已成年可上网')
-------------------------------------------------------
# 输出结果
请输入你的年龄:18
你的年龄为18,已成年可上网
2、 If…else…语法
语法:
if 条件:
条件成立执行的代码1
条件成立执行的代码2
.....
else:
条件不成立执行的代码1
条件不成立执行的代码2
.....
实例:
# 实例
-------------------------------------------------------
age = int(input('请输入你的年龄:'))
if age >= 18:
print(f'你的年龄为{age},已成年可上网')
else:
print('小朋友,回家写作业')
-------------------------------------------------------
#输出结果
请输入你的年龄:18
你的年龄为18,已成年可上网
请输入你的年龄:10
小朋友,回家写作业
3、 If…elif…else…多重判断语法
语法:
if 条件:
条件成立执行的代码1
条件成立执行的代码2
.....
elif 条件2:
条件2成立执行的代码1
条件2成立执行的代码2
.....
else:
条件不成立执行的代码1
条件不成立执行的代码2
......
实例:
# 实例
-------------------------------------------------------
'''
需求:
如果年龄小于18 为童工,不合法
如果年龄18-60岁之间,为合法工作年龄
如果年龄大于60位退休年龄
'''
'''
步骤:
1. 用户输入自己的年龄,保存变量 --str;
2. if做判断 elif
3. 输出提示信息:您输入的年龄是x,合法与否
'''
-------------------------------------------------------
age = int(input('请输入你的年龄:'))
# 另外一种形式: 18 <= age <= 60
if (age >= 18) and (age < 61):
print(f'您输入的年龄是{age},为合法工作年龄')
elif age > 60:
print(f'您输入的年龄是{age},为退休年龄')
else:
print(f'您输入的年龄是{age},为童工,不合法')
4、 If 嵌套
If 嵌套:前一次判断结果后,需要时再一次判断
。
语法:
if 条件1:
条件1成立执行的代码
if 条件2:
条件2成立执行的代码
实例:
'''
需求:
坐公交:如果有钱上车,没钱不能上车。
上车后:有空座则坐下,没空座则站着。
'''
-------------------------------------------------------
# 实例
-------------------------------------------------------
money = 1
seat = 0
# 第一个if成立,才能够进行下个if的判断
if money == 1:
print('请上车')
if seat == 1:
print('有空位,请坐')
else:
print('无空位,站着')
else:
print('没钱,走吧')
5、 猜拳游戏项目
实例:
'''
① 出拳
玩家:手动输入
电脑:随机数
② 判断
2.1 玩家获胜
2.2 平手
2.3 电脑获胜
'''
-------------------------------------------------------
import random
# 玩家出拳
player = int(input('请出拳:(0--剪刀;1--石头;2--布):'))
# 电脑出拳
computer = random.randint(0,2)
print(computer)
# 设置玩家赢的条件
if ((player==0) and (computer==2)) or ((player==1) and (computer==0)) or ((player==2) and (computer==1)):
print('玩家获胜')
# 设置电脑赢的条件
elif ((player==0) and (computer==1)) or ((player==1) and (computer==2)) or ((player==2) and (computer==0)):
print('电脑获胜')
else:
print('平手')
6、 三目运算符
语法:
# 语法
条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
实例:
a = 1
b = 2
#当a > b时,c = a。 当a > b不成立时,c=b+1。
c = a if a >b else b+1
-------------------------------------------------------
# 输出结果:3
② While 循环、嵌套
1、 While语法
语法:
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
.....
实例:
# 实例(打印5遍数据)
-------------------------------------------------------
i = 1
while i <= 5:
print('12345')
i += 1
-------------------------------------------------------
# 输出结果
12345
12345
12345
12345
12345
2、 While应用
实例:1 - 100 累加
# 循环应用 1-100累加
-------------------------------------------------------
result = 0
i = 1
while i <= 100:
result += i
i += 1
print(result)
实例:1 - 100偶数累加(方法1)
# 循环应用 1-100偶数累加(方法1)
-------------------------------------------------------
result = 0
i = 0
while i <= 100:
result += i
i += 2
print(result)
实例:1 - 100偶数累加(方法2)
# 循环应用 1-100偶数累加(方法2)
-------------------------------------------------------
result = 0
i = 0
while i <= 100:
if i % 2 == 0:
result += i
i += 1
print(result)
3、 While循环嵌套语法
语法:
while 条件1:
while 条件2:
条件2成立重复执行的代码1
.....
条件1成立重复执行的代码1
.....
实例:
# 实例
-------------------------------------------------------
j = 0
while j < 3:
i = 0
while i < 3:
print('我错了')
i += 1
print('刷晚饭的碗')
print('一套流程结束------')
j += 1
-------------------------------------------------------
# 输出结果
我错了
我错了
我错了
刷晚饭的碗
一套流程结束------
我错了
我错了
我错了
刷晚饭的碗
一套流程结束------
我错了
我错了
我错了
刷晚饭的碗
一套流程结束------
4、 循环嵌套流程图
5、 While循环嵌套应用
实例:打印星号(矩形)
# 打印星号(矩形)
'''
1、打印1个星星
2、一行5个: 循环 -- 5个星星在一行显示
3、打印5行星星:循环 -- 一行5个
'''
-------------------------------------------------------
j = 0
while j < 5:
i = 0
while i < 5:
print('*',end='')
i += 1
print('')
j += 1
-------------------------------------------------------
# 输出结果
*****
*****
*****
*****
*****
实例:打印星号(三角形)
# 打印星号(三角形):每行星星的个数和行号相等
# j表示符号
-------------------------------------------------------
j = 0
while j < 5:
# 一行星星的打印
i = 0
# i表示每行星星的个数,这个数字要和行号相等所以i和j要联动
while i <= j:
print('*',end='')
i += 1
print('')
j += 1
-------------------------------------------------------
# 输出结果
*
**
***
****
*****
实例:九九乘法表
# 九九乘法表(小项目案例)
'''
1、打印一个乘法表达式:x * x = x*x
2、一行打印多个表达式 -- 一行表达式的个数和行号数相等 -- 循环:一个表达式 -- 不换行
3、打印多行表达式 --循环 : 一行表达式 -- 换行
'''
-------------------------------------------------------
j = 1
while j <= 9:
i = 1
while i <= j:
print(f'{i}*{j}={i*j}',end='\t')
i += 1
print()
j += 1
-------------------------------------------------------
# 输出结果
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
③ break和continue
break 和 continue 是循环中满足一定条件退出循环的两种方式。
1、 break的使用
beark控制循环流程,即终止此循环。(退出循环)
例子:
'''
举例:一共吃5个香蕉,吃的过程中,吃完第3个吃饱了,后面都不吃了
即吃苹果的动作停止,这就是break控制循环流程,即终止此循环
'''
-------------------------------------------------------
i = 1
while i <= 5:
if i == 4:
print(f'吃饱了')
break
print(f'吃了第{i}个香蕉')
i += 1
-------------------------------------------------------
# 输出结果
吃了第1个香蕉
吃了第2个香蕉
吃了第3个香蕉
吃饱了
2、 continue的使用
continue控制循环流程,即退出当前循环而执行下一次循环。
使用continue,在continue之前一定要修改计数器,否则进入死循环。
'''
举例:一共吃5个苹果,如果吃的过程中,吃到第3个发现有虫子,
这个不吃了,开始吃第3个苹果,这里就是continue控制循环流程,
即退出当前一次循环进行下一次
'''
-------------------------------------------------------
i = 1
while i <= 5:
if i == 3:
print('有虫子')
# 如果使用continue,在conttinue之前一定要修改计数器,否则进入死循环。
i += 1
continue
print(f'吃了第{i}个苹果')
i += 1
-------------------------------------------------------
# 输出结果
吃了第1个苹果
吃了第2个苹果
有虫子
吃了第4个苹果
吃了第5个苹果
④ for循环
1、 for循环语法
语法:
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
实例:
# 实例1
str1 = 'abcdefg'
for i in str1:
print(i)
-------------------------------------------------------
# 输出结果1
a
b
c
d
e
f
g
实例:
# 实例2
for i in range(0,10):
print(i)
-------------------------------------------------------
# 输出结果2
1
2
3
4
5
6
7
8
9
2、break和continue退出for循环
2.1、break退出for循环
实例:
str1 = 'abcdefg'
for i in str1:
# 当某些条件成立退出循环 -- break:条件i取到字符e
if i == 'e':
print('遇到e不打印')
break
print(i)
-------------------------------------------------------
# 输出结果
a
b
c
d
遇到e不打印
2.2、continue退出for循环
实例:
str1 = 'abcdefg'
for i in str1:
# 当某些条件成立退出循环 -- break:条件i取到字符e
if i == 'e':
print('遇到e不打印')
continue
print(i)
-------------------------------------------------------
# 输出结果
a
b
c
d
遇到e不打印
f
g
⑤ 循环中的else
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束
之后要执行的代码。
1、While…else…语法
语法:
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后要执行的代码
实例:
需求:道歉5遍媳妇我错了,完成之后执行媳妇原谅我
'''
1、书写道歉的循环
2、循环正常结束要执行的代码 -- else
'''
-------------------------------------------------------
i = 1
while i <= 5:
print('媳妇,我错了')
i += 1
else:
print('原谅我了,哈哈哈')
-------------------------------------------------------
# 输出结果
媳妇,我错了
媳妇,我错了
媳妇,我错了
媳妇,我错了
媳妇,我错了
原谅我了,哈哈哈
2、While else之break
实例:
i = 1
while i <= 5:
if i == 3:
print('这遍不真诚')
break
print('媳妇,我错了')
i += 1
else:
print('原谅我了,哈哈哈')
-------------------------------------------------------
# 输出结果
媳妇,我错了
媳妇,我错了
这遍不真诚
所谓
else
指的是循环正常结束
之后要执行的代码,即如果是break终止循环
的情况,else下方缩进的代码将不执行。
3、While else之continue
实例:
i = 1
while i <= 5:
if i == 3:
print('这遍不真诚')
i += 1
continue
print('媳妇,我错了')
i += 1
else:
print('原谅我了,哈哈哈')
-------------------------------------------------------
# 输出结果
媳妇,我错了
媳妇,我错了
这遍不真诚
媳妇,我错了
媳妇,我错了
原谅我了,哈哈哈
因为
continue
是退出当前
一次循环,继续下一次
循环,所以该循环在continue控制
下是可以正常结束
的,当循环结束后,则执行了else缩进的代码。
4、for…else…语法
for 临时变量 in 序列:
重复执行的代码
...
else:
循环正常结束之后要执行的代码
所谓的else指的是
循环正常
结束之后要执行的代码,即如果是break终止循环的情况
,else下方缩进的代码将不执行
str1 = 'abcde'
for i in str1:
print(i)
else:
print('循环结束后要执行的代码')
-------------------------------------------------------
# 输出结果
a
b
c
d
e
循环结束后要执行的代码
5、for…else…之break和continue
5.1、 for…else…之break(不能正常结束)
str1 = 'abcde'
for i in str1:
if i == 'e':
break
print(i)
# 正常结束执行的代码
else:
print('循环结束后要执行的代码')
-------------------------------------------------------
# 输出结果
a
b
c
d
5.2、 for…else…之continue(程序正常结束)
str1 = 'abcdef'
for i in str1:
if i == 'e':
continue
print(i)
# 正常结束执行的代码
else:
print('循环结束后要执行的代码')
-------------------------------------------------------
a
b
c
d
f
循环结束后要执行的代码