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