zoukankan      html  css  js  c++  java
  • Python学习路径8——Python对象2

    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>
    





  • 相关阅读:
    Java NIO中的缓冲区Buffer(二)创建/复制缓冲区
    Java NIO中的缓冲区Buffer(一)缓冲区基础
    Java中的反射
    Java SE 9(JDK9)环境安装及交互式编程环境Jshell使用示例
    Spring Data JPA例子[基于Spring Boot、Mysql]
    Spring Session
    Spring Data Redis示例
    Spring IO Platform简介及示例
    使用Spring Boot开发 “Hello World” Web应用
    2017/01/13,今天正好是开通博客园一周年,谈谈自己的一些想法
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4588627.html
Copyright © 2011-2022 走看看