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>

Python学习路径8——Python对象2的更多相关文章

  1. Python之路【第二十四篇】:Python学习路径及练手项目合集

      Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...

  2. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  3. Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

    http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...

  4. python学习第一讲,python简介

    目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...

  5. Python学习教程(Python学习视频_Python学些路线):Day06 函数和模块的使用

    Python学习教程(Python学习视频_Python学些路线):函数和模块的使用 在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. $$x_1 + x_2 + x ...

  6. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  7. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  8. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  9. python学习第三讲,python基础语法之注释,算数运算符,变量.

    目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...

随机推荐

  1. OCA读书笔记(8) - 管理用户安全

    创建用户:create user +用户 default tablespace + 表空间名 identified + 验证方式 SQL> create user easthome profil ...

  2. hdu 4715 Difference Between Primes 2013年ICPC热身赛A题 素数水题

    题意:给出一个偶数(不论正负),求出两个素数a,b,能够满足 a-b=x,素数在1e6以内. 只要用筛选法打出素数表,枚举查询下就行了. 我用set储存素数,然后遍历set里面的元素,查询+x后是否还 ...

  3. -force_load

    Crash Log: Last Exception Backtrace: 0   CoreFoundation                 0x2f087f06 __exceptionPrepro ...

  4. Java Web Services (2) - 第2章 启动日志分析

    ZHAOFLIU-Mac:dev liuzhaofu$ ./start --seed########################################################## ...

  5. DB2错误码解释对照

    表 2. SQLSTATE 类代码 类  代码    含义 要获得子代码,  参阅...  00 完全成功完成 表 3  01 警告 表 4  02 无数据 表 5  07 动态 SQL 错误 表 6 ...

  6. Java线程状态及Thread类中的主要方法

    要想实现多线程,就必须在主线程中创建新的线程对象. 不论什么线程一般具有5种状态,即创建,就绪,执行,堵塞,终止. 创建状态: 在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时 ...

  7. NET Core RC2

    .NET Core RC2/RTM 明确了时间表 .NET Core 经过了将近2年的开发,去年12月份发布的RC1版本,明确来说那只是一个beta版本,自从RC1发布以来,看到github里的RC2 ...

  8. Lambda高手之路第一部分

    转http://www.cnblogs.com/lazycoding/archive/2013/01/06/2847574.html 介绍 Lambda表达式是使代码更加动态,易于扩展并且更加快速(看 ...

  9. [Android学习笔记]View的measure过程学习

    View从创建到显示到屏幕需要经历几个过程: measure -> layout -> draw measure过程:计算view所占屏幕大小layout过程:设置view在屏幕的位置dr ...

  10. curl订单具体解释

    为windows假设用户Cygwin模拟unix环境的话,不会有带curl命令,拥有设备,它建议使用Gow为了模拟,它已经自带curl工具,直接安装之后cmd使用环境curl命令可以,由于路径是自己主 ...