专栏首页小闫笔记每天 3 分钟,小闫带你学 Python(七)

每天 3 分钟,小闫带你学 Python(七)

正文共:4598 字 6 图 预计阅读时间:12分钟

每日分享

1.物来顺应

2.未来不迎

3.当事不杂

4.季过不恋

今天暂时不分享英文名言,因为昨天晚上看到4句话,特别想分享给大家。第一句『物来顺应』告诫我们事情已经发生了,就要顺应去面对;第二句『未来不迎』劝告我们不要为没有发生的事情而焦虑;第三句『当事不杂』告诉我们专注于做好当前的事情;第四句『季过不恋』指明已经过去的事情,无论是好是坏,都不必去留恋。

来源于曾国藩的语句解读

前言

昨天好朋友『小鱼干』告诉我这一系列的文章最好加上数字标明,好让读者了解学习顺序。这一点确实是我的疏忽,知错就改,善莫大焉。同时感谢『小鱼干』的付出 ~

昨天的文章『每天 3 分钟,小闫带你学 Python』讲解了输入、运算符号以及数据类型的转换。今天开始进入有难度的一节,那便是判断语句。开始咯 ~

1.判断语句

1.1 场景带入

大家肯定都去过一个地方,那便是网吧。网吧有一个规定,大家应该熟悉,未成年人不得入内。怎么判断呢?可以查验你的身份证,如果小于18岁,那么不可以让你上网。

另一个场景,在超市内,只有你付过款,才可以将物品带出超市。判断便是:如果你支付了该物品的钱,那么你可以将物品带出超市。

还有超多的例子,像这样『如果 ... 那么 ...』的句子我们称之为判断语句。即当条件满足时执行,不满足则禁止执行。在编程的世界里,其实也充满了这样的场景。

1.2 if 语句

我们早就知道 Python 语言简单易读,那么如何体现呢?容我慢慢道来。如果 的英文是什么?张口就来 if义夫 ~

Python 里面还真是利用 if 进行判断的。先看一下一般格式:

if 判断的条件:
    条件成立后要执行的内容

拿一开始进网吧的场景来举例:

age = 21
if age >= 18:
    print("恭喜你,可以上网!")

我们可以看到输出结果为:

恭喜你,可以上网!

再以超市的场景举例:

flag 代表标记,1表示付过款,0表示没有付过款。编程中经常使用这样的标记来表述是或则否。

flag = 1
if flag == 1:
    print("购物愉快,欢迎下次光临")

输出为:

购物愉快,欢迎下次光临

再看一种情况:条件不满足

age = 16
if age >= 18:
    print("恭喜你,可以上网!")
print("小屁孩,回去写作业~")

输出结果为:

小屁孩,回去写作业~

因为 age 为16,不满足判断条件,所以 if 代码块里面的内容没有执行,而是向下顺序执行。

此处说明一下,Python 的程序在启动后,会自上向下按顺序执行。Python 中是严格缩进的,即该缩进的地方必须缩进,既美观又逻辑清晰。那么什么时候该缩进呢?如何缩进呢?一个完整的处理部分,比如上面的 if 判断语句(判断条件和满足后执行内容是一个整体)组成一个代码块,整体和下面的 print("小屁孩,回去写作业~")等级一致,可以看做执行完判断语句后执行该输出语句。如果还是不理解,可以类比Word 文档中一级标题和二级标题的区别。如果 print("恭喜你,可以上网!")不缩进,那么它与下一个输出 print("小屁孩,回去写作业~") 等级一致。会按顺序都输出,相当于都变成了一级标题。为了让其表示在代码块内部,就用到了缩进,缩进是 4 个空格,或者键盘上的 1 个 tab 键。

1.3 比较运算符

大家看上面的程序时,也许会有疑问:>= 可以理解为 大于等于,但是等于为什么是 == 而不是 = 呢?其他的比较如何表示呢?下面为大家做了一个总结。

为了区别于赋值运算符 = ,我们将等于表示为 ==

运算符

描述

示例

==

检查两个操作数的值是否相等,如果是则条件变为真。

如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

上述表格最右侧一列为示例,可以在表格区域左右滑动进行查看。大家可以发散思维,想象其更多的应用场景。

1.4 逻辑运算符

先将总结的内容奉上,后面我们再进行解释:

运算符

逻辑表达式

描述

实例

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,也就是可以执行对应的代码。结合生活中的例子,我们可以看到一些招聘上写着要求:本科以上学历,且英语过四级。是不是很眼熟,它是 的关系,即只有两个条件都符合才可以应聘。

结合代码再举个例:

# and : 左右表达式都为True,整个表达式结果才为 True
if (1 == 1) and (10 > 3):
    print("条件成立!")
# 输出结果
条件成立!

or

此逻辑运算符代表的是 。表示符号左右两个条件,只要有一个条件满足,整体判断条件就成立,返回 True。结合生活中的例子也可以理解,比如招聘上写着掌握以下任意一种工具使用即可,列举了很多,但是它们是 的关系,也就是你只要会一个,那么就可以应聘。

结合代码再次举例:

# or : 左右表达式有一个为True,整个表达式结果就为 True
if (1 == 2) or (10 > 3):
    print("条件成立!")
