美文网首页生活不易 我用python
南大慕课《用Python玩转数据》-01走近Python

南大慕课《用Python玩转数据》-01走近Python

作者: 花开花落花满天 | 来源:发表于2016-04-26 16:27 被阅读0次
    用python玩转数据
    python是一种解释性的,面向对象的,带有动态语义的高级程序设计语言。它拥有传统编译型程序所有的强大通用功能,也有简单脚本语言和解释性程序语言的易用性。

    Python的应用

    1. WEB开发,定了WSGI标准应用接口来协调http服务器与基于python的web程序之间的沟通。
    2. GUI开发,用wxPython或PyQt来开发跨平台的桌面软件。
    3. 操作系统,大多数Linux发布版以及NetBSD,OpenBSD和MacOS X都集成了python,python标准库中包含了多个调用作业系统功能的库。
    4. 多媒体,三维游戏场景制作。

    Python的语法基础

    经典的hello world (本系列使用python2.7)

    myString = 'Hello,World!' #无须定义变量类型
    print myString
    

    1. 变量
    1.1 变量类型
    必须有明确的数据类型,程序才能分配gei常量,变量精确的存储大小。python的标准数据类型如下

    • 整形和长整形,并不严格区分,整形值后加"L" 即为长整形
    print type(3)
    print type(3L)
    

    输出结果为

    <type 'int'>
    <type 'long'>

    • 布尔型,属于整形的子类,True和False两个值,本质上是用1,0存储
    x = True
    y = False
    print x
    print y
    print int(x)
    print int(y)
    

    输出结果为

    True
    False
    1
    0

    • 浮点型,即数学中的实数,可以类似科学计数法表示
    print 9.8e3
    print -4.78e-2
    print type(-4.78e-2)
    

    输出结果如下

    9800.0
    -0.0478
    <type 'float'>

    print type(2.4+5.6j)
    print type(5+0j)
    

    输出结果

    <type 'complex'>
    <type 'complex'>

    复数可以分离成实数和虚数部分,如下面的代码:

    x = 2.4 + 5.6j
    print x.imag #分离虚数
    print x.real #分离实数
    print x.conjugate() #复数的共轭(实数部分相同而虚数部分互为相反数的两个复数)
    

    输出结果如下

    5.6
    2.4
    (2.4-5.6j)

    • 序列类型
    - 字符串单引号,双引号,三引号内的都是字符串,不可变类型。
    - 列表 ,强大的类型,用方括号[]界别,可变类型。
    - 元组, 与列表类似,用小括号()界别,不可变类型。
    
    • 映射类型 字典
      用大括号{ }界别,类似于哈希表的键值对
    d = {'name':'lijun','gender':'male','age':18} #dictionary
    print d['name'] #ouput: lijun
    

    1.2 命名规则

    • 首字符是字母或下划线 (下划线通常用来表示内建标识符, _XXX 通常表示私有的)
    • 大小写敏感(全大写的是符号常量)

    2. 关键字

    3. 赋值
    3.1 python的语言类型
    Python是动态的强类型语言,不需要显示声明,根据值确定类型. 以引用的方式实现赋值,将一个引用指向对应的内存单元。

    3.2 增量赋值


    3.3 多重赋值 , 如 PI = pii = 3.14

    3.4 多元赋值 ,等号左右两边都以元组的方式出现

    X = 1
    Y = 2
    X,Y
    可以输出1,2
    另外将两个值交换,可以直接如下赋值
    X,Y = Y, X #在其他语言中,要交换两个值的话,需要用到第三个变量
    exg. PI, r = 3.14159, 3 #最好左右都用括号

    4. 基本运算符
    4.1. 算数运算符

    +a # 正数
    -a # 負数
    a + b # 加算
    a - b # 減算
    a * b # 乗算
    a / b # 除算 / 传统除法
    a % b # a を b で割った余り % 取余数
    a ** b # a の b 乗 乘方 ,如33 为27
    a // b # 切り捨て除算 // 整除,舍弃小数点后数字

    4.2. 比较运算符

    a == b # a が b と等しい
    a != b # a が b と異なる
    a < b # a が b よりも小さい
    a > b # a が b よりも大きい
    a <= b # a が b 以下である
    a >= b # a が b 以上である
    a <> b # a が b と異なる
    a is b # a が b と等しい

    a is not b # a が b と異なる
    a in b # a が b に含まれる
    a not in b # a が b に含まれない
    字符串按照ASCII码值大小比较

    4.3. 逻辑运算

    not: 取相反
    and: 一个false 则为false
    or:一个true则为true

    4.4. 字符运算

    • 原始字符操作符(r/R),用于一些不希望转义字符起作用的地方
    f = open(r'C:\99.tool\hello.txt')
    f = open('C:\\99.tool\\hello.txt') 
    
    • Unicode字符串操作符(u/U),转换成Unicode字符串

    4.5. 位运算

    ~a # ビット反転
    a & b # AND:論理積(aもbも1のビットが1)
    a | b # OR:論理和(aまたはbが1のビットが1)
    a << b # b ビット左シフト
    a >> b # b ビット右シフト
    a ^ b # XOR:排他的論理和(aまたはbが1のビットが1)

    a与b的对应位进行异或运算,同为0或者同为1时,对应位结果为0;否则为1。比如,假设,a的值为二进制的1010,b的值为二进制的1100,那么a^b = 0110

    5 模块与函数
    5.1 函数
    类似于数学中的函数,完成特定功能的代码,比如abs(x),round(x)等。
    通过dir(builtin)查看内建函数(如 abs(x), type(x))

    • 内建函数


    5.2 模块

    • 一个完整的python文件就是一个模块,如math.py数学库,python中通常用"import 模块"的方式将现成模块中的函数,类重用到其他代码中。

      用help(math)打印所有math内部的函数和变量

    • 导入多个库 import M1,M2,M3.
    import math
    print math.pi #ouput: 3.14159265359
    

    5.3 包,包是一个有层次的文件目录结构

    AAA/
    -----CCC/
    ----------c1.py
    ----------c2.py
    导入 import AAA.CCC.c1
    使用 AAA.CCC.c1.func1()

    5.4 库,一组有相关功能的模块的集合,python的一大特色就是有大量的标准库 和 第三方库

    第一章测验

    1,编程题

    简单的输入输出:编程实现输入姓、名的提示语并接受用户输入,并单独显示姓、名和全名,执行效果如下所示:
    Input your surname:ZHANG

    Input your firstname:Dazhuang
    Your surname is:
    ZHANG
    Your firstname is:
    Dazhuang
    Your full name is:
    ZHANG Dazhuang
    python2.7中的程序如下:

    surname = raw_input('Input your surname:')
    firstname = raw_input('Input your firstname:')
    print 'Your surname is:'
    print surname
    print 'Your firstname is:'
    print firstname
    print 'Your full name is:'
    print surname,firstname
    

    TODO

    • 整理什么是动态/静态,强类型/弱类型 编程语言
    • 整理 列表 、元组 、字典的差异

    参考资料

    1, 南京大学 张莉老师《用Python玩转数据》视频课程

    相关文章

      网友评论

        本文标题:南大慕课《用Python玩转数据》-01走近Python

        本文链接:https://www.haomeiwen.com/subject/kvjqrttx.html