Python学习路径8——Python对象2

Python学习路径8——Python对象2

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.标准型运营商

1.1对象值对照

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

<span style="font-size:14px;"><span style="font-size:14px;">>>> 2 == 2
True
>>> 2.33 < 2.44
True
>>> '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</span></span>

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

1.2对象身份比較

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

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

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


<span style="font-size:14px;"><span style="font-size:14px;">>>> a = [5, 'hat', -9.3]
>>> b = a
>>> a is b
True
>>> a is not b
False
>>> b = 2.5e-5
>>> b
2.5e-05
>>> a
[5, 'hat', -9.3]
>>> a is b
False
>>> a is not b
True</span></span>

看以下的样例,那么问题来了


<span style="font-size:14px;">>>> a = 1
>>> b = 1
>>> a is b
True
>>> x = 1.2
>>> y = 1.2
>>> x is y
False
>>> </span>

为什么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()接受一个对象作为參数,并返回它的类型。

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

<span style="font-size:14px;">>>> type('helloWorld')
<type 'str'>
>>> type(2.0)
<type 'float'>
>>> type(type(4))
<type 'type'>
>>> </span>

cmp():

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

<span style="font-size:14px;">>>> 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
>>> </span>

str() 和repr()

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

<span style="font-size:14px;"><span style="font-size:14px;">>>> 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]'</span></span>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117809.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • STM32F407 + LAN8720A + LWIP 实现TCP服务器

    STM32F407 + LAN8720A + LWIP 实现TCP服务器STM32F407+LAN8720A+LWIP实现TCP客户端环境说明:开发板:某宝买的,STM32F407IGSTM32CUBEMX5.6HALLibVersion1.25(一)配置时钟(二)配置调试串口(三)配置以太网ETH(1)基础配置顺序依次说明:LAN8720A使用的是RMII接口进行配置寄存器自动重连使能MAC地址LAN8720A的物理地址(类似IIC的从设备地址),可配置为0或者1,由LAN8720A的RXER/PHYAD0引脚控制

    2022年6月17日
  • Kafka基本原理详解(超详细!)

    Kafka基本原理详解(超详细!)目录一、概念理解(1)产生背景(2)Kafka的特性(3)Kafka场景应用(4)Kafka一些重要设计思想二、消息队列通信的模式(1)点对点模式(2)发布订阅模式三、Kafka的架构原理(1)基础架构与名词解释(2)工作流程分析(1)发送数据(2)保存数据(1)Partition结构(2)Message结构(3)存储策略(3)消费数据一、概念理解Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消

    2022年5月20日
  • Ubuntu安装python3及PiP[通俗易懂]

    Ubuntu安装python3及PiP[通俗易懂]Ubuntu自带python2.7,而大多数平台需要python3.切记不要卸载python2.7卸载后只能重做系统。1.安装python1.可以使用anaconda,创建新环境,在创建环境时需要自己指定一个python版本,指定好后它会去下载,在创建环境时condacreate–name******python=***例如我在这里condacreate–nameyolo4python=3.6.9conda会在创建这个环境里安装好python=3.6.9如果pytho

    2022年6月23日
  • CEGUI添加自定义控件[通俗易懂]

    CEGUI添加自定义控件[通俗易懂]CEGUI添加自定义控件全流程

    2022年7月23日
  • docker卸载命令_docker删除文件

    docker卸载命令_docker删除文件使用yum安装docker(安装过程可以参照linux安装docker),如需卸载docker可以按一下步骤操作:1、查看当前docker状态如果是运行状态则停掉systemctlstopdocker2、查看yum安装的docker文件包yumlistinstalled|grepdocker查看docker相关的rpm源文件rpm-qa|grepdocker3、删除所有安装的docker文件包yum-yremovedoc

    2022年9月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号