03-流程控制语句

  1. 条件判断语句

1.1 if 语句的使用

一、if判断语句介绍

  • if语句是用来进行判断的,其使用格式如下:

if 要判断的条件:
        条件成立时,要做的事情
  • demo1:

    age = 30

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")
  • 运行结果:

    ------if判断开始------
    我已经成年了
    ------if判断结束------
  • demo2:

    age = 16

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")
  • 运行结果:

    ------if判断开始------
    ------if判断结束------

小总结:

  • 以上2个demo仅仅是age变量的值不一样,导致结果却不同;能够看得出if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。

  • 注意:代码的缩进为一个tab键,或者4个空格

二、练一练

要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”

使用input从键盘中获取数据,并且存入到一个变量中
使用if语句,来判断 age>=18是否成立
>>> age=int(input("请输入您的年龄:"))
请输入您的年龄:23
>>> if age>18:
...     print("亦成年")
...     if age < 18:
...             pirnt("未成年")
... 
已成年

1.2 if-else

想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?
答:使用 if-else

一、if-else的使用格式

if 条件:
        满足条件时的操作
    else:
        不满足条件时的操作

demo1

    ticket = 1# 用1代表有车票,0代表没有车票
    if ticket == 1:
        print("有车票,可以上火车")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有车票,不能上车")
        print("亲爱的,那就下次见了")

结果1:有车票的情况

    有车票,可以上火车
    终于可以见到Ta了,美滋滋~~~

结果2:没有车票的情况

    没有车票,不能上车
    亲爱的,那就下次见了

<2>练一练

要求:从键盘输入身高,如果身高没有超过150cm,则进动物园不用买票,否则需要买票。

h=int(input("身高:"))
if h>150:
    print("要买票")
else:
    print("不用买票")

ljx@ljx-virtual-machine:~/桌面$ python3 01.py 
身高:130
不用买票

1.3 elif的使用

  • 想一想:

如果有这样一种情况:当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情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结束

demo:

    score = 77
    if score>=90and score<=100:
        print('本次考试,等级为A')
    elif score>=80and score<90:
        print('本次考试,等级为B')
    elif score>=70and score<80:
        print('本次考试,等级为C')
    elif score>=60and score<70:
        print('本次考试,等级为D')
    elif score>=0and score<60:
        print('本次考试,等级为E')

二、注意点

  • 可以和else一起使用

    if 性别为男性:
       输出男性的体重
       ...
   elif 性别为女性:
       输出女性的体重
       ...
   else:
       第三种性别的体重
       ...
  • 说明:

  • 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码

  • 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码

  • 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码

elif必须和if一起使用,否则出错 else 一般用在最后,即所有条件都不满足时使用

1.4 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嵌套的应用

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

    没有车票,不能进站
    亲爱的,那就下次见了
  • 想一想:为什么结果3和结果4相同???

三、练一练

情节描述:上公交车,并且可以有座位坐下

要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。

1.5 应用:猜拳游戏

<1>运行效果:

<2>参考代码:

import random

player = input('请输入:剪刀(0)  石头(1)  布(2):')

player = int(player)

# 产生随机整数:0、1、2 中的某一个
computer = random.randint(0,2)

# 用来进行测试
#print('player=%d,computer=%d',(player,computer))
if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):
    print('获胜,哈哈,你太厉害了')
elif player == computer:
    print('平局,要不再来一局')
else:
    print('输了,不要走,洗洗手接着来,决战到天亮')

if补充内容

一、区间比较:

Python中允许类似于 5<a<10 的写法,这种写法在很多编程语言里都是不允许的,需要使用逻辑与运算符进行连接。

a = 10
1<a<20# True

11<a<20# False

二、三元运算符:

格式:变量 = 值1 if 条件 else 值2当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量,其实就是对if...else 语句的一种简写。

示例:

a = 10
b = 30

if 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

2. 循环语句

2.1 while语句的使用

while 语法

while 判断条件:
    代码块

我们发现,while循环的语法结构和if语句的结构很相像,那么这两个之间有什么区别呢?

if 判断条件:
    代码块

区别在于,if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块;而while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句... 直到最后条件不成立。

示例

输出十遍hello world

i = 1
while i <= 10:
    print('hello world')
    i += 1# 一定要记得让 i += 1, 否则会造成死循环

练习

  1. 求1~100的和

  1. 求1~100所有偶数的和

2.2 for语句的使用

for循环

除了while循环以外,for可以完成循环的功能。在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for循环的格式

for 临时变量 in 列表或者字符串等可迭代对象:
    循环满足条件时执行的代码

for

循环的使用

  • 遍历字符串:

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

range 可以生成数字供 for 循环遍历,它可以传递三个参数,分别表示 起始、结束和步长。

>>> range(2, 10, 3)
[2, 5, 8]
>>> for x in range(2, 10, 3):
...     print(x)
...
258

break和continue

break和continue都用在循环语句里,用来控制循环。

break的使用

结束整个循环。

i = 0
while i < 10:
    i += 1
    if i == 7:
        break
    print(i)

输出结果是:

123456

continue的使用

结束本次循环,开始下一轮循环。

i = 1
while i <= 10:
    if i == 7:
        continue
    print(i)
    i += 1

输出结果是:

1234568910

练习

  1. 打印 1~100 内,不能被 7 整除的所有数字。

  1. 计算 1~100 内,所有不能被 7 整除的数字之和。

  1. 不断的询问用户,"我爱你,你爱我吗?",只有用户回答"爱"时,结束循环。

注意点

  1. 在Python中,break和continue只能用于循环语句中。

  1. break和continue在嵌套循环中使用时,只对最内层循环有效。

嵌套循环

前面学习过if的嵌套了,想一想if嵌套是什么样子的?类似if的嵌套,while嵌套就是: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

练习:

  • 打印如下图形

*
* *
* * *
* * * *
* * * * *
  • 打印九九乘法表。

2.5 for...else 语句的使用

在Python中,循环语句还可以和else语句联合使用。

语法结构:

while 判断条件:
  条件成立时,循环体代码
else:
  条件不成立时,执行的代码

从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。

查看下面的代码:

i = 0
while i < 10:
    if i == 5:
        break
    i += 1
else:
    print('循环条件不成立时执行的代码')

上述代码中,else语句的代码是否会执行,为什么?

不执行

练习

打印1~100所有的质数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值