一、判断语句介绍
如果某些条件满足,才能做某件事情;条件不满足时,则不能做,这就是所谓的判断。
不仅生活中有,在软件开发中"判断"功能也经常会用到。
二、if语句
if
判断语句介绍
-
if
语句是用来进行判断的,其使用格式如下:
if 要判断的条件:
条件成立时,要做的事情
- demo1:
age = 30
print("------if判断开始------")
if age >= 18:
print("我已经成年了")
print("------if判断结束------")
- 运行结果:
------if判断开始------
我已经成年了
------if判断结束------
-
if
判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。 - 注意:代码的缩进为一个
tab
键,或者4个空格。
if-else
在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?
答:使用
if-else
if-else
的使用格式
if 条件:
满足条件时要做的事情1
满足条件时要做的事情2
满足条件时要做的事情3
...(省略)...
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
不满足条件时要做的事情3
...(省略)...
demo1:
chePiao = 1 # 用1代表有车票,0代表没有车票
if chePiao == 1:
print("有车票,可以上火车")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有车票,不能上车")
print("亲爱的,那就下次见了"
结果1:有车票的情况
有车票,可以上火车
终于可以见到Ta了,美滋滋~~~
结果2:没有车票的情况
没有车票,不能上车
亲爱的,那就下次见了
三、关系、逻辑运算符
比较(即关系)运算符
python中的比较运算符如下表:
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是则条件变为真。 | 如a=3,b=3,则(a == b) 为 True |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3,则(a != b) 为 True |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a > b) 为 True |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则(a < b) 为 False |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a >= b) 为 True |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则(a <= b) 为 True |
>>> # 关系运算符
...
>>> # == 等于:表示左右两个操作数是否相等,如果相等则整个表达式的值为 True;不相等则为False
... num1 = 15
>>> num2 = 20
>>>
>>> print(num1 == num2)
False
>>>
>>> # != 不等于
... print(num1 != num2)
True
逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
>>> # 逻辑运算符
...
>>> # and : 左右表达式都为True,整个表达式结果才为 True
... if (1 == 1) and (10 > 3):
... print("条件成立!")
...
条件成立!
>>> # or : 左右表达式有一个为True,整个表达式结果就为 True
... if (1 == 2) or (10 > 3):
... print("条件成立!")
...
条件成立!
>>> # not:将右边表达式的逻辑结果取反,Ture变为False,False变为True
... if not (1 == 2):
... print("条件成立!")
...
条件成立!
>>>
四、elif
如果有这样一种情况:当xxx1满足时做事情1;当xxx1不满足、xxx2满足时做事情2;当xxx2不满足、xxx3满足时做事情3,那该怎么实现呢?
答:
elif
elif
的功能
elif
的使用格式如下:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
- 说明:
- 当xxx1满足时,执行事情1,然后整个if结束
- 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
- 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束
注意点
可以和else
一起使用
if 性别为男性:
输出男性的体重
...
elif 性别为女性:
输出女性的体重
...
else:
第三种性别的体重
...
- 说明:
- 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码
- 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码
- 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码
elif
必须和if
一起使用,否则出错
else
一般用在最后,即所有条件都不满足时使用
五、if嵌套
通过学习if
的基本用法,已经知道了
- 当需要满足条件去做事情的这种情况需要使用
if
- 当满足条件时做事情A,不满足条件做事情B的这种情况使用
if-else
有些情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
答:if嵌套
if嵌套的格式
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
- 说明
- 外层的
if
判断,也可以是if-else
- 内层的
if
判断,也可以是if-else
- 根据实际开发的情况,进行选择
- 外层的
if嵌套的应用
demo1:
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
没有车票,不能进站
亲爱的,那就下次见了
六、if的补充知识
区间比较:
a = 10
1<a<20 # True
11<a<20 # False
三元运算符:
格式:
变量 = 值1 if 条件 else 值2
当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量。
示例:
a = 10
b = 20
c = a if a>b else b
print(c) # 条件不成立,把 b 的值赋给 c,也就是 c 的值为 20
数字的逻辑运算:
a = 0
b = 1
c = 3
# and 运算,只要有一个值为 0 则结果为0,否则结果为最后一个非 0 数字
a and b # 0
b and a # 0
c and b # 1
b and c # 3
# or 运算,只有所有值为 0 结果才为0,否则结果为第一个非 0 数字
a or a # 0
a or b # 1
b or a # 1
c or b # 3
b or c # 1
七、循环语句介绍
软件开发中循环的使用场景
跟媳妇承认错误,说一万遍"媳妇儿,我错了"
print("媳妇儿,我错了")
print("媳妇儿,我错了")
print("媳妇儿,我错了")
...(还有99997遍)...
使用循环语句一句话搞定:
i = 0
while i < 10000:
print("媳妇儿,我错了")
i += 1
总结
-
while
和if
的用法基本类似,区别在于:if
条件成立,则执行一次;while
条件成立,则重复执行,直到条件不成立为止。 - 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成。
- 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环。
八、while循环
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)
参考代码如下:
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print("1~100的累积和为:%d" % sum)
计算1~100之间偶数的累积和(包含1和100)
参考代码如下:
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累积和为:%d" % sum)
十、break和continue
1. break
break
会立即终止循环,跳出当前循环,执行之后的代码:
i = 10
while i > 0:
print("妈,还要我刷啊~~~~~~~~~")
if i == 5:
print('好了,不用刷了')
break
print("正在刷 %d 个碗" % i)
i -= 1
print('程序结束')
运行结果:
妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
程序结束
2. continue
continue
会立即结束当前这一次循环,跳转到下一轮循环的条件判断,代码还在当前循环中执行。
i = 10
while i > 0:
print("妈,还要我刷啊~~~~~~~~~")
if i == 5:
print('好了,不用刷了')
i -= 1 # continue 之前要注意修改 i 的值,否则容易导致死循环
continue
print("正在刷 %d 个碗" % i)
i -= 1
print('程序结束')
运行结果:
妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
妈,还要我刷啊~~~~~~~~~
正在刷 4 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 3 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 2 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 1 个碗
程序结束
3. 注意点
-
break
/continue
只能用在循环中,除此以外不能单独使用 -
break
/continue
在嵌套循环中,只对最近的一层循环起作用
十一、while循环的嵌套及应用
类似
if
的嵌套,while
嵌套就是:while
里面还有while
while
嵌套的格式
while 条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
...(省略)...
while 条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
条件2满足时,做的事情3
...(省略)...
while
嵌套应用一
要求:打印如下图形:
*
* *
* * *
* * * *
* * * * *
参考代码:
i = 1
while i <= 5:
j = 1
while j <= i:
print("* ", end = '') # end = '',为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串
j += 1
print("\n")
i += 1
while
嵌套应用二:九九乘法表
参考代码:
i = 1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d " % (j, i, i*j), end = '') # %-2d:2位左对齐 不够两位补空格
j+=1
print('\n')
i+=1
十二、for循环
像
while
循环一样,for
可以完成循环的功能。在Python中
for
循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
for
循环的格式
for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码
demo1:
name = 'itheima'
for x in name:
print(x)
运行结果如下:
i
t
h
e
i
m
a
demo2:
name = 'itheima'
for x in name:
if x == 'e':
print("不能使用字符 e")
else:
print(x)
运行结果如下:
i
t
h
不能使用字符 e
i
m
a
demo3:
for
循环的 else
语句只有当循环正常结束才会执行,也就是没有被 break
打断才会执行
name = 'itcast'
for x in name:
if x == 'e':
print("不能使用字符 e")
break
else:
print(x)
else:
print('没有出现禁止使用的字符')
运行结果如下:
i
t
h
c
a
s
t
没有出现禁止使用的字符