冲击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的代码书写格式,和控制流语句。

**

不积跬步,无以至千里.不积小流,无以成江海

**
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~白+黑

真乃人中龙凤,必成大器,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值