博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习路径8——Python对象2
阅读量:5285 次
发布时间:2019-06-14

本文共 1898 字,大约阅读时间需要 6 分钟。

1.标准型运营商

1.1对象值对照

比较运算符用于如果相同类型的对象是相等。所有的内建类型的是在比较操作中支持,返回布尔比较操作值True 或 False。

>>> 2 == 2True>>> 2.33 < 2.44True>>> 'abc' == 'xyz'False>>> 'abc' < 'xyz'True>>> [3, 'abc'] == [3, 'abc']True>>> [3, 'abc'] == ['abc', 3]False>>> 3 < 4 < 7       #same as (3 < 4) and (4 < 7)True>>> 4 > 3 == 3      #same as (4 > 3) and (3 == 3)True

python比較操作符:<    >    <=    >=   ==    !=    <>.(<> 相等于!=, 未来可能不支持)

1.2对象身份比較

Python不仅仅支持对象值比較,也支持对象本身的比較。

                                                  标准类型对象身份比較操作符

操作符 功能
obj1 is obj2 obj1 和obj2 是同一个对象
obj1 is not obj2 obj1 和obj2不 是同一个对

>>> a = [5, 'hat', -9.3]>>> b = a>>> a is bTrue>>> a is not bFalse>>> b = 2.5e-5>>> b2.5e-05>>> a[5, 'hat', -9.3]>>> a is bFalse>>> a is not bTrue
看以下的样例,那么问题来了
>>> a = 1>>> b = 1>>> a is bTrue>>> x = 1.2>>> y = 1.2>>> x is yFalse>>> 
为什么a和b指向同一个对象?大家都知道,在变量赋值时,Python解释器会创建一个新对象,然后将其对象的引用赋给变量。既然如此,那a。b应该指向不同的对象。请大家继续看x和y,x和y确实是指向不同的对象,这又符合我们的预期结果。why?
疑问

原来,整型对象和字符串是不可变对象,全部Python会非常高效的缓存它们,这会造成我们觉得Python应该创建新对象时,它却没有创建新对象的假象。Python仅缓存简单整数,Python缓存的整数的范围会变化,所以不要使用这个特性。(我也不知道怎么使用大笑

1.3布尔类型

布尔类型操作符有and,or 和 not三种。相当于c中的&&, ||。和!

当中not的优先级最高,其次是and和or。

2 标准类型内建函数

Python提供了一些内建函数用于这些基本对象类型:cmp(), repr(), str(), type()。

type():

使用方法:type(object)

type()接受一个对象作为參数,并返回它的类型。

它的返回值是一个类型对象。

>>> type('helloWorld')
>>> type(2.0)
>>> type(type(4))
>>>

cmp():

使用方法:cmp(obj1,obj2),假设obj1 小于obj2。它会返回一个负整数,假设obj1 大于 obj2,则返回一个正整数。假设相等则返回0

>>> a, b = 4, -12>>> cmp(a, b)1>>> cmp(b,a)-1>>> b = -4>>> cmp(a,b)1>>> a, b = 'abc', 'xyz'>>> cmp(a, b)-1>>> cmp(b, a)1>>> b = 'abc'>>> cmp(a, b)0>>> 

str() 和repr()

str()和repr()函数能够方便的以字符串的方式获取对象的内容。类型,数值属性等信息。str()函数得到的字符串可读性好,而repr()函数得到的字符串通常能够又一次获得该对象。通常情况下obj = eval(repr(obj))是成立的。多数情况下,这两个函数的输出仍然是一样的。

>>> str(1)'1'>>> str(2e10)'20000000000.0'>>> repr(2e10)'20000000000.0'>>> str([0, 5, 5, 9])'[0, 5, 5, 9]'>>> repr([0, 5, 5, 9])'[0, 5, 5, 9]'

转载于:https://www.cnblogs.com/yxwkf/p/4588627.html

你可能感兴趣的文章
MyEclipse快捷键
查看>>
(转载)MySql中 delimiter 详解
查看>>
[LeetCode] 765. Couples Holding Hands 情侣牵手
查看>>
B/S打印解决方案参考
查看>>
掌握时钟的切换,控制串口
查看>>
用jsp打印出水鲜花数
查看>>
自己写一个命令,将linux下的常用命令cat echo ls 汇集在这一个命令中
查看>>
Introducing “Razor” – a new view engine for ASP.NET
查看>>
算法题汇总
查看>>
移动端嵌入pdf.js远程请求pdf出现(206)
查看>>
修改searchbar 取消 字体 颜色
查看>>
Java 包(package)
查看>>
服务器端 SOCKET 编程
查看>>
unique离散化用法
查看>>
Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)...
查看>>
JavaWeb中读取文件资源的路径问题 -- 转自新浪博客
查看>>
分布式系统-性能篇
查看>>
苹果终端wifi图标点亮慢和portal弹窗机制分析以及处理办法和建议
查看>>
Java反射
查看>>
opencv读取USB摄像头程序图像显示不连续
查看>>