• Day06


    一,常见知识点整合

    python2 和python3 中的输出:

    在py2中print a 就行不需要括号

    在py3中必须加括号

    py2

    代码演示:

    1 Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
    2 Type "help", "copyright", "credits" or "license" for more information.
    3 >>> a = "huao"
    4 >>> print a
    5 huao
    6 >>>

    py3

    代码演示

    Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = "胡澳"
    >>> print a
      File "<stdin>", line 1
        print a
              ^
    SyntaxError: Missing parentheses in call to 'print'. Did you mean print(a)?
    >>> print(a)
    胡澳
    >>>

    可以看出py2中不使用括号能够正常进行输出。而在py3中会进行报错。py3中必须使用()才能输出

    py3中 is 和 == 和 =的区别:

    =   表示赋值的意思

    == 表示主要是比较两个变量的值是否相等

    is  主要是用来比较两个变量的内存地址是否相等

    a b 两个变量的值不相同

    代码演示:

    a = "huao"
    b = "胡澳"
    print(a==b)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    False
    
    进程已结束,退出代码0

    输出的结果为False

    a  b两个变量的值相同

    a = "huao"
    b = "huao"
    print(a==b)

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    True
    
    进程已结束,退出代码0

    输出的结果为Ture

    a , b 赋值给另一个变量的时候:

    a = "huao"
    b = a
    print(b is a)
    print(id(b),id(a))

    运行结果:

    D:常用软件Python3.7python文件python.exe D:/学习资料/项目/练习/lianxi.py
    True
    1630415246144 1630415246144
    
    进程已结束,退出代码0

    可以看出

    python中的赋值并不是改变内存地址,而是给原来的地址上再添加一个映射关系。

    is用来判断变量的内存是否相等

    id()函数用来查看变量的地址

    数字的小数据池概念:

    代码演示:

    >>> i = 23
    >>> b = 23
    >>> print(id(i),id(b))
    140704958371552 140704958371552
    >>> i = 500
    >>> b = 500
    >>> print(id(i),id(b))
    1693296867376 1693296445456
    >>>

    分析:当等于23的时候,两个变量的内存地址是一样的。当等于500的时候两个变量的内存地址是不一样的

    原因就在于在python中存在一个小数据池的概念。

    数字的范围是(-5—256)在这个范围内,相同的数字的内存是一样的,这样做的目的就是为了节省内存空间,让资源更加合理化。

    所以就出现了小数据池这一概念。

    字符串的小数据池概念:

    代码演示:  

     a = "huhuhuhu"
    >>> b = "huhuhuhu"
    >>> print(a is b)
    True
    >>> a = "a"*20
    >>> b = "a"*20
    >>> print(a is b)
    True
    >>> a = "a"*21
    >>> b = "a"*21
    >>> print(a is b)
    True
    >>> a = "a"*21
    >>> b = "a"*21
    >>> print(a is b)
    True
    >>> a = "a"*22
    >>> b = "a"*22
    >>> print(a is b)
    True
    >>> b = "a"*23
    >>> a = "a"*23
    >>> print(a is b)
    True
    >>> a = "hu*"
    >>> b = "hu*"
    >>> print(a is b)
    False
    >>>

    代码分析:

    字符串中不能够有个特殊字符,否则两个变量的地址就会不一样(+,-,*,/,等等一系列的字符都属于特殊字符)

    这就是字符串中的小数据池的概念

    而python中的其他的数据类型如(list ,dict ,set,tuple )是没有小数据池的这个概念的。

    代码演示:

    >>> li = [1,]
    >>> l2 = [1,]
    >>> print(li is l2)
    False

      

    本文来自博客园,作者:江湖混子,转载请注明原文链接:https://www.cnblogs.com/huao990928/p/11698946.html

  • 相关阅读:
    C/C++优秀书籍清单
    C语言内存管理详解
    C/C++语言常用头文件及函数
    如何学好C++语言
    VS2010 更改MFC标题及标题栏图标和exe图标
    Vue 实现前进刷新,后退不刷新的效果 玩转vue-router里的meta
    $nextTick 页面局部刷新 延迟加载
    吸顶动画 侧边栏 监听滚动条位置 监听元素距离顶部高度
    vue 自定义侧边栏 递归无限子级菜单
    vue element NavMenu 莫名出现蓝色边框
  • 原文地址:https://www.cnblogs.com/huao990928/p/11698946.html
Copyright © 2020-2023  润新知