导航:首页 > 编程语言 > python逻辑值和值的区别

python逻辑值和值的区别

发布时间:2022-06-01 02:48:16

python中“物理行”和“逻辑行”的区别

物理行:就是程序员所写代码的所在行。
逻辑行:是指源代码经过预编译后,代码所在的那一行。
Python假定每个物理行都对应着一个逻辑行。例如:print( "Hello World" ) 就是一个物理行,Python希望每行只有一个语句,因为这样看起来更加易读。
如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(; )来特别地标明这种用法。分号表示一个逻辑行/语句的结束。

⑵ python中= 和==的区别

在Python"
//
"表示整数除法。
Python其它表达式:
Python的表达式写法与C/C++类似。只是在某些写法有所差别。
主要的算术运算符与C/C++类似。+,
-,
*,
/,
//,
**,
~,
%分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。
>>,
<<表示右移和左移。&,
|,
^表示二进制的AND,
OR,
XOR运算。>,
<,
==,
!=,
<=,
>=用于比较两个表达式的值,
分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~,
|,
^,
&,
<<,
>>必须应用于整数。
(2)python逻辑值和值的区别扩展阅读:
Python使用and,
or,
not表示逻辑运算。
is,
is
not用于比较两个变量是否是同一个对象。in,
not
in用于判断一个对象是否属于另外一个对象。
Python支持“列表推导式”(list
comprehension),比如计算0-9的平方和:
>>>
sum(x
*
x
for
x
in
range(10))
285
Python使用lambda表示匿名函数。匿名函数体只能是表达式。比如:
>>>
add=lambda
x,
y
:
x
+
y
>>>
add(3,2)
Python使用y
if
cond
else
x表示条件表达式。意思是当cond为真时,表达式的值为y,否则表达式的值为x。相当于C++和Java里的cond?y:x。
Python区分列表(list)和元组(tuple)两种类型。list的写法是[1,2,3],而tuple的写法是(1,2,3)。可以改变list中的元素,而不能改变tuple。
在某些情况下,tuple的括号可以省略。tuple对于赋值语句有特殊的处理。因此,可以同时赋值给多个变量,比如:
>>>
x,
y=1,2
#
同时给x,y赋值,最终结果:x=1,
y=2
特别地,可以使用以下这种形式来交换两个变量的值:
>>>
x,
y=y,
x
#最终结果:y=1,
x=2
Python使用'(单引号)和"(双引号)来表示字符串。与Perl、Unix
Shell语言或者Ruby、Groovy等语言不一样,两种符号作用相同。一般地,如果字符串中出现了双引号,就使用单引号来表示字符串;反之则使用双引号。如果都没有出现,就依个人喜好选择。
出现在字符串中的\(反斜杠)被解释为特殊字符,比如\n表示换行符。表达式前加r指示Python不解释字符串中出现的\。这种写法通常用于编写正则表达式或者Windows文件路径。
Python支持列表切割(list
slices),可以取得完整列表的一部分。支持切割操作的类型有str,
bytes,
list,
tuple等。
它的语法是...[left:right]或者...[left:right:stride]。假定nums变量的值是[1,
3,
5,
7,
8,
13,
20],那么下面几个语句为真:
nums[2:5]
==
[5,
7,
8]
从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素。
nums[1:]
==
[3,
5,
7,
8,
13,
20]
切割到最后一个元素。
nums[:-3]
==
[1,
3,
5,
7]
从最开始的元素一直切割到倒数第3个元素。
nums[:]
==
[1,
3,
5,
7,
8,
13,
20]
返回所有元素。改变新的列表不会影响到nums。
nums[1:5:2]
==
[3,
7]
从下标为1的元素切割到下标为5的元素但不包含下标为5的元素,且步长为2。
参考资料:
搜狗网络——Python(计算机程序设计语言)

⑶ 请教一个关于python的问题

布尔类型是一个逻辑量,区别于算术量的是逻辑量表示了两个对立的矛盾,也就是说逻辑值只可能有两个,就是真和假。
在python中(也在大多数的编程语言中),真(True)在计算机内部表示为数值类型1,而假(False)表示成0.
可以在python中测试:True == 1 结果为True,False == 0 结果为False.但是True == 任何其他的(不是1) 都为False, False也同理。
这只是计算机表示的问题,python规定 None,‘’,“”,“”“”“”,'''''',(),[],{},0,0.0,0L,0j,False为假,其他为真。
a=b 是算术运算,即把b的值赋给a,在计算机内部,由于python是由c语言实现的,用到了指针,a和b指向了同一块内存。
可测试:a=1 然后 b=a 比较id(a)和id(b),结果是一样的,说明a和b的地址一样。
a==b 是逻辑运算,得出的是逻辑值,就是真或假。
那怎么用呢?很简单,当要处理算术问题的时候当然用算术运算,有逻辑问题(通常所说的判断)的时候呢就用逻辑运算啦。

