本文目录一览:
python练习题请教?
脚本从左向右执行:
ls[2] = [10, "LIST"]
ls[2][-1] = "LIST"
就是 [10, "LIST"][-1]
就是 "LIST"
ls[2][-1][1]
就是 "LIST"[1]
就是 "LIST"
的第二个字符,就是 I
所以 ls[2][-1][1] = "I"
Python基础(19) - 使用fstring方法格式化字符串
- 使用fstring方法可以直接格式化
- fstring方式指的是在字符串中直接使用Python变量,这需要在字符串的前面用
f
标注
Python教程:第19篇 逻辑运算符
我们在高一时学习过命题的逻辑运算:与、或、非,在计算机科学中,其运算规则也是类似的(基本原理相同,但操作数与返回结果有所不同),Python也不例外。
在Python中,与用and
、或用or
、非用not
表示。逻辑运算符一般用于操作返回值为bool
类型的表达式,以表达式的值True
(真)和False
(假)为例。其运算规则总览如下:
需要特别注意的是,在Python中,虽然逻辑运算符的操作数一般是运算结果为逻辑值的表达式,但也可以是运算结果为数值、字符串、元组、列表、集合、字典等类型的表达式。返回值也不一定是逻辑(bool
)类型。而有些教程错误地称只能操作bool
类型的表达式以及始终返回bool
类型。
我们可以用两个not
查看某种数据等价的逻辑值,下面是一些常见数据类型的等价规则:
一、数值除了0
视为False
,其余数值(包括小数、负数、复数)均视为True
:
二、字符串除了空字符串视为False
外,其余均视为True
(包括空格、制表、换行、回车等空白符,也包括字符串'False'
):
三、对于元组、列表、集合、字典也是如此,空的视为False
,非空的均视为True
,即使其中只有一个值为False
或0
的数据:
有一种情况容易产生误解,就是使用小括号将False
包围起来,这其实也是表示bool
值,而不是元组,元组是使用小括号包围的数据列表,但是如果只有一个成员,数据后面要加一个逗号,正如上述示例中所示那样,下面的示例显示了小括号包围的False
的数据类型:
四、对于一个类也是如此,非空类视为True
(注:无法创建什么都不包含的空类):
五、None
视为False
:
总结一下就是: 数值0
、空字符串、空元组、空列表、空集合、空字典以及None
,均视为逻辑值False
,其余均视为True
。
需要注意的是,逻辑运算符的返回值不一定是bool
类型。
了解了非bool
类型的操作数等价的逻辑值之后,还需要了解逻辑运算符的完全运算规则,才能得知具体会返回什么值。
and
为逻辑与(也称逻辑且),其使用语法如下:
表达式A and 表达式B
其中操作数表达式A
和表达式B
一般均为逻辑值。但也可以是数值、字符串、元组、列表、集合、字典、对象等类型。
其运算通用规则为: 如果 表达式A
的运算结果等价于False
,返回其运算结果,不再计算表达式B
。否则返回 表达式B
的运算结果。
对于最常用的两个操作数均为逻辑值的情况,只有当两个操作数均为True
的情况下为True
,其余情况均为False
,以下是所有四种可能情况的运行示例:
其中两个操作数也都可以是非逻辑值。
当第1个操作数结果等价于False
时,比如False
、0
、None
、空字符串、空元组、空列表、空集合、空字典等,整个逻辑表达式返回第1个操作数,注意,返回的是操作数的原始值,而不是等价值False
,下面是运行示例(None
表示什么也没有,所以没有输出。set()
返回空集合):
当第1个操作数等价于True
时(非数值0
、非空字符串等都等价于True
),则不管第2个表达式的返回值是什么,都将返回第2个值,当然这时第2个表达式不能有语法错误:
or
为逻辑或,其使用格式如下:
表达式A or 表达式B
其中操作数表达式A
和表达式B
与and
中的操作数含义相同。
其运算通用规则为: 如果 表达式A
的运算结果等价于True
,返回其运算结果,不再计算表达式B
。否则返回 表达式B
的运算结果。 其与and
的区别在于,or
当表达式A
为True
则返回表达式A
,and
当其为False
时返回表达式A
。
以上面and
的示例为模板,可以看到,or
与and
的返回值正好相反。
与and
类似,当表达式A
相当于True
时,表达式B
也不会计算:
下面是常见的两个操作数均为逻辑值的情况,or
运算符的四种可能情况的运行示例(除非两个值都是False
时返回False
,其余情况返回True
):
not
为逻辑非,其使用格式如下:
not 表达式
其运算规则为: 当 表达式 的运算结果为False
、0
、None
、空字符串、空元组、空列表、空集合、空字典时,返回True
。其余情况均返回False
。
下面是一些不同数据类型的运算示例:
与and
和or
不同的是,not
的返回值始终是bool
类型,即只有True
和False
两种可能的取值。
所以,可以使用not not 表达式
来查看一个非逻辑值是等价True
还是False
,正如上文非逻辑操作数等价的逻辑值中所示的那样。
当然,not
最常用的用法还是逆转逻辑值,下面是两种可能情况的运行示例:
逻辑运算符优先级:not
> and
> or
。
下面的示例证明and
先于or
运算:
下面的示例证明not
先于or
运算:
下面的示例证明not
先于and
运算:
另外,所有的逻辑运算符都比元组逗号分隔符的优先级要高,以and
为例,比如下面是一个元组:
下面的例子中:
先计算了3 and 4
,然后再组合成了元组,相当于:
而不是:
not
与or
的优先级也比其要高,下面是示例:
所以虽然元组有时可以省略小括号,但在与逻辑运算符运算时,元组请始终使用小括号。
这篇文章的整理与编写花费了我近十小时时间,从上午写到晚上。是我目前最具匠心的文章,如果说以前我的文章只适合初学者,偶尔超水平发挥才适合中级学者,那么这篇文章我感觉对高水平人员也有重要的参考意义。
就我目前所知,我所写的教程,在全网找不到第二个比它更优秀的了,当然,每个人心中都有一杆称,不同读者可能也有不同的际遇,我能做的只是做好自己。
所以,如果你觉得此文不错,可以分享给你身边的朋友、同学、同事、同乡,世界很大也很小,很多东西,初见只能依靠缘分。而再见就需要你的主动了,缘分天注定,努力亦可改变命运。
Python教程:第11篇 变量赋值
Python教程:第17篇 比较运算符
Python教程:第18篇 算术运算符