前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天 3 分钟,小闫带你学 Python(七)

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

作者头像
小闫同学啊
发布2019-07-30 16:25:13
4870
发布2019-07-30 16:25:13
举报
文章被收录于专栏:小闫笔记

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

每日分享

1.物来顺应

2.未来不迎

3.当事不杂

4.季过不恋

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

来源于曾国藩的语句解读

前言

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

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

1.判断语句

1.1 场景带入

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

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

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

1.2 if 语句

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

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

代码语言:javascript
复制
if 判断的条件:
    条件成立后要执行的内容

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

代码语言:javascript
复制
age = 21
if age >= 18:
    print("恭喜你,可以上网!")

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

代码语言:javascript
复制
恭喜你,可以上网!

再以超市的场景举例:

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

代码语言:javascript
复制
flag = 1
if flag == 1:
    print("购物愉快,欢迎下次光临")

输出为:

代码语言:javascript
复制
购物愉快,欢迎下次光临

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

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

输出结果为:

代码语言:javascript
复制
小屁孩,回去写作业~

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

结合代码再举个例:

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

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

结合代码再次举例:

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

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

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

1.5 if-else

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

代码语言:javascript
复制
if 判断条件:
    条件成立时执行内容
else:
    条件不成立时执行内容

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

举个例子:

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

执行结果为:

代码语言:javascript
复制
小屁孩,回去写作业~

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

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

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

1.6 elif

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

同样先看一下格式:

代码语言:javascript
复制
if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3
...
else:
    事情n

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

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

代码语言:javascript
复制
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 判断。比如有一种情况,本科学历以上,且英语过四级。也许你会想:

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

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

还可以表示为:

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

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

2.作业

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

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

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

参考代码:

代码语言:javascript
复制
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 中的某一个。 其余的知识前面都有讲解到,大家可以自己写一下,也可以先理解参考代码。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈技术精选 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 每日分享
  • 前言
  • 1.判断语句
    • 1.1 场景带入
      • 1.2 if 语句
        • 1.3 比较运算符
          • 1.4 逻辑运算符
            • and
            • or
            • not
          • 1.5 if-else
            • 1.6 elif
              • 1.7 if 嵌套
              • 2.作业
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档