首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

量化投资之1:Python入门

开始之前

在开始之前,先讲讲学习方法。现在想学习任何一样东西,你只要稍微用心,网上基本都能找到你想要的资料,但是资料好找,大部分人找到了也只是收藏起来,说以后再看,然后就再也没有然后了。

另外,同样一份资料,不同的人学习起来效果也不尽相同,有的人一学就会,触类旁通;有的人却越学越痛苦,永远进度留在前几章。这里面最大的差别就是学习方法的问题。

按学习行为来分,学习其实就两类:被动学习 vs 主动学习。被动学习大部分的表现是听音频、去阅读、去看视频,但这个效果有数据表明并不好。主动学习则是把自己学到的东西,再去教给另外一个人。通过讨论、实践,真正的把内容掌握。所谓教学相长。

网上有很多大佬给初学者的建议,比如如何快速掌握一门编程语言。首先是克服对语言本身的恐惧,然后就是下面目录的步骤逐步前进,再逐步加深

现在网上有很多入门,我个人推荐的有廖雪峰的Python入门系列,以及B站有很多视频。我这里算是重复造轮子,然后基于自己的理解尽量写出10分钟可以快速入门的教程。因为我们的目的是量化交易,所以无关的就会尽量忽略,有兴趣的可以课外学习。

目录:

简介

安装

第一个程序

Python基础

函数

高级特性

0. 简介

Python是一门非常强大的脚本语言,我们选择它作为工具,一是比较容易入门,二是因为有太多的库可以支持,只有想不到,没有做不到。使用Python开发,可以直接把这些现成的库拿来为我所用,而不比从头开发。我们选择Python做量化交易的编程语言,也是因为它容易上手,且功能强大。

1. 安装

1.1 安装Python

本节只涉及Windows和Mac安装,大部分人也不会在Linux上开发。另外考虑到Python3.X越来越流行,直接选一个。

Windows,根据你电脑系统的不一样,从官网直接下载对应的版本,然后执行对应的exe文件即可。现在的安装文件比早期做的好太多,一路Next下去即可。记得勾上Add Python 3.X to PATH

Mac:Mac带的Python默认是2.7的,如果要安装3.X的有两个办法:

直接从官网下载最新Python3.X,双击安装即可。

如果安装了HomeBrew,直接通过命令安装即可。

我的经验:Windows里面还是各种坑比较多,不过大部分应该还是会习惯于Windows,我自从切换到Mac之后,已经感觉无法再切换回Windows了。因为在Mac下面配置开发环境简直太轻松了。

1.2 验证安装是否成功

由于我工作电脑是Mac,所以以下截图是以Mac为例的:

安装成功后,打开终端(Terminal),出来以下界面,然后敲入python3

则证明安装成功了。这个提示符表明我们已经在Python交互环境了,可以输入Pyton代码,然后马上得到结果,这个做计算器的话,非常方便。

2.第一个程序

工欲善其事必先利其器,所以有一个顺手的工具也非常重要,这里我推荐的是PyCharm,到官网下载电脑对用的版本就好了。对一般用户来说,使用Community绰绰有余了。

在打开PyCharm界面,点击Create New Project,建立一个项目,以后代码、数据全部放在这个项目内。

然后在项目内新建一个文件叫hello.py,然后输入,右键—run hello。

如果下面出现了下图,就表明你已经顺利的写了你第一个Python程序。

在《Learn Python 3 the Hard Way》里面提到,代码最好要手敲,而不要复制粘贴,因为在敲的过程中可能会犯一些错误,只有趟过这些坑,才会尽快熟悉。刚刚在群里就看到一位朋友的错误是因为列表里面几个元素之间,有两个之间少了, 查了好久才查到原因。

3. Python基础

3.1 数据类型

Python支持整数、浮点数、字符串、布尔值、列表、字典等数据类型。

整数:Python可以处理正负整数,也包括其他进制的数字。

浮点数:带小数点的数字

字符串:含在单引号或者之间的任意字符串。字符串可以使用操作。注意两个字符串之间才能用。如果是不同的数据类型,比如字符串和整数之间用进行连接,会报操作不支持的错误,解决办法就是把整数使用改变为字符串。

布尔值:Python里面,布尔值只有两个True和False(注意大小写)。布尔值的计算使用and、or和not。

3.2 变量/常量

变量就是在程序中使用的一个变量名,比如你需要一个字段记录名称,可以顶一个变量叫。

