zoukankan      html  css  js  c++  java
  • python基础学习(一)--数据类型

    Python一个 高级语言    

        2017-09-19

    1.1  Python背景简介(感谢伟大的廖雪峰大佬带我们走上一条光头路,嘿嘿)

    写了大半年Python代码,感觉收获不是很大,都是现学现卖,没有系统的了解过这个语言究竟是什么样的,从头学一遍

    提升一下。

    Python的来源

         Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 

    Python适用对象

      c语言与Python对比:

        c比较适合编写操纵系统等追求内存使用,能充分发挥硬件性能要要求高的程序;

        Python 适合编写应用程序,web,爬虫,sdn等敏捷开发的需求(例如YouTube、Instagram,还有国内的豆瓣。很多大公司,

          包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。);

    python的缺点

    (一)、Python是解释性语言,运行之前需要cpu进行解释执行,c和Java在编译后直接运行机器码就好;

    (二)、Python发版不能加密,这也是由于它是解释性语言

        Python解释器: 官方解释器->cpython 在安装Python后就拥有cpython解释器,它由c编写完成,在命令行输入Python后就调

    用cpython解释器,我们所有代码豆油cPython解释执行;Python解释器分为多种,我们用到的基本都是cpython。

    1.2 Python中的变量:

      Python是动态语言,可以将任意数据类型值赋给变量,可多次赋值

      1.2.1 内存机制:

        创建一个变量 

    a=1

               Python解释器将在 : 1、内存中创建一个名为a的变量,

                 2、内存中创建一个变量 1 。

                   3、将a指向1

       

        也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

        
    a = 'ABC'
    b = a
    a = 'XYZ'
    print(b)

        最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出ba相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

        执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'

        py-var-code-1

        执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'

        py-var-code-2

        执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

        py-var-code-3

        所以,最后打印变量b的结果自然是'ABC'了。

    Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。

    Python有五个标准的数据类型:

    • Numbers(数字)
    • String(字符串)
    • List(列表)
    • Tuple(元组)
    • Dictionary(字典)

    其中属于集合类型的数据类型有 列表、元组及字典

    2.1 Python字符串

      在Python3中,字符串以Unicode为编码格式,所以Python支持多语言。

      对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

    >>> ord('A')
    65
    >>> ord('')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    ''

     3、python 中的拷贝

    引用和copy(),deepcopy()的区别

    import copy
    a = [1, 2, 3, 4, ['a', 'b']]  #原始对象
    
    b = a  #赋值,传对象的引用
    c = copy.copy(a)  #对象拷贝,浅拷贝
    d = copy.deepcopy(a)  #对象拷贝,深拷贝
    
    a.append(5)  #修改对象a
    a[4].append('c')  #修改对象a中的['a', 'b']数组对象
    
    print 'a = ', a
    print 'b = ', b
    print 'c = ', c
    print 'd = ', d
    
    输出结果:
    a =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    b =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    c =  [1, 2, 3, 4, ['a', 'b', 'c']]
    d =  [1, 2, 3, 4, ['a', 'b']]

    4、Python的is 和 ==的区别 

      is 比较内存地址 == 比较值

     

  • 相关阅读:
    C语言学习笔记-静态库、动态库的制作和使用
    各种消息队列的对比
    如何使用Jupyter notebook
    Ubuntu16.04配置OpenCV环境
    Docker容器发展历史
    Ubuntu OpenSSH Server
    SpringBoot 系列文章
    SpringBoot 模板 Thymeleaf 的使用
    18、spring注解学习(AOP)——AOP功能测试
    17、spring注解学习(自动装配)——@Profile根据当前环境,动态的激活和切换一系列组件的功能
  • 原文地址:https://www.cnblogs.com/jiuyang/p/7552095.html
Copyright © 2011-2022 走看看