判断语句和循环语句
if-else
想⼀想:在使⽤if的时候,它只能做到满⾜条件时要做的事情。那万⼀ 需要在不满⾜条件的时候,做某些事,该怎么办呢?
答:else
<1>if-else的使⽤格式
if条件:
满⾜条件时要做的事情1
满⾜条件时要做的事情2
满⾜条件时要做的事情3
...(省略)...
else:
不满⾜条件时要做的事情1
不满⾜条件时要做的事情2
不满⾜条件时要做的事情3
...(省略)...
demo1
chePiao = 1 #⽤1代表有⻋票,0代表没有⻋票
if chePiao == 1:
print("有⻋票,可以上⽕⻋")
print("终于可以⻅到Ta了,美滋滋~~~")
else:
print("没有⻋票,不能上⻋")
print("亲爱的,那就下次⻅了,⼀票难求啊~~~~(>_<)~~~~")
结果:有车票的情况
有⻋票,可以上⽕⻋
终于可以⻅到Ta了,美滋滋~~~
结果2:没有⻋票的情况
没有⻋票,不能上课
亲爱的,那就下次⻅了,⼀票难求啊~~~(>_<)~~~
<2>练⼀练
要求:从键盘输⼊⼑⼦的⻓度,如果⼑⼦⻓度没有超过10cm,则允许上⽕ ⻋,否则不允许上⽕⻋
elif
- 想一想
if能完成当xxx时做事情
if-else能完成当xxx时做事情1,否则做事情2
如果有这样⼀种情况:当xxx1时做事情1,当xxx2时做事情2,当 xxx3时做事情3,那该怎么实现呢?
- 答:
elif
<1>elif的功能
elif的使⽤格式如下:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
说明:
- 当xxx1满⾜时,执⾏事情1,然后整个if结束
- 当xxx1不满⾜时,那么判断xxx2,如果xxx2满⾜,则执⾏事情2,然后 整个if结束
- 当xxx1不满⾜时,xxx2也不满⾜,如果xxx3满⾜,则执⾏事情3,然后 整个if结束
demo:
score = 77
if score>=90 and score<=100:
print('本次考试,等级为A')
elif score>=80 and score<90:
print('本次考试,等级为B')
elif score>=70 and score<80:
print('本次考试,等级为C')
elif score>=60 and score<70:
print('本次考试,等级为D')
elif score>=0 and score<60:
print('本次考试,等级为E')
<2>注意点
- 1️⃣可以和else⼀起使⽤
if 性别为男性:
输出男性的特征
...
elif 性别为⼥性:
输出⼥性的特征
...
else:
第三种性别的特征
...
说明:
- 当 “性别为男性”满⾜时,执⾏“输出男性的特征”的相关代码
- 当 “性别为男性”不满⾜时,如果“性别为⼥性”满⾜,则执⾏“输出⼥性的特征”的相关代码
- 当 “性别为男性”不满⾜,“性别为⼥性”也不满⾜,那么久默认执⾏ else后⾯的代码,即 “第三种性别的特征”相关代码
- 2️⃣elif必须和if⼀起使⽤,否则出错
if嵌套
通过学习if的基本⽤法,已经知道了
- 当需要满⾜条件去做事情的这种情况需要使⽤if
- 当满⾜条件时做事情A,不满⾜条件做事情B的这种情况使⽤if-else
想⼀想:
坐⽕⻋或者地铁的实际情况是:先进⾏安检如果安检通过才会判断是否有⻋票,或者是先检查是否有⻋票之后才会进⾏安检,即实际的情况某 个判断是再另外⼀个判断成⽴的基础上进⾏的,这样的情况该怎样解决呢?
答:
if嵌套
<1>if嵌套的格式
if 条件1:
满⾜条件1 做的事情1
满⾜条件1 做的事情2
...(省略)...
if 条件2:
满⾜条件2 做的事情1
满⾜条件2 做的事情2
- 说明
1️⃣外层的if判断,也可以是if-else
2️⃣内层的if判断,也可以是if-else
3️⃣根据实际开发的情况,进⾏选择
<2>if嵌套的应⽤
demo:
chePiao = 1 # ⽤1代表有⻋票,0代表没有⻋票
daoLenght = 9 # ⼑⼦的⻓度,单位为cm
if chePiao == 1:
print("有⻋票,可以进站")
if daoLenght < 10:
print("通过安检")
print("终于可以⻅到Ta了,美滋滋~~~")
else:
print("没有通过安检")
print("⼑⼦的⻓度超过规定,等待警察处理...")
else:
print("没有⻋票,不能进站")
print("亲爱的,那就下次⻅了,⼀票难求啊~~~~(>_<)~~~~")
结果1:chePiao = 1;daoLenght = 9
有⻋票,可以进站
通过安检
终于可以⻅到Ta了,美滋滋~~~
结果2:chePiao = 1;daoLenght = 20
有⻋票,可以进站
没有通过安检
⼑⼦的⻓度超过规定,等待警察处理...
结果3:chePiao = 0;daoLenght = 9
没有⻋票,不能进站
亲爱的,那就下次⻅了,⼀票难求啊~~~(>_<)~~~
结果4:chePiao = 0;daoLenght = 20
没有⻋票,不能进站
亲爱的,那就下次⻅了,⼀票难求啊~~~(>_<)~~~
想⼀想:为什么结果3和结果4相同???
<3>练⼀练
情节描述:上公交⻋,并且可以有座位坐下
要求:输⼊公交卡当前的余额,只要超过2元,就可以上公交⻋;如果空座位 的数量⼤于0,就可以坐下
应⽤:猜拳游戏
<1>运⾏效果:
<2>参考代码:
import random
player = input('请输⼊:剪⼑(0) ⽯头(1) 布(2):')
player = int(player)
computer = random.randint(0,2)
# ⽤来进⾏测试
#print('player=%d,computer=%d',(player,computer))
if ((player == 0) and (computer == 2)) or ((player ==1) and (computer ==
print('获胜,哈哈,你太厉害了')
elif player == computer:
print('平局,要不再来⼀局')
else:
print('输了,不要⾛,洗洗⼿接着来,决战到天亮')
循环介绍
<1>⽣活中的循环场景
跑道
⻛扇
CF加特林
<2>软件开发中循环的使⽤场景
跟媳妇承认错误,说⼀万遍"媳妇⼉,我错了"
print("媳妇⼉,我错了")
print("媳妇⼉,我错了")
print("媳妇⼉,我错了")
...(还有99997遍)...
使⽤循环语句⼀句话搞定
i = 0
while i<10000:
print("媳妇⼉,我错了")
i+=1
<3>⼩总结
- ⼀般情况下,需要多次重复执⾏的代码,都可以⽤循环的⽅式来完成
- 循环不是必须要使⽤的,但是为了提⾼代码的重复使⽤率,所以有经验的开发者都会采⽤循环
while循环
<1>while循环的格式
while 条件:
条件满⾜时,做的事情1
条件满⾜时,做的事情2
条件满⾜时,做的事情3
...(省略)...
demo
i = 0
while i<5:
print("当前是第%d次执⾏循环"%(i+1))
print("i=%d"%i)
i+=1
结果:
当前是第1次执⾏循环
i=0
当前是第2次执⾏循环
i=1
当前是第3次执⾏循环
i=2
当前是第4次执⾏循环
i=3
当前是第5次执⾏循环
i=4
while循环应⽤
1. 计算1~100的累积和(包含1和100)
参考代码如下:
#encoding=utf-8
i = 1
sum = 0
while i<=100:
sum = sum + i
i += 1
print("1~100的累积和为:%d"%sum)
2. 计算1~100之间偶数的累积和(包含1和100)
参考代码如下:
#encoding=utf-8
i = 1
sum = 0
while i<=100:
if i%2 == 0:
sum = sum + i
i+=1
print("1~100的累积和为:%d"%sum)
while循环嵌套
- 前⾯学习过if的嵌套了,想⼀想if嵌套是什么样⼦的?
- 类似if的嵌套,while嵌套就是:while⾥⾯还有while
<1>while嵌套的格式
while 条件1:
条件1满⾜时,做的事情1
条件1满⾜时,做的事情2
条件1满⾜时,做的事情3
...(省略)...
while 条件2:
条件2满⾜时,做的事情1
条件2满⾜时,做的事情2
条件2满⾜时,做的事情3
...(省略)...
<2>while嵌套应⽤⼀
要求:打印如下图形:
*
* *
* * *
* * * *
* * * * *
参考代码:
i = 1
while i<=5:
j = 1
while j<=i:
print("* ",end='')
j+=1
print("\n")
i+=1
<3>while嵌套应⽤⼆:九九乘法表
参考代码:
i = 1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d "%(j,i,i*j),end='')
j+=1
print('\n')
i+=1
for循环
像while循环⼀样,for可以完成循环的功能。
在Python中 for循环可以遍历任何序列的项⽬,如⼀个列表或者⼀个字符串
等。
for循环的格式
for 临时变量 in 列表或者字符串等:
循环满⾜条件时执⾏的代码
else:
循环不满⾜条件时执⾏的代码
demo1
name = 'dongGe'
for x in name:
print(x)
运⾏结果如下:
demo2
name = ''
for x in name:
print(x)
else:
print("没有数据")
运⾏结果如下:
break和continue
1. break
<1> for循环
- 普通的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
print(x)
执行结果:
----
d
----
o
----
n
----
g
----
G
----
e
- 带有break的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
break
print(x)
运行结果:
----
d
----
o
----
n
<2> while循环
- 普通的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
print(i)
执行结果:
----
1
----
2
----
3
----
4
----
5
----
6
----
7
----
8
----
9
----
10
- 带有break的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
if i==5:
break
print(i)
运行结果:
----
1
----
2
----
3
----
4
----
小总结:
- break的作⽤:⽤来结束整个循环
2. continue
<1> for循环
- 带有continue的循环示例如下:、
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
continue
print(x)
运行结果:
----
d
----
o
----
n
----
----
G
----
e
<2> while循环
- 带有continue的循环示例如下:
i = 0
while i<10:
i = i+1
print('----')
if i==5:
continue
print(i)
运行结果:
----
1
----
2
----
3
----
4
----
----
6
----
7
----
8
----
9
----
10
小总结:
- continue的作⽤:⽤来结束本次循环,紧接着执⾏下⼀次的循环
3. 注意点
- break/continue只能⽤在循环中,除此以外不能单独使⽤
- break/continue在嵌套循环中,只对最近的⼀层循环起作⽤
总结
- if往往⽤来对条件是否满⾜进⾏判断
- if有4中基本的使⽤⽅法:
1️⃣基本方法
if 条件:
满⾜时做的事情
2️⃣满⾜与否执⾏不同的事情
if 条件:
满⾜时做的事情
else:
不满⾜时做的事情
3️⃣多个条件的判断
if 条件:
满⾜时做的事情
elif 条件2:
满⾜条件2时做的事情
elif 条件3:
满⾜条件3时做的事情
else:
条件都不满⾜时做的事情
4️⃣嵌套
if 条件:
满⾜时做的事情
这⾥还可以放⼊其他任何形式的if判断语句
- while循环⼀般通过数值是否满⾜来确定循环的条件
i = 0
while i<10:
print("hello")
i+=1
- for循环⼀般是对能保存多个数据的变量,进⾏遍历
name = 'dongGe'
for x in name:
print(x)
- if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能
作业
1. 使⽤if,编写程序,实现以下功能:
- 从键盘获取⽤户名、密码
- 如果⽤户名和密码都正确(预先设定⼀个⽤户名和密码),那么就显示“欢迎进⼊xxx的世界”,否则提示密码或者⽤户名错误
username = input("请输入用户名:")
password = input("请输入密码:")
if username == 'root' and password == '123456':
print("欢迎进⼊xxx的世界")
else:
print("用户名或密码错误")
2. 使⽤while,完成以下图形的输出
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
i = 1
while i <= 5:
j = 1
while j<=i:
print("* ", end='')
j += 1
print("\n")
i += 1
m = 1
while m < 5:
n = 1
while n < 5:
if n >= m:
print("* ", end='')
n += 1
print("\n")
m += 1
倒三角形的打印可以用for循环
for i in range(1, 5):
for j in range(1, 5):
if j>=i:
print("* ", end='')
print("\n")