本文是学习南京大学Python玩转数据基础篇的笔记整理。
内容较为简洁,仅供参考。
python类型
基本类型
- 整型/长整型: 长度与机器有关。长整型:整型值后面加上L。
- 布尔型:True、False。
- 浮点型:数学中的实数。可以用科学计数法表示。 float
- 复数型:虚数部分用j。
x = 2.4+ 5j
Out[9]: (2.4+5j)
type(x)
Out[10]: complex
复数可以对实数和复数部分分离。imag、real。
复数的共轭:conjugate()
x.real
Out[11]: 2.4
x.imag
Out[12]: 5.0
x.conjugate()
Out[13]: (2.4-5j)
序列类型
字符串,列表[],元组()
字符串:
三种表示方式:单引号,双引号,三引号。
可以使用索引操作符。
映设类型
字典:
大括号{}鉴别;
类似于哈希表的键值对。
python运算
算术运算
+ - × /
取余 %
乘方 **
整除 // ----地板除
比较运算
数值的比较:按值的大小
字符串的比较:按ASCII码值的大小
逻辑运算
not and or
字符运算
r / R, ---原始字符串
u / U
位运算
<左移 >右移
函数、模块与包
函数
函数可以看成类似于数学中的函数。完成一个特定功能的一段代码。如绝对值函数abs()
,类型函数type()
,四舍五入函数round()
。
内建函数
如何查看python中自带的内建函数
模块
非内建函数如何使用呢?
如floor()函数,不是内建函数,但包含在math的头文件中,因此只需要导入该模块即可,如下:
什么是模块?
模块就是一个完整的python文件。
Python中通常用import 模块
的方式将现成模块中的函数、类重用到其他代码块中。
用help(math)打印所有math内部的函数和变量。
可以导入多个模快。可以从模块中导入指定的模块属性(把指定的名称导入)。
包(package)
包是有层次的文件目录结构。
比如说如下的目录结构定义了一个由模块和子包组成的Python应用程序执行环境:
因此,我们可以这样使用该包:
或者:
库(library)
库是一组具有相关功能的模块的集合。
Python的一大特色就是具有强大的标准库、以及第三方库、以及自定义的模块。
条件、循环与中断语句
条件语句
if语句
else语句
elif语句:多分支情况下使用
其中,条件语句可以嵌套使用。
循环语句
for循环
|
|
可以明确循环的次数,一般用在:
- 遍历一个数据集的成员
在列表解析中使用
1234in[4]: [i for i in range(10)]Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]in[5]: [i for i in range(10)if i%2==0]Out[5]: [0, 2, 4, 6, 8]在生成器表达式中使用
12in[6]: (i for i in range(10)if i%2==0)Out[6]: <generator object <genexpr> at 0x7f44af56f570>
可用于迭代的对象(iterable object)有:String、 List、Tuple、Dictionary、File。
range语句
一般与for语句配合使用。
while循环
语法:
其中,expression是条件表达式,当expression的值为 True的时候,执行suitr_to_repeat的代码块。
break语句
while循环中的break与for循环中的break。
循环中的else语句
循环中的else:
如果是正常结束,就执行else中的代码;break处中止,就不执行else。
自定义函数
自定义函数的创建:
|
|
其中,def下一行可以是函数文档。~~~~~要学会使用函数文档!!
自定义函数的调用
函数名加上函数运算符,一对小括号。
括号之间是所有可选的参数,即使没有参数,小括号也不能省略。
参数问题,有参数就必须加上去。除非有默认值的可以不需要。
默认参数
函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供。
默认参数的值可以改变。
默认参数一般需要放置在参数列表的最后。默认参数后面不能有非默认参数。
关键字参数
关键字参数是让调用者通过使用参数名区分参数。允许你改变参数列表中的参数顺序。
传递函数
函数可以像参数一样传递给另外一个参数。
lambda函数
匿名函数。
|
|
变量的作用域
全局变量和局部变量
函数内部就是局部变量。
函数内部可以调用全局变量,使用global
语句。
当全局变量和局部变量使用的是同一个名字时,内层会屏蔽外层。
递归
递归介绍
递归必须有边界条件,即停止递归的条件。 如n==0 或者n==1的情况。
递归的代码更简洁,更符合自然逻辑,更容易理解。
递归的执行方式:逐层递归调用,遇到边界条件停止递归,逐层返回调用至最初层,系统资源的消耗比循环大。
汉诺塔
|
|
运行结果: