Python以及QuTip包简介.PDF

Python 以及QuTip 包简介

杨传生

2017 年4 月 19 日

1 简介

现在网络上能找到很多不错的 Python 基础介绍,而且会有很多基于

Python 的机器学习和算法课程,有空可以看看(我是没有看过)。这份文

档/python_book_01.pdf 看着不错。这里就

简单介绍一些Python 的基础数据类型、数据结构和基本语句,以及一些扩

展模块如scipy、numpy、matplotlib 和我们要经常用到的 QuTip。

2 Python 基础

2.1 数据类型和数据结构

Python 的基本数据类型有:

• 整型 (int): 与C 中的长整型一样,为系统最大整型数,32 位系统对应

∽ ,64 位系统对应为 ∽ .

• 浮点型 (float): 与C 中的双精度浮点数(double) 一样.

• 复数 (complex): 就是复数啦.

• 字符串 (str): ascii 字符串.

• 布尔型 (Boolean): True 或False.

Python 和 MATLAB 一样,不需申明变量类型即可直接赋值(可能是面向

对象的共同点吧),例如:

1
a = 123456789
b = 3.141592653
c = 1 + 1.0j
d = "I 'm a graduate student of USTC " # In C , would this be wrong ?
e = True

对应以上数据类型的运算符

• , , , , (整除), (幂), %(取模)

• 逻辑运算:and, or, not

• 判断运算:>, <, >=, <=, ==, !=

Python 的基本数据结构有:

• 列表 (list): [ ], [1,2,3], [’ab, ’cd’, 1, 2.3, 1.2+3.4j]

• 元组 (tuple): (), (1,2,3), (’ab, ’cd’, 1, 2.3, 1.2+3.4j), 一旦初始化后就

不可更改 (指向不可更改)

• 字典(dict): 定义为{’keyword’: value,…}, 如d= { ’name’: ’Jim’, ’age’:

18 , ’weight’: 50 }

• 集合 (set): 定义s= set( [1,2,1] ),不区分相同元素

例如:

a = ['ab , 'cd ', 1 , 2 .3 , 1 .2+3 .4j]
b = ( 'ab, 'cd ', 1, 2.3, 1.2+3.4j)
b [1] = 'sa ' # This is wrong ! You shall not assign value to a tuple after it
is initialized !
c = { 'name ': 'Jim ', 'age ': 18 , 'weight ': 50 }
d = set ( [1,2,1] ) # The output will be{ 1 ,2} ! 1 and 1 are same , thus the
second 1 is omitted !

Python 的特点就是方便上手,语言简单,扩展模块很多。但是主要槽点有两

个,一个是慢,这是显然的,为了兼顾开发效率必然要进行很多封装,而要

用汇编语言开发程序简直逼人上绝路。不过这个问题在科学计算中会有很

多相应的扩展模块,比如Scipy, Numpy, 还有我们要着重介绍的QuTip。另

一个就是它对缩进敏感,同一层次的语句必须要缩进相同的间距,而且语句

结束也不是用分号标记的。在写程序时一定要养成良好的习惯,否则debug

时会比较痛苦。

2

2.2 基本语句

这一节介绍Python 的基本语句:循环、判断.

判断

判断语句的基本格式是

if s