冲击python二级——布尔操作符,比较操作符,控制流的基础
##认识个新朋友
>>> input("请输入你的姓名:")
请输入你的姓名:白加黑
'白加黑'
>>>
>>>help(input)
input(prompt=None, /)Read a string from standard input. The trailing newline is stripped.The prompt string, if given, is printed to standard output without a trailing newline before reading input.If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.On *nix systems, readline is used if available.
解读一下,input([prompt])如果存在 prompt 实参(必须是字符串类型哦),则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。
来吧展示:
>>> a=input()
1000
>>> a
'1000'
>>> b=input("请输入一个数字:")
请输入一个数字:250
>>> b
'250'
>>>
>>> type(a)
<class 'str'>
>>> type(b)
<class 'str'>
我用变量接收了input输入后返回的值,并且这个值一定是个字符串类型。
tips: nix:Ctrl-D, Windows: Ctrl-Z(如果出错请输入ctrl+D,或者win系统输入ctrl+z)
我们要编写一个程序如何控制呢,大家都知道,计算机内部是用二进制,也就是0和1来进行计算的,我们如何控制程序的流程呢,这就产生了逻辑值检测,就是检测对与错,真与假,是和否,来确定下个流程走到哪里。
“布尔”数据类型
只有两种值:True 和 False。Boolean(布尔)的首字母大写,因为这个数据类型,是根据数学家 George Boole 命名的。在作为 Python 代码输入时,布尔值 True 和 False不像字符串,两边没有引号,它们总是以大写字母 T 或 F 开头,
看官方文档解释:
任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为下文所述布尔运算的操作数来使用。一个对象在默认情况下均被视为真值,除非当该对象被调用时其所属类定义了 bool() 方法且返回 False 或是定义了 len() 方法且返回零。
1 下面基本完整地列出了会被视为假值的内置对象:
• 被定义为假值的常量: None 和 False。
• 任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
• 空的序列和多项集: ‘’, (), [], {}, set(), range(0)
产生布尔值结果的运算和内置函数总是返回 0 或 False 作为假值,1 或 True 作为真值,除非另行说明。(重要例外:布尔运算 or 和 and 总是返回其中一个操作数。)
布尔操作符
布尔运算 — and, or, not
这些属于布尔运算,按优先级升序排列:
运算 结果: 备注
x or y if x is false, then y, else x (1)
x and y if x is false, then x, else y (2)
not x if x is false, then True, else False (3)
注释:
(1) 这是个短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值。
(2) 这是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。
(3) not 的优先级比非布尔运算符低,因此 not a == b 会被解读为not (a == b) 而 a == not b 会引发语法错误。
and 和 or 操作符总是接受两个布尔值(或表达式),所以它们被认为是“二元”操作符。如果两个布尔值都为 True,and 操作符就将表达式求值为 True,否则求值为 False。在交互式环境中输入某个使用 and 的表达式,看看效果。
表达式 求值为
True and True True
True and False False
False and True False
False and False False
只要有一个布尔值为真,or 操作符就将表达式求值为 True。如果都
是 False,所求值为 False。
表达式 求值为
True or True True
True or False True
False or True True
False or False False
和 and 和 or 不同,not 操作符只作用于一个布尔值(或表达式)。not 操作符求值为相反的布尔值。
表达式 求值为
not True False
not False True
**
“比较操作符”比较两个值,求值为一个布尔值。
**
运算 含意
< 严格小于
<= 小于或等于
> 严格大于
>= 大于或等于
== 等于
!= 不等于
is 对象标识
is not 否定的对象标识
还有两种具有相同语法优先级的运算 in 和 not in,
看例子如下:
>>> 42 == 42
True
>>> 42 == 99
False
>>> 2 != 3
True
>>> 2 != 2
False
>>> 'hello' == 'hello'
True
>>> 'hello' == 'Hello'
False
>>> 'dog' != 'cat'
True
>>> True == True
True
>>> True != False
True
>>> 42 == 42.0
True
>>> 42 == '42'
False
请注意,整型或浮点型的值永远不会与字符串相等。表达式 42 == '42’求值为False 是因为,Python 认为整数 42 与字符串’42’不同。另一方面,<、>、<=和>=操作符仅用于整型和浮点型值。
操作符的区别:
你可能已经注意到,==操作符(等于)有两个等号,而=操作符(赋值)只有一个等号。这两个操作符很容易混淆。只要记住:
操作符(等于)问两个值是否彼此相同。
=操作符(赋值)将右边的值放到左边的变量中。
为了记住谁是谁,请注意操作符(等于)包含两个字符,就像!=操作符(不等于)包含两个字符一样。
混合布尔和比较操作符
既然比较操作符求值为布尔值,就可以和布尔操作符一起,在表达式中使用。回忆一下,and、or 和 not 操作符称为布尔操作符是因为,它们总是操作于布尔值。虽然像 4 < 5 这样的表达式不是布尔值,但可以求值为布尔值。在交互式环境中,尝试输入一些使用比较操作符的布尔表达式。
>>> (4 < 5) and (5 < 6)
True
>>> (4 < 5) and (9 < 6)
False
计算机将先求值左边的表达式,然后再求值右边的表达式。知道两个布尔值后,它又将整个表达式再求值为一个布尔值。
>>> 2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
True
和算术操作符一样,布尔操作符也有操作顺序。在所有算术和比较操作符求值后,Python 先求值 not 操作符,然后是 and 操作符,然后是 or 操作符。
这个时候你可能会觉得很简单,都是常识,然而也许事实不像你想的那样:
a= 3 and 4 a的值是多少
a= 0 and 4 a的值是多少
a= 0 or 1 a的值?
a= "abcd" or 0 a的值?
a= not 0 a?
>>> a=3
>>> b=4
>>> c= a-b or b-a c?
>>> c = not a-b and b+a
>>> c
希望上面的几个问题,能引发你更深的思考,搞清楚,搞透,这就是基础,请读者认真理解,下一讲,我们将通过一个例子,来学习python的代码书写格式,和控制流语句。
**
不积跬步,无以至千里.不积小流,无以成江海
**
冲击python二级——布尔操作符,比较操作符,控制流的基础相关推荐
- 【Python】Python中内置的%操作符
Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式.Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的. 格式符为真实值预留位置,并控制显示的格式.格式符可以 ...
- Python中的数学运算操作符使用进阶
原文链接:https://www.jb51.net/article/86988.htm 这篇文章主要介绍了Python中的数学运算操作符使用进阶,也包括运算赋值操作符等基本知识的小结 Python中对 ...
- Python中列表常用的操作符
下面介绍Python中列表的常用操作符 1.比较操作符:>.<.==.注意,列表比较大小的时候是从第一个元素开始比较,而不看列表长度,返回True或者False 2.逻辑操作符:and.o ...
- 全面讲解Python列表数组(二),列表分区/片,列表操作符,比较操作符,逻辑操作符,连接操作符,重复操作符,成员关系操作符;
一 列表分片 简单概括来说就是可以从一个列表中一次性取出来多个元素等操作; 这里有一个列表 member=[1,2,3,4,5] member[1:3] [2,3] 还可以 member[:3] [1 ...
- Python二级试题(一)
第一套试题 关于数据的存储结构,以下选项描述正确的是 A 数据所占的存储空间量 B 数据在计算机中的顺序存储方式 C 数据的逻辑结构在计算机中的表示 D 存储在外存中的数据 正确答案: C 关于线性链 ...
- python二级题库 第四套
刷题软件(模拟python二级考试) 操作题刷题软件 公众h:露露IT 回复:python二级 一.选择题 1. 可以作为软件测试对象的是(). A. 需求规格说明 B. 源程序 C. 设计规格说明 ...
- 【备考】计算机python二级过考指南(考点+典例)
python操作题题型分类整理:Python计算机二级过考指南_一只自力更生的芋圆的博客-CSDN博客_输入一个非空字符串此条整理Python计算机二级等级考试的程序设计题,但也基本包含了大部分Pyt ...
- 全国计算机等级考试python教材.pdf_全国计算机等级考试python二级教程,视频资源下载...
课程名称 全国计算机等级考试python二级教程,视频资源下载 课程目录 1.第01讲考试介绍和程序设计基本方法 2.第02讲基本语法元素 3.第03讲函数input和eval和print 4.第04 ...
- Python二级笔记整理
Python二级笔记整理 00讲 1. 单选: 2. 操作 3.教材 4.python3.5.2以上 环境配置 Hello World 01讲 01章 程序设计的基本方法 导图 程序设计语言 编译和解 ...
最新文章
- 华为某研究生程序员哀叹:年薪五十多万,存款一百万,却不知道未来怎么走!...
- ATG中的定时Job处理
- DCMTK:测试ConcatenationCreator类
- linux ssh终端解决中文乱码的问题
- MySQL数据库的mysqldump完全备份、binlog的增量备份与还原
- 什么是节点光端机?总线型光端机有哪些优势?
- 飞鸽传书2009绿色版 官方网站下载地址
- 【GlobalMapper精品教程】008:如何根据指定区域(shp、kml、cad)下载卫星影像?
- Word2016目录自动生成+页码从目录页后面显示
- ios逆向工具tweak logos语法总结
- html页面悬浮提示框,js实现页面悬浮框
- yigo基础学习笔记4_业务报表
- 二十三种设计模式简介及类图(转载)
- Linux指定网卡名称
- libgdx开发记录
- opencv学习笔记9:根据图片颜色分割图像
- 西安交通大学计算机张飞导师,航海学院邀请西安交通大学段战胜教授来院作学术报告...
- android x86酷狗音乐,酷狗音乐怀旧版
- libvirt 的使用
- java毕业设计水利施工安全检测系统设mybatis+源码+调试部署+系统+数据库+lw