⑷ Python中的10条冷门知识

下面时Python中一些不常见的冷门知识,感兴趣的小伙伴不妨来学习一下。
1、省略号也是对象
… 这是省略号,在Python中,一切皆对象。它也不例外。在 Python 中,它叫做 Ellipsis 。在 Python 3 中你可以直接写…来得到这玩意。
>>> ...
Ellipsis
>>> type(...)
<class 'ellipsis'>
而在 Python2 中没有…这个语法,只能直接写Ellipsis来获取。
>>> Ellipsis
Ellipsis
>>> type(Ellipsis)
<type 'ellipsis'>
它转为布尔值时为真
>>> bool(...)
True
最后,这东西是一个单例。
>>> id(...)
4362672336
>>> id(...)
4362672336
这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。
在网上只看到这个 用 … 代替 pass ,稍微有点用,但又不是必须使用的。
try:
1/0
except ZeroDivisionError:
...
2、增量赋值的性能更好
诸如 += 和 *= 这些运算符,叫做 增量赋值运算符。这里使用用 += 举例,以下两种写法,在效果上是等价的。
# 第一种
a = 1 ; a += 1
# 第二种
a = 1; a = a + 1
+= 其背后使用的魔法方法是 iadd,如果没有实现这个方法则会退而求其次,使用 add 。
这两种写法有什么区别呢?
用列表举例 a += b,使用 add 的话就像是使用了a.extend(b),如果使用 add 的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。
所以在能使用增量赋值的时候尽量使用它。
3、and 和or 的取值顺序
and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。
如果一个or表达式中所有值都为真,Python会选择第一个值,而and表达式则会选择第二个。
>>>(2 or 3) * (5 and 7)
14 # 2*7
4、修改解释器提示符
>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>>
>>> sys.ps2 = '---------------- '
>>> sys.ps1 = 'Python编程时光>>>'
Python编程时光>>>for i in range(2):
---------------- print (i)
----------------
5、默认参数最好不为可变对象
函数的参数分三种
可变参数
默认参数
关键字参数
今天要说的是,传递默认参数时,新手很容易踩雷的一个坑。
先来看一个示例:
def func(item, item_list=[]):
item_list.append(item)
print(item_list)
func('iphone')
func('xiaomi', item_list=['oppo','vivo'])
func('huawei')
在这里,你可以暂停一下,思考一下会输出什么?
思考过后,你的答案是否和下面的一致呢
['iphone']
['oppo', 'vivo', 'xiaomi']
['iphone', 'huawei']
如果是,那你可以跳过这部分内容,如果不是,请接着往下看,这里来分析一下。
Python 中的 def 语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性。
对于参数中提供了初始值的参数,由于 Python 中的函数参数传递的是对象,也可以认为是传地址,在第一次初始化 def 的时候,会先生成这个可变对象的内存地址,然后将这个默认参数 item_list 会与这个内存地址绑定。在后面的函数调用中,如果调用方指定了新的默认值,就会将原来的默认值覆盖。如果调用方没有指定新的默认值,那就会使用原来的默认值。
在这里插入图片描述
6、访问类中的私有方法
大家都知道,类中可供直接调用的方法,只有公有方法(protected类型的方法也可以,但是不建议)。也就是说,类的私有方法是无法直接调用的。
这里先看一下例子
class Kls():
def public(self):
print('Hello public world!')
def __private(self):
print('Hello private world!')
def call_private(self):
self.__private()
ins = Kls()
# 调用公有方法,没问题
ins.public()
# 直接调用私有方法,不行
ins.__private()
# 但你可以通过内部公有方法,进行代理
ins.call_private()
既然都是方法,那我们真的没有方法可以直接调用吗?
当然有啦,只是建议你千万不要这样弄,这里只是普及,让你了解一下。
# 调用私有方法,以下两种等价
ins._Kls__private()
ins.call_private()
7、时有时无的切片异常
这是个简单例子
my_list = [1, 2, 3, 4, 5]
print(my_list[5])
Traceback (most recent call last):
File "F:/Python Script/test.py", line 2, in <mole>
print(my_list[5])
IndexError: list index out of range
来看看,如下这种写法就不会报索引异常,执行my_list[5:],会返回一个新list:[]。
my_list = [1, 2, 3]
print(my_list[5:])
8、for 死循环
for 循环可以说是 基础得不能再基础的知识点了。但是如果让你用 for 写一个死循环,你会写吗?(问题来自群友 陈**)
这是个开放性的问题,在往下看之前,建议你先尝试自己思考,你会如何解答。
好了,如果你还没有思路,那就来看一下 一个海外 MIT 群友的回答:
for i in iter(int, 1):pass
是不是懵逼了。iter 还有这种用法?这为啥是个死循环?
这真的是个冷知识,关于这个知识点,你如果看中文网站,可能找不到相关资料。
还好你可以通过 IDE 看py源码里的注释内容,介绍了很详细的使用方法。
原来iter有两种使用方法,通常我们的认知是第一种,将一个列表转化为一个迭代器。
而第二种方法,他接收一个 callable对象,和一个sentinel 参数。第一个对象会一直运行,直到它返回 sentinel 值才结束。
在这里插入图片描述
那int 呢,这又是一个知识点,int 是一个内建方法。通过看注释,可以看出它是有默认值0的。你可以在终端上输入 int() 看看是不是返回0。
在这里插入图片描述
由于int() 永远返回0,永远返回不了1,所以这个 for 循环会没有终点。一直运行下去。
9、奇怪的字符串
字符串类型作为 Python 中最常用的数据类型之一,Python解释器为了提高字符串使用的效率和使用性能,做了很多优化。
例如:Python 解释器中使用了 intern(字符串驻留)的技术来提高字符串效率。
什么是 intern 机制?就是同样的字符串对象仅仅会保存一份,放在一个字符串储蓄池中,是共用的,当然,肯定不能改变,这也决定了字符串必须是不可变对象。
示例一
# Python2.7
>>> a = "Hello_Python"
>>> id(a)
32045616
>>> id("Hello" + "_" + "Python")
32045616
# Python3.7
>>> a = "Hello_Python"
>>> id(a)
38764272
>>> id("Hello" + "_" + "Python")
32045616
示例二
>>> a = "MING"
>>> b = "MING"
>>> a is b
True
# Python2.7
>>> a, b = "MING!", "MING!"
>>> a is b
True
# Python3.7
>>> a, b = "MING!", "MING!"
>>> a is b
False
示例三
# Python2.7
>>> 'a' * 20 is 'aaaaaaaaaaaaaaaaaaaa'
True
>>> 'a' * 21 is 'aaaaaaaaaaaaaaaaaaaaa'
False
# Python3.7
>>> 'a' * 20 is 'aaaaaaaaaaaaaaaaaaaa'
True
>>> 'a' * 21 is 'aaaaaaaaaaaaaaaaaaaaa'
True
示例四
>>> s1="hello"
>>> s2="hello"
>>> s1 is s2
True
# 如果有空格,默认不启用intern机制
>>> s1="hell o"
>>> s2="hell o"
>>> s1 is s2
False
# 如果一个字符串长度超过20个字符,不启动intern机制
>>> s1 = "a" * 20
>>> s2 = "a" * 20
>>> s1 is s2
True
>>> s1 = "a" * 21
>>> s2 = "a" * 21
>>> s1 is s2
False
>>> s1 = "ab" * 10
>>> s2 = "ab" * 10
>>> s1 is s2
True
>>> s1 = "ab" * 11
>>> s2 = "ab" * 11
>>> s1 is s2
False
10、两次return
我们都知道,try…finally… 语句的用法,不管 try 里面是正常执行还是报异常,最终都能保证finally能够执行。
同时,我们又知道,一个函数里只要遇到 return 函数就会立马结束。
基于以上这两点,我们来看看这个例子,到底运行过程是怎么样的?
>>> def func():
... try:
... return 'try'
... finally:
... return 'finally'
...
>>> func()
'finally'
惊奇的发现,在try里的return居然不起作用。
原因是,在try…finally…语句中,try中的return会被直接忽视,因为要保证finally能够执行。