常量就是不能变的变量。一般全部大写来表示。比如

3.3 列表和元祖

在Python中,列表是一种有序集合,元素以隔开。可以随时添加、删除里面的元素。可以获得列表内元素的个数。我们使用索引去访问列表中的元素,要注意的是,计算机中索引是从0开始计数的,所以索引0对应的是第1个元素。最后一个元素的索引是。如果超出这个范围,则会报错误。

列表还支持负索引,即alist[-1]代表最后一个元素。

我们可以使用append()方法在列表尾部追加元素,也可以使用insert()把元素插入到指定位置。

使用pop()删除尾部的元素,如果要删除指定的元素,则使用pop(index)方法。

元祖和列表基本一样,唯一不同的地方是元祖一旦初始化就不能修改。适合作为字典的key。

3.4 字典/ Set

Python中的字典使用键值存储。字典中,键值必须是不可变元素,但是值可以为任意Python对象。

常用方法就是

Set是一组键的无序集合,但是不存储值。Set中不会出现重复的元素,可以利用这个特性去过滤元素。

3.5 条件判断

Python里面使用if做条件判断,基于一定的条件,判断是否执行特定的一段代码

这里要注意的是:Python不使用 {} 将 if 语句控制的区域包含起来。Python使用的是缩进方法。

elif 的个数没有限制,可以是1个或者多个,也可以没有。

else 最多只有1个,也可以没有。

3.6 循环

Python里面的循环主要是实现重复计算,进行循环操作。

一种是for..in循环,依次进行处理。for 循环会遍历完中所有元素为止

另一种是while循环,只要满足条件,就不断循环,条件不成立,就退出循环。

Python会循环执行,直到不满足为止。

在循环里面,break可以提前退出循环, continue则是用来跳出当前循环,直接进行下一次循环。一般要搭配if语句进行判断使用。

4. 函数

简单定义函数就是,通常接受输入参数,实现一定的功能,并有返回值。

调用内置函数,直接调用对应的函数并传入正确的参数,即可达到你的目的。

Python是使用以下方式来调用方法:

对象.方法(参数)。

定义函数

函数通常有以下几个特征:

使用 def 关键词来定义一个函数。

def 后面是函数的名称,括号中是函数的参数,不同的参数用 , 隔开, def foo(): 的形式是必须要有的,参数可以为空;

使用缩进来划分函数的内容;

docstring 用 """ 包含的字符串,用来解释函数的用途,可省略;

return 返回特定的值,如果省略,返回 None 。

使用函数

使用函数时,只需要将参数换成特定的值传给函数。

比如:

5. 高级特性5.1 切片

分片用来从序列中提取出想要的子序列,其用法为:

其范围包括 lower ,但不包括 upper ,即 [lower, upper), step 表示取值间隔大小,如果没有默认为1。

切片主要是用来截取一个列表的部分元素,比如一个列表, 如果去取三个元素,就使用,就可以得到,切片操作是左闭右开,也就是说包括左边那个元素,但是不包括右边那个元素,这里的3只的是index=3,也就是第四个元素。

在列表中,我们可以用负数index,在切表运算中,同样可以这么操作,比如就是指从倒数第二个元素取到最右边的所有元素。

一个技巧,如果我们想复制出一个新的列表,而不影响原来的列表,可以使用。

要注意的问题

通过上面的顺序,可以掌握Python基本的用法,但是学无止境,要想更精通,那就多练多学习。

下面是一些要注意的问题:

一开始不要陷入底层逻辑和细枝末节,比如你学习函数,一开始你就学会如何定义函数,如何调用函数就可以了。至于里面参数的各种类型,到底是值传递还是引用传递,开始的时候都可以先忽略。

要系统性学习,找到一个整套的课程或书籍学习,不要利用网上的文章进行系统性学习,如果你需要解决某个特定问题,可以到网上查。

目标:能用起来,程序能跑通。Done is better than perfect.

别指望速成,可以快速入门用起来,但是很快成为一个专家,那是很难的。

写到最后

写到这里的时候,无比佩服那些写技术书籍的人,我这里只是准备简单的入门,就觉得写起来很辛苦,你自己懂一个东西,和你把这个东西写清楚绝对是两码事。而那些大神,不光很精通,还能把技术原理说的很清晰,真是非常厉害。

另外我也是第一次准备这种入门级的教程,估计还是会很多地方遗漏,欢迎指正,我随时修改完善。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201030A0J8MZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券