if
要判断的条件:
条件成立时,要做的事情
age =
30
print(
"------if判断开始------")
if age >=
18:
print(
"我已经成年了")
print(
"------if判断结束------")
------
if判断开始------
我已经成年了
------
if判断结束------
age =
16
print(
"------if判断开始------")
if age >=
18:
print(
"我已经成年了")
print(
"------if判断结束------")
------
if判断开始------
------
if判断结束------
小总结:
要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”
想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?
答:使用 if-else
if
条件:
满足条件时的操作
else:
不满足条件时的操作
demo1
ticket =
1
# 用1代表有车票,0代表没有车票
if ticket ==
1:
print(
"有车票,可以上火车")
print(
"终于可以见到Ta了,美滋滋~~~")
else:
print(
"没有车票,不能上车")
print(
"亲爱的,那就下次见了")
结果1:有车票的情况
有车票,可以上火车
终于可以见到Ta了,美滋滋~~~
结果2:没有车票的情况
没有车票,不能上车
亲爱的,那就下次见了
想一想:
如果有这样一种情况:当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情3,那该怎么实现呢?
答:
elif
elif的使用格式如下:
if xxx1:
事情
1
elif xxx2:
事情
2
elif xxx3:
事情
3
说明:
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')
可以和else一起使用
if
性别为男性:
输出男性的体重
...
elif
性别为女性:
输出女性的体重
...
else:
第三种性别的体重
...
说明:
elif必须和if一起使用,否则出错 else 一般用在最后,即所有条件都不满足时使用
通过学习if的基本用法,已经知道了
想一想:
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
答:
if嵌套
if
条件
1:
满足条件
1
做的事情
1
满足条件
1
做的事情
2
if
条件
2:
满足条件
2
做的事情
1
满足条件
2
做的事情
2
demo:
ticket =
1
# 用1代表有车票,0代表没有车票
knife_length =
9
# 刀子的长度,单位为cm
if ticket ==
1:
print(
"有车票,可以进站")
if knife_length <
10:
print(
"通过安检")
print(
"终于可以见到Ta了,美滋滋~~~")
else:
print(
"没有通过安检")
print(
"刀子的长度超过规定,等待警察处理...")
else:
print(
"没有车票,不能进站")
print(
"亲爱的,那就下次见了")
结果1:ticket = 1;knife_length = 9
有车票,可以进站
通过安检
终于可以见到Ta了,美滋滋~~~
结果2:ticket = 1;knife_length = 20
有车票,可以进站
没有通过安检
刀子的长度超过规定,等待警察处理...
结果3:ticket = 0;knife_length = 9
没有车票,不能进站
亲爱的,那就下次见了
结果4:ticket = 0;knife_length = 20
没有车票,不能进站
亲爱的,那就下次见了
在Python中允许类似于 5
的写法,这种写法在很多编程语言里都是不允许的,需要使用逻辑与运算符进行连接。
a =
101
20
# True11
20
# False
格式: 变量 = 值1 if 条件 else 值2
当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量,其实就是对if...else 语句的一种简写。
示例:
a =
10
b =
30if a > b:
c = a
else:
c = b
print(
'a和b两个数的较大值是%d'%c)
以上的 if...else
代码可以简写成以下格式:
a =
10
b =
30
c = a
if a>b
else b
print(
'a和b两个数的较大值是%d'%c)
if 语句需要一个判断条件,这个判断条件的结果需要一个布尔值。如果此时输入的判断条件不是一个布尔值,在代码执行的过程中,会将这个值自动转换成为一个布尔值。
if
1<
2:
# if语句的判断条件需要一个布尔值
print(
'1小于2')
if
"hello":
# if 判断条件后没有传入布尔值,会自动把它转换成为布尔值
print(
"这段代码是否会输出呢?")
提示:在Python中,转换成为布尔值时,只有 0,"",'',None,(),{},[]
会被转换成为False,其他都会被转换成为True
while
判断条件:
代码块
我们发现,while循环的语法结构和if语句的结构很相像,那么这两个之间有什么区别呢?
if
判断条件:
代码块
区别在于,if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块;而while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句... 直到最后条件不成立。
输出十遍hello world
i =
1while i <=
10:
print(
'hello world')
i +=
1
# 一定要记得让 i += 1, 否则会造成死循环
除了while循环以外,for可以完成循环的功能。 在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
for
临时变量
in
列表或者字符串等可迭代对象:
循环满足条件时执行的代码
for s
in
"hello":
print(s)
输出结果:
h
e
l
l
o
for i
in range(
5):
print(i)
输出结果:
0
1
2
3
4
使用for循环,计算1~100的和
range 可以生成数字供 for 循环遍历,它可以传递三个参数,分别表示 起始、结束和步长。
>>> range(
2,
10,
3)
[
2,
5,
8]
>>> for x
in range(
2,
10,
3):
... print(x)
...
258
break和continue都用在循环语句里,用来控制循环。
结束整个循环。
i =
0while i <
10:
i +=
1
if i ==
7:
break
print(i)
输出结果是:
123456
结束本次循环,开始下一轮循环。
i =
1while i <=
10:
if i ==
7:
continue
print(i)
i +=
1
输出结果是:
1234568910
前面学习过if的嵌套了,想一想if嵌套是什么样子的? 类似if的嵌套,while嵌套就是:while里面还有while
while
条件
1:
外循环代码块
while
条件
2:
内循环代码块
内循环一旦开始,则要执行到条件2不满足,才会继续执行外循环的代码。
i =
0
# 内外循环的控制变量不能一样while i <
5:
j =
0
# 内循环的控制变量必须要在外循环里初始化
while j <
5:
print(
'j= %d' % j)
j +=
1
print(
'i= %d' % i)
i +=
1
在Python中,循环语句还可以和else语句联合使用。
语法结构:
while
判断条件:
条件成立时,循环体代码
else:
条件不成立时,执行的代码
从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。
查看下面的代码:
i =
0while i <
10:
if i ==
5:
break
i +=
1else:
print(
'循环条件不成立时执行的代码')