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

《南大慕课《用Python玩转数据》-01走近Python》 用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的标准数据类型如下

《南大慕课《用Python玩转数据》-01走近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. 关键字

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

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

3.2 增量赋值

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

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

  • 内建函数

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

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玩转数据》视频课程

    原文作者:花开花落花满天
    原文地址: https://www.jianshu.com/p/5fbfbf7d9d60
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