# 输出结果
条件成立!

not

这个更加好理解,相当于英语中的否定前缀。一个条件不成立,如果前面加一个 not 可以将其转化为条件成立,即取反。

# not:将右边表达式的逻辑结果取反,Ture变为False,False变为True
if not (1 == 2):
    print("条件成立!")
# 输出结果
条件成立!

1.5 if-else

先翻译一下单词, if 代表如果;else 代表其他。当条件成立的时候执行内容1,那么条件不成立如何执行内容2呢?那便是使用 if-else 。先看一下格式:

if 判断条件:
    条件成立时执行内容
else:
    条件不成立时执行内容

再次强调,一定要注意缩进问题。之前在给学生批改作业时,经常发现缩进导致的错误,这样的问题应该避免。

举个例子:

age = 16
if age >= 18:
    print("恭喜你,可以上网!")
else:
    print("小屁孩,回去写作业~")

执行结果为:

小屁孩,回去写作业~

细心的同学应该已经发现,结果怎么同上面出现过的一个示例代码相同,再回顾一下:

age = 16
if age >= 18:
    print("恭喜你,可以上网!")
print("小屁孩,回去写作业~")

没错,它们的结果是一样的。结合之前说的代码块,大家会发现使用 if-else 后,代码更整齐,直观,逻辑性更强。大家结合实际情况选择使用即可。

1.6 elif

截止目前,已经可以实现,选择输出两块内容了。现在有一种情况:如果分数在 60 到 80 之间表示为好,分数在 80 到 90 之间表示为良,90 到 100 之间则表示为优。该怎么办?答案便是使用 elif

同样先看一下格式:

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3
...
else:
    事情n

有了 elif 之后,我们就可以进行多条件判断了。

接下来将开始介绍的分数例子实现一下:

if score >= 60 and score < 80:
    print("成绩为 好")
elif score >= 80 and score < 90:
    print("成绩为 良")
elif score >= 90 and score <= 100:
    print("成绩为 优")
else:
    print("成绩不合格")

注意:elif 必须和 if 一起使用。如果有 else ,else 一定放在最后使用。

1.7 if 嵌套

不难理解,if 嵌套便是在 if 中再次使用 if 判断。比如有一种情况,本科学历以上,且英语过四级。也许你会想:

if 学历 >= 本科 and 英语 >= 四级:
    print("恭喜你满足条件,可以投递简历")

上面的形式,我们称为伪代码,即不能直接运行,但是可以表示逻辑关系。以后大家会经常见到。所以如果你按照上面的代码去 PyCharm 中运行,报错就不要怪我了。

还可以表示为:

if 学历 >= 本科:
    if 英语 >= 四级:
        print("恭喜你满足条件,可以投递简历")

注意缩进问题。 内层的 if 和外层的 if 都可以使用 else 和 elif 。看似复杂,我们可以将其分开理解。

2.作业

今日学习目标:掌握判断条件的使用,达到不论场景如何都熟练应用。

1.编写一个石头剪刀布的游戏。

参考思路:将里面的对比,抽象成判断,比如石头和剪刀比较,如果你是石头且我是剪刀,那么我输了。

参考代码:

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('输了,不要走,洗洗手接着来,决战到天亮')

importrandom 是导入模块 random,后面会进行讲解。此处理解为我们需要用到一个工具,这个工具在工具箱 random中。我们先导入,然后就可以使用了。 random.randint(0,2) 代表我们使用工具箱 random 中的 randint() 这个工具(函数)。使用这个工具,我们先设置一下 randint(0,2) ,它的功能是产生随机整数:0、1、2 中的某一个。 其余的知识前面都有讲解到,大家可以自己写一下,也可以先理解参考代码。

本文分享自微信公众号 - 全栈技术精选(Pythonnote),作者:小闫同学啊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python技术面试题(二十三)

    The brain is like a muscle. When it is in use we feel very good. Understanding i...

    小闫同学啊
  • 每日分享20190413

    Everyone you will ever meet knows something you don't.

    小闫同学啊
  • JavaScript小练习

    小闫同学啊
  • futureTask的超时原理解析

    java/util/concurrent/AbstractExecutorService.java

    codecraft
  • Python学习笔记(5)practic

    py3study
  • 【java基础】ConcurrentHashMap1.7和1.8的不同实现

    在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap...

    用户5640963
  • python基础(一)

    py3study
  • 终于让采集侠自动采集了

    用织梦采集侠一段时间了,觉得这个插件真的不错,尤其是新版本,可以结合DEDE自动的采集规则来进行采集。一下采集功能就非常强大了。

    用户1191760
  • R语言写2048游戏

           2048 是一款益智游戏,只需要用方向键让两两相同的数字碰撞就会诞生一个翻倍的数字,初始数字由 2 或者 4 构成,直到游戏界面全部被填满,游戏结...

    用户1680321
  • Java基础知识-if条件语句的使用介绍

    这章节给大家介绍一下Java中经常使用的if条件语句是如何使用的和在项目开发过程中if语句的注意事项。 1.首先就是最基础的写法if(boolean类型) 和i...

    用户1149268

扫码关注云+社区

领取腾讯云代金券