Python的从0到1(十四)-Python的条件判断1

我们在使用无线耳机听音乐的时候,我们可以设置轻点两下耳机就播放下一首。如果我只设置轻点两下耳机,就播放下一首,那么,由于缺少正在使用耳机(耳机塞进耳朵视为正在使用)的前提条件,无论你是否正在使用,只要轻点两下,就会播放下一首。

所以,我们的设置应该是这样:轻点两下,如果耳机正在使用中,就播放下一首。

而这个设置中的如果...就...逻辑,就是与计算机沟通的逻辑---条件判断,其作用就是明确的让计算机知道:在什么条件下,该去做什么。

Python的从0到1(十四)-Python的条件判断1

对于Python也是一样的,Python之所以可以完成自动化任务,比如Python爬虫项目中可以成功获取我们指定的数据信息,就是因为它可以执行条件判断。

接下来,我们通过中国新四大发明之一的“扫码支付”来感受一下逻辑判断的趣味性。

二维码支付听起来似乎是一项十分新鲜的技术,其实,这个跟手机报差不多,算不上新颖的技术。早在上世纪90年代,二维码支付技术就已经形成,只不过在国内是近几年刚刚兴起的。

2014年春节微信红包上线,为扫码支付奠定了用户基础。


import random
print("请输入红包金额,最多两位小数")

money=round(float(input()),2)
print("请输入红包数量")
number=int(input())
print("请输入红包方式:1.拼手气红包 2.普通红包 3.专属红包")
mode=int(input())
money=int(money*100)
if mode == 1:
    for i in range(1, number):
        a = random.randint(1, money-(number-i))  # 随机生成红包金额
        money = money-a
        print("第" + str(i) + "个人,收到" + str(a/100) + "元,")
    print("第" + str(number) + "个人,收到" + str(money/100) + "元,")
elif mode == 2:
    for i in range(1, number+1):  # 限制人数
        print("第" + str(i) + "个人,收到" + str(round((money/100)/number,2)) + "元")
else:
    print("指定人获取"+str(money/100)+"元")
复制代码

你看到没?这就是条件判断如果…就…逻辑产生的魔法。那么,这个条件判断的代码,要怎么码呢?

条件判断

Python的从0到1(十四)-Python的条件判断1

在Python宇宙,条件判断语句总共有三种表现形式,我们先从最简单的单向判断:if开始说起:

单向判断:if

Python的从0到1(十四)-Python的条件判断1

单向判断:if代表什么呢?我们知道在发红包的时候,如果专属红包超过200元,就会提示单个红包金额不可超过200元。

你会发现,上面的示例中,有一个如果...就。那么,我们用代码翻译这段话,就可以用if来表述,下面,请你来运行一下下方代码。

# 为单个红包面额
money = 201

# 条件:如果专属模式单个红包超过200元

if money > 200:

    # 结果:显示‘单个红包金额不可超过200元’的结果

    print('单个红包金额不可超过200元')
复制代码

那么,这段代码是如何实现的呢?

首先,第一行代码,用赋值运算符=对当前情况进行赋值:将红包面额201赋值给变量---红包面额

第二步,确定if条件:如果变量money的值>200时,就执行冒号后,下一行的命令。

第三步,用print()命令打印出结果:单个红包金额不可超过200元。所以,if语句的单向判断逻辑,我们可以这样归纳:

Python的从0到1(十四)-Python的条件判断1

在这里,你可能注意到了一个细节:在条件判断代码中的冒号 : 后、下一行内容的前面,会空几个格,但这是为什么呢?

Python的从0到1(十四)-Python的条件判断1

首先,在计算机的沟通语言中,空格的学名叫缩进,比如我们写文章都要空两个格,这就叫首行缩进。 对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格或一个Tab键】

并且,在if条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车,我们的开发工具(用来编写Python代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。

此时,被缩进的内容(print()函数)和if条件语句组成了一个代码块(一个整体),成为了if条件下的内部命令。

这意味着:如果赋值满足if条件,计算机就会准确执行if条件内部的命令(即缩进的代码块)。

那么下面,请你运行下面这个代码,看看运行结果是什么。

# 为单个红包面额
money = 201

# 条件:如果专属模式单个红包超过200元

if money > 200:

    # 结果:显示‘单个红包金额不可超过200元’的结果

print('单个红包金额不可超过200元')
复制代码

执行上述代码,控制台提示错误:IndentationError: expected an indented block

翻译一下就是缩进错误:期望一个缩进块

这是因为,当我们去掉缩进时,if条件和print命令成为了两个不同的代码组,属于平行关系。你看:if条件下面,缺少了可以执行的动作。我们想一下:无论条件成不成立,都不会执行什么操作,这个条件的存在没有任何意义。


 

上一篇:2021-2022-1 20211318 《信息安全专业导论》第十一周学习总结


下一篇:java学习-动手动脑