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

1.标准类型操作符

1.1对象值的比较

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

<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>

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

1.2对象身份比较

Python不只支持对象值比较,也支持对象本身的比较。

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

操作符 功能
obj1 is obj2 obj1 和obj2 是同一个对象
obj1 is not obj2 obj1 和obj2不 是同一个对
<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>

看下面的例子,那么问题来了

>>> a = 1
>>> b = 1
>>> a is b
True
>>> x = 1.2
>>> y = 1.2
>>> x is y
False
>>> 

为什么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 'str'>
>>> type(2.0)
<type 'float'>
>>> type(type(4))
<type 'type'>
>>>

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))是成立的。多数情况下,这两个函数的输出仍然是一样的。

<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>
时间: 2024-10-09 13:43:28

Python学习之路8——Python对象2的相关文章

python学习之路-1 python简介及安装方法

python简介 一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. 目前最新版本为3.5.1,发布于2015年12月07日. 语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. 具有丰富和强大的库,底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快. 极其容易上手,因为Python有极其简单的说明文档. 免费.开源,是FLOSS(自由/开放源码软件)之一.使用者可以

Python学习之路3——Python用户交互及逻辑控制

1.Python用户交互 程序难免会与用户产生交互. 举个例子,你会希望获取用户的输入内容,并向用户打印出一些返回的结果.我们可以分别通过 input() 函数与 print 函数来实现这一需求. 1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 name = input("name:") 6 age = int(input("age:")) 7 job = inp

python学习之路-day6-面向对象

一.面向对象学习 特性 class类 一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性.共同的方法. 面向过程编程和面向对象编程: 面向过程编程:使用一系列的指令告诉计算机怎么一步步执行 基本设计思路就是程序一开始是着手解决一个大的问题,然后把一个大的问题分解成很多小问题或子过程 面向对象编程: OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述 世界万物皆对象. 只要是对象,就肯定属于某种类 只要是对象,就肯有属性 面向对象编程: OO

python学习之路-1 python基础操作

变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型. 变量在程序中就是用一个变量名表示了,变量名必须是大小写英文.数字和_的组合,且不能用数字开头. 例如: x = 100 # 变量x是一个整数 name = 'zhangcong' # 变量name是一个字符串 Answer = True # 变量v是一个布尔值 _name = 'xxxxx' # 以下划线开头也是可以的,但是不建议 常量 常量就是不能变的变量,比如常用的数学常数π就

Python学习之路(一) -- Python安装

Python下载 Python安装 Windows安装 MacOS安装 Linux安装 Python配置 Python测试 原文地址:https://www.cnblogs.com/wolfrz/p/10504106.html

Python学习之路

Python学习之路 目录 Python学习之路[第一篇]:流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用 Python学习之路[第二篇]:文件,字符串,列表,元组,字典,集合的使用 更新中...

Python 学习之路(二)

Python 学习之路(二) 以下所用的是Python 3.6 一.条件语句 简单判断 1 if 判断条件: 2 执行语句-- 3 else: 4 执行语句-- 复杂判断 1 if 判断条件1: 2 执行语句1-- 3 elif 判断条件2: 4 执行语句2-- 5 elif 判断条件3: 6 执行语句3-- 7 else: 8 执行语句4-- 二.循环语句 2.1 while语句 和其他语言一样,不同的是多了else语句.在 python 中,while - else 在循环条件为 false

Python 学习之路(三)

Python 学习之路(三) 以下所用的是Python 3.6 一.集合部分 集合是一个无序的,不重复的数据集合,主要用来去重,以及关系测试:交集,差集,并集等 1.1 关系操作 1.1.1 列表去重 可以给列表去重,例如: 1 set_demo = [1,2,3,4,5,3,2,1] # 列表 2 set_demo = set(set_demo) # 转换成集合,来去重 3 print(set_demo) 1.1.2 取交集 intersection()方法 可以获得两个集合的交集部分,例如:

Python学习之路—2018/6/19

Python学习之路-2018/6/19 1.注册自定义转化器 converts.py class Birthday: regex = '[0-9]{8}' # 匹配规则 def to_python(self, value): # 匹配的字符串返回具体的变量值,传递到对应的视图函数中 return int(value) def to_url(self,value): # 反向解析 return "%04d" % value urls.py from django.urls import