⑸ 我想问下python中 逻辑与:“&”和“and”的区别

1、“&”和“and”有本质区别,属于不同类型的运行符号。& 是位运算;and 是逻辑运算。

2、首先是&:该运输符属于字符串的连接运算符,例如,“w“&”c“结果为字符串”wc“。

3、and属于逻辑运算符,表示逻辑与运算,其规则是有假取假,全真为真。例如,true and false结果为false,true and true结果为true。

(5)python逻辑值和值的区别扩展阅读

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。

由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。

不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。

Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。

Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。

因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,

他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。”

⑹ python中的逻辑运算

逻辑运算并不限于布尔(boolean)型的变量/值。

关键是一个变量/值是“相当于”True还是False。
None、False、空字符串""、0、空列表[]、空字典{}、空元组(),都相当于False。其它的都相当于True。

先说 A or B 。
如果A相当于True,那么返回A。否则,返回B。
所以,如果A和B都是False,那么A and B也是False (False or False == False)。

除了做布尔值的判断,C = A or B 这种写法,常用于不确定A是否为空值时,把B作为候补来赋值给C。

A and B相反。如果A相当于True,那么返回B。否则,返回A。
所以,只有A和B都是True时,A and B才是True (True and True == True)。

以上是我自己写的,原创。

⑺ python 的运行逻辑

