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. 450A - Jzzhu and Children 找规律也能够模拟

    挺水的一道题.规律性非常强,在数组中找出最大的数max,用max/m计算出倍数t,然后再把数组中的书都减去t*m,之后就把数组从后遍历找出第一个大于零的即可了 #include<iostream ...

  2. Swift - 类扩展(extension)

    Swift语言的类扩展是一个强大的工具,我们可以通过类扩展完成如下事情: 1,给已有的类添加计算属性和计算静态属性 2,定义新的实例方法和类方法 3,提供新的构造器 4,定义下标脚本 5,是一个已有的 ...

  3. HTML5文件上传还有进度条

    以下是自学it网--中级班上课笔记 网址:www.zixue.it 需要在chrome,ff,IE10下运行 html页面 <!DOCTYPE html> <html lang=&q ...

  4. 编程之美2013 初赛一 A - 竞价 学习大牛的思路

    这题我做了N久也做不出....赛后看了大牛AC的思路.... Program: #include<iostream> #include<cmath> #include<s ...

  5. Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)

    如今都非常少发3.0过渡篇这一系列的博文了,原因是多方面的,一个是游戏开发进度,尽管上面并没给我什么压力,但我自己一直在赶.还有一方面是个人私生活这块.五月份确实是多事之秋,有时候真的没办法全心思去研 ...

  6. 奋斗的孩子的TableView(三篇文章)

    http://blog.sina.com.cn/s/blog_a6fb6cc90101i8it.html http://blog.sina.com.cn/s/blog_a6fb6cc90101hhse ...

  7. 使用函数指针和多态代替冗长的if-else或者switch-case

    在编程中,if-else和switch-case是很常见的分支结构,很少在程序中不用这些控制语句.但是不能否认,在一些场景下,由于分支结构过分长,导致代码不美观且不容易维护,在<重构>一书 ...

  8. window.open()具体解释及浏览器兼容性问题

    一.基本的语法:window.open(pageURL,name,parameters)当中:pageURL 为子窗体路径name  为子窗体名字parameters 为窗体參数(各參数用逗号分隔) ...

  9. Codeforces Round #252 (Div. 2) B. Valera and Fruits(模拟)

    B. Valera and Fruits time limit per test 1 second memory limit per test 256 megabytes input standard ...

  10. Palindrome Numbers(LA2889)第n个回文数是?

     J - Palindrome Numbers Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu ...