从零开始的python学习(三)P28+P29+P30+P31

本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb

上节课介绍了程序的描述方式,顺序结果,选择结构if结构,本笔记记录的知识点有双分支结构、多分支结构、嵌套if的使用和多个条件的连接。

1.双分支结构

如上图所示,它的语法结构是

if 条件:
    print(满足条件的语句块) #如果满足表达式条件,就会执行该语句

else:
    print(不满足条件的语句块) #不满足上面的表达式,就转出执行else语句

1)下面是实验代码 :

number=eval(input('请输入您的6位中奖号码:'))
#使用if...else语句
if number==987654: #等值判断
    print('恭喜您!中奖了!') #如果满足表达式条件,就会执行该语句

else:
    print('您未中本期大奖') #不满足上面的表达式,就转出上面执行else语句

结果为:

2)下列是一个新的if条件语句的语法结构(简化版):

【条件为真的结果】 if 条件 else 【条件为假的结果】
print(对应输出的语句块)

实验代码如下:

print('--------以上代码可以使用条件表达式进行简化--------')
number=eval(input('请输入您的6位中奖号码:'))
#简化的条件:上面判断很简单,二选一执行,而且每个语句块中只有一句代码,这种情况下我们可以使用一句来完成
result='恭喜您!中奖了!' if number==987654 else '您未中本期大奖'
#原理:用if条件表达式number==987654来判断是否为True,是就执行if前面的语句
#如果number==987654结果为False,就执行else后面的语句
print(result)

 结果如下:

更更简化的操作,就是连赋值又不用,直接输出 。也就是

print(满足条件的语句块 if 条件 else 未满足条件的语句块)

实验代码 如下: 

print('----更更简化的代码,不要赋值了---')
number=eval(input('请输入您的6位中奖号码:'))
print('恭喜您!中奖了!' if number==987654 else '您未中本期大奖')

 结果如下:

2. 多分支结构

 它的执行过程是这样的:从上往下,先判断表达式1的结果是否是True,是就直接输出语句块1,并且后面的表达式都不会再判断;如果是False,才进行表达式2的判断,如果是True就直接输出语句块2,并且后面的表达式都不会再判断;如果是False,才进行表达式3的判断.......直到所有的表达式都是False才会执行else,也就是第n+1个语句块。

注意,else这一步并不是多分支结构必须的一个,也就是可以没有else。

下面是实验代码:

score=eval(input('请输入您的成绩: '))
#多分支结构
if score<0 or score>100: #也就是score根本没落入一个可判断的范围内,直接执行第一个语句块
    print('成绩有误!')
elif 0<=score<60:
    print('E')
elif 60<=score<70:
    print('D')
elif 70<=score<80:
    print('C')
elif 80<=score<90:
    print('B')
else:
    print('A')

结果如下:

3.嵌套结构

左边红框是这个if-else结构的大框架。

右边是将大框架展开,细看这个嵌套结果,如果判定表达式1为True,则进入第一个大语句块,判断表达式2是否为True,是则执行语句块1,结束程序;如果是False则执行第一个大语句块的else语句块2,结束程序。    如果判定表达式1为False,则进入第二个大语句块,判断表达式3是否为True,是则执行语句块3,结束程序;如果是False则执行第二个大语句块的else语句块4,结束程序。

它的语法大概这样 :

变量=input(根据问题)
if 变量满足条件a: #条件a往往跟变量有关系
    另一个变量名=eval(input(根据问题))
    if 满足条件1:      #往往这个条件跟另一个变量名有关系
        语句块1
    elif 满足条件2:
        语句块2
    else:
        语句块3
else:
    if 满足条件3:
        语句块4
    elif 满足条件4:
        语句块5
    else:
        语句块6

代码实验如下:

answer=input('请问,您喝酒了吗?')
if answer=='y': #answer的值为y表示喝酒了
    proof=eval(input('请输入酒精含量:'))
    if proof<20:
        print('构不成酒驾,祝您一路平安')
    elif proof<80: #这里没有写成20<=proof<80是因为从上往下判断,如果小于20在第一个里面已经判断了
        print('已构成酒驾,请不要开车')
    else:
        print('已构成醉驾,请千万不要开车')
else:
    print('你走吧')

输入y和90,结果示意:

4.多个条件的连接

1)and的连接

 也就是说使用and连接多个条件时,必须全都满足才会执行语句块。

其语法格式大概如下:

输入跟表达式1有关的变量值
输入跟表达式2有关的变量值
if 表达式1 and 表达式2: #两个必须都是True,执行语句块1
    语句块1
else:
    语句块2            #两个中只要有一个False,就执行语句块2

举例子,当输入用户名和密码时就用上了多条件的连接:

user_name=input('请输入您的用户名:')
pwd=input('请输入您的密码:')
if user_name=='ysj' and pwd=='8888':
    print('登陆成功')
else:
    print('用户名或密码不正确')

 结果如下:

2)or的连接

其语法结构大概如下:

输入跟表达式1有关的变量值
输入跟表达式2有关的变量值
if 表达式1 or 表达式2:  #两个中只要有一个True,就执行语句块1
    语句块1
else:
    语句块2            #两个都是False,就执行语句块2

and是必须全都是True才执行语句块,or与and连接的不同在于,or是只要有一个表达式是True就执行语句块,只有全都是False才退出表达式,去执行else的内容(如果有else的话,当然else不是必须有的)。

实验代码如下:

score=eval(input('请输入您的成绩: '))
if score<0 or score>100:
    print('成绩有误')
else:
    print('您的成绩为:',score)

输入-1,满足第一个表达式,结果如下:

输入99,此时两个表达式都是False从而执行else,结果如下:

本节完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值