只听过几节入门课,不是很懂,我网络查过之后理解为:

你只是简单地将my_foods赋给friend_foods,而不是将my_foods的副本存储到friend_foods,这样实际上是让Python将新变量关联到旧变量中的列表,因此这两个变量都指向同一个列表。这是不使用切片的情况下复制列表的情况。要创建切片,可指定要使用的第一个元素和最后一个元素的索引。(列表中部分元素,Python称之为切片。)

如果 你想friends_foods不添加进新元素,应该加上[:]

以上是复制列表的方法——可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。如上图所示。

建议先学习一下关于切片的相关知识再来理解会比较容易。

⑻ 问一个python逻辑运算符的初级问题!

and 是短路运算符,python中,非0值都代表逻辑真,逻辑运算时返回最后运算的结果。例如:
5 and 2 ,返回最后运算的2。
2 and 5,返回5。
5 and 0,返回0。
0 and 5,还是返回0。因为0代表假,and 不再进行运算了,直接被短路,返回0

⑼ 我们学习过的python中的逻辑运算符有哪些它们的运算规则如何

and :布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

or :布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。

not :布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

需要详细讲解或实例请追问。

顺便推荐两个自学网站菜鸟教程 - 学的不仅是技术,更是梦想!W3school在线教程

内有丰富的编程基础知识。比如Python 逻辑运算符 | 菜鸟教程Python 运算符 - W3school

比在网上提问等人回答快多了也准确多了,对吧?

⑽ python逻辑运算符有哪些

逻辑运算符用于组合多个条件测试语句。假设“我今年18岁”和“我身高2米”这两个语句,前一个语句是真的,后一个语句是假的,因此,“我今年18岁,并且我身高2米”这个语句是假的。其中,“并且”可以认为是逻辑运算符。Python中有三种逻辑运算符,分别是and、or和not。

一、逻辑运算符and

在某些场景下,需要同时检查两个甚至更多的条件。假设某运动队招收运动员的要求是年龄不得低于14周岁,同时身体健康,使用逻辑运算符and来判断是否符合要求:

在布尔表达式“(math >= 95 and chinese > 85) or (math >= 85 and chinese > 90)”中,使用or运算符连接的两个布尔表达式“math >= 95 and chinese > 85”和“math >= 85 and chinese > 90”只要有一个值为True,返回值就为True。而对于布尔表达式“math >= 95 and chinese > 85”和“math >= 85 and chinese > 90”,都是使用and运算符连接的,故and运算符连接的两个布尔表达式的值必须都为True,返回值才为True。小明的数学成绩是98分,语文成绩是88分,布尔表达式“math >= 95 and chinese > 85”的值为True,“math >= 85 and chinese > 90”的值为False,因此,整个布尔表达式的值为True,打印“小明获得家庭奖学金!”。

关于深度学习的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。

阅读全文

与python逻辑值和值的区别相关的资料

热点内容
c语言编译led显示国旗代码 浏览:293
我的世界本地服务器默认地址 浏览:131
我的世设置命令方块会闪退 浏览:968
加密媒体怎么输密码 浏览:161
方舟如何删除服务器数据 浏览:600
用阅读app怎么看18 浏览:689
gn文件编译 浏览:783
酷闪加密系统 浏览:820
区块链数据加密 浏览:389
3d命令集 浏览:290
单片机的智能产品工厂里有 浏览:300
事业单位程序员有必要去吗 浏览:583
人工智能训练小鸟python 浏览:132
怎样把两个pdf合并成一个 浏览:681
什么app带仿制图章 浏览:420
单片机CJNE什么意思 浏览:569
廊坊服务器是什么 浏览:763
客户解压要打欠条还是收据 浏览:774
通过app组件启动有什么坏处 浏览:777
不属于国产密码算法 浏览:863