发表日期: 2022-08-19 17:04:02 浏览次数:26
枣庄企业网站设计 - 枣庄高端网站定制 - 枣庄品牌网站搭建 - 上往建站
ot and or | 逻辑运算符 |
以下实例演示了Python所有运算符优先级的操作:
以上实例输出结果:
(a + b) * c / d 运算结果为: 90((a + b) * c) / d 运算结果为: 90(a + b) * (c / d) 运算结果为: 90a + (b * c) / d 运算结果为: 50
下测试情况会在交互模式下出现,脚本模式 is 和 == 结果是一样的。
python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:
>>> a=2.0
>>> b=2.0
>>> a is b
False
>>> a==b
True
>>> e
但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:
>>> a=2
>>> b=2
>>> a is b
True
>>> a==b
True
如但果赋值的不是2而是大的数值,情况就跟前面的一样了:
>>> a=4444
>>> b=4444
>>> a is b
False
>>> a==b
True
CosmosHua
CosmosHua
cos***cosmos@163.com
5年前 (2017-06-23)
Gy_GDUT
634***603@qq.com
55
这里 is 和 == 类似编译原理中传值与传地址。又或者说是 is 只是传递的指针,判断是否指向同一个地址块,这样 is 两边的参数指向内存中同个地址块,毕竟我家电视跟你电视不是同一个东西。而 == 则是仅仅判断值相同
Gy_GDUT
Gy_GDUT
634***603@qq.com
5年前 (2017-07-06)
gjxie
130***2297@qq.com
130
如果变量写在同一行,将会指向同一个对象
>>> a=4444; b=4444; # 写在同一行
>>> a is b
True
>>> a == b
True
>>> c = 5555 # 写在不同一行
>>> d = 5555 # 写在不同一行
>>> c is d
False
>>> c == d
True
>>>
以上情况在交互模式会出现,使用脚本运行,不管是否同一行,都是指向同一个地址:
# -*- coding: utf-8 -*-
a = 4444; b = 4444
print(a is b) # true
c = 5555
d = 5555
print(c is d) # true
gjxie
gjxie
130***2297@qq.com
5年前 (2017-07-13)
冯姜澎
101***9418@qq.com
参考地址
64
Python 中没有 ++ 或 -- 自运算符
因为在 Python 里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象。
比如:
a = 1
a += 1
在 C/java 之类的语言中,把 a 指向内存地址单元数据值由 1 改成了 2。
但是在 Python 中是完全不同的另一套机制。
解释器创建一个新的整数对象 2。
然后把这个对象的地址再次分配给 a。
见下面代码:
>>> id(1)
41116008L
>>> a = 1
>>> id(a)
41116008L
>>> id(2)
41115984L
>>>a += 1
>>> id(a)
41115984L
>>>
所以在 Python 中不可能出现C/java 之类那种单独一行一个 i++,i-- 的。
冯姜澎
冯姜澎
101***9418@qq.com
参考地址
5年前 (2018-02-28)
广工陈不亮
113***2936@qq.com
85
Python 基础的发现个问题,有一个列表 a=[1,2,3,4,5],赋值给 b 的两种方式:
# 第一种
b=a
# 第一种
b=a[:]
结果都是: [1, 2, 3, 4, 5]
这两种赋值结果看起来都是一样的,但是他们有什么区别么?
区别就是:
前者传递引用
后者是拷贝
Python 有个叫做 id 的函数能够得到对象的地址,你打印出来看看就清楚了。直接 = 是引用赋值,引用原来的对象;而 [:] 是重新推导,会生成新的对象。
>>> a=[1,2,3,4,5]
>>> b=a
>>> c=a[:]
>>> id(a)
4410359536
>>> id(b)
4410359536
>>> id(c)
4410358240
从以上结果上看 id(a) 与 id(b) 的内存地址一样的,而 i
下一页:枣庄公众号代运营公司
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878