一,编程环境
推荐使用jupyter notebook
1,可以下载安装Anaconda 使用 jupyter notebook
2,也可以注册聚宽账号(https://www.joinquant.net/),
在"我的策略"-->"投资研究"中可以直接使用jupyter notebook
在jupyter notebook 中使用快键键 Ctrl+Enter 运行单元格cell中的代码。
可以在网易云课堂找到本教程的视频课程《3小时Python入门》。
一,输入输出
输入:input(输入的都是字符串)
输出:print
二,导入模块
import ...
或 from ... import ...
或 import ... as ...
三,基础语法
1,标识符
标识符由字母、数字、下划线组成,区分大小写,不能以数字开头。
以下划线开头的标识符有特殊含义。以单下划线开头的(_foo)的代表不能直接访问的类属性,以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表Python里特殊方法专用的标识,如__init__() 代表类的构造函数。
2,缩进
Python的代码块不使用大括号来控制类、函数、以及其他逻辑判断,而是使用缩进来写实现代码分组。通常用四个空格来进行缩进。
3,注释
python中单行注释采用 # 开头。
多行注释使用三个单引号(''')或三个双引号(""")。
4,一条语句分多行显示
Python语句中一般以新行作为为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
语句中包括[],{}或()括号就不需要使用多行连接符。
5,同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号分割。
四,数据类型
python内建的数据类型有列表,元组,字符串,字典,集合等。此外常用的还有numpy中的array,以及pandas中的dataframe和series。
1,有序数据类型:
List(列表),是有序集合,没有固定大小,可以通过对偏移量以及其他方法修改列表大小。列表的基本形式如:[1,2,3,4]
Tuple(元组),是有序集合,是不可变的,可以进行组合和复制运算后会生成一个新的元组。元组的基本形式比如:(1,3,6,10)
String(字符串),也是有序集合,字符串的基本形式比如:’hello'。
2,无序数据类型:
Set(集合),是一个无序不重复元素的集。
基本功能包括关系运算和消除重复元素。集合的基本形式如:
{'apple','orange','banana'}
Dictionary(字典)是无序的键:值对 (key:value 对)的集合。
键必须是互不相同的(在同一个字典之内)。
字典的基本形式如:{'jack': 4098, 'sape': 4139}
五,列表
1,建立列表
2,访问列表
可以使用下标访问和切片访问
3,修改列表
4,列表常用函数
5,列表常用方法
六,字典
1,创建字典
2,常用字典操作方法
七,元组
1,创建元组
2,修改元组
八,字符串
1,创建字符串
可以用单引号,双引号,或者三重引号创建字符串。
(\n表示换行符,\t表示制表符)
2,字符串基本操作
3,格式化字符串
九,条件语句
1,多分支结构
python中不支持switch语句,只能用elif来实现多分支选择结构。此外,还可以巧妙地通过字典数据结构实现多分支选择结构。
2,and 和 or
python中的与、或、非分别用关键字 and,or,not 表示。python做逻辑运算时把空的列表、元组、集合等当做False。对or而言,Python会由左到右求算操作对象,然后返回第一个为真的操作对象。Python会在其找到的第一个真值操作数的地方停止,通常叫短路计算。and 会停在第一个为假的对象上。
十,循环语句
Python提供了for循环和while循环(在Python中没有do...while循环)。
for循环一般比while计数器循环运行得更快。
break语句,在语句块执行过程中终止循环,并且跳出整个循环。
continue语句,在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass语句,是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。俗称代码桩。
十一,函数
1,定义函数
使用 def关键字定义函数,用return返回函数值,
若没有return,返回值为None。
2,默认参数
默认参数放在普通参数后面
3,可变参数
可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。可以用 *k 的方式定义可变参数。可变参数传入函数后自动组装为一个tuple。
4,关键字参数
关键字参数允许你传入 0 个或任意个含参数名的参数,
这些关键字参数在函数内部自动组装为一个 dict。
5,混合参数
十二,lamda 匿名函数
lambda只是一个表达式,适合定义较为简单的函数。
lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。
lamda函数定义语法是:
fun = lamda 参数序列: 返回值表达式
一般来说通过使用lamda函数可以节约程序开支并加快运行速度。
十三,迭代器
迭代器在python中是以C语言的速度运行的,常用的迭代器如下。
十四,Python 推导式
Python中的推导式是Python语言所有语法规则中最大的一个彩蛋,简直是一个超级语法糖。淋漓尽致地体现了Python语言 simple,readable 和 powerful 的特点。一旦掌握则爱不释手,欲罢不能,永生难忘。Python推导式可以生成列表,集合和字典。
1,列表推导式
2,字典推导式
3,集合推导式
十五,Python类和对象
在Python中,万物皆为对象。对象由类创建而来,所有的类都是object基类的子类。
1,类和对象基本概念
类: class, 抽象数据结构,数据和算法的封装。如:定义一个类,dog。
对象: object,类的实例。如:dog类的一个实例,点点 dot。
属性:properties,和对象关联的数据部分。如:weight 体重,breed 品种。
方法:methods,和对象关联的算法部分。如:run(), eat(), bark()。
2,创建类和对象
3,获取对象信息