编辑 | Cowboy

校对 | 李明

来源 | 牛角财经

目的 | python量化基础 | 变量和简单的数据类型,零基础都可以看懂!!!

python教程

从入门到高级(免费)

特点:案例基于金融市场数据展开,让python量化初学者快速上手!

一,基础部分:

  1. 人生苦短,我用python!
  2. 数据类型
  3. 条件分支与循环
  4. 列表与元组
  5. 字典
  6. 函数
  7. Python的标准库
  8. 捕捉异常

数据类型

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。一般变量赋值格式:“变量名” + “=“ + “值”。

Python中有6个标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典)。

1.Number(数字)

一般变量的赋值格式:“变量名” + “=“ + “值”

例如:国内螺纹钢期货rb1910合约现在的价格为 3793,将价格3793赋值给rb1901这个变量。

'''螺纹钢rb1910现在的价格为3793'''rb1901 = 3793 #赋值变量print(rb1901) #打印变量

run:

3793

变量,顾名思义。我们的rb1901变量对应的值3793是可以改变的

例如:将rb1901合约价格随着行情的上下波动,那么对应的值也应该跟随着改变。

'''螺纹钢rb1910现在的价格为3793'''rb1901 = 3793​'''价格向上波动,变量rb1910的值也会跟着变动'''rb1901 = 4321print(rb1901)

run:

4321

rb1910初始值3793,被重新赋值4321。

2.String(字符串)

Python中的字符串用单引号 ' 或双引号 " 括起来。

例如:

'''String(字符串)'''rb1901 = "3793"#或者rb1901 = '3793'

run:

结果都一样

37933793

字符串的截取:变量[头下标:尾下标]

如果我们想把合约代码:rb1901,中的字母rb截取出来怎么办呢?

例如:

合约代码:r b 1 9 0 1

索 引:0 1 2 3 4 5

code = "rb1901"print(code[0:2])

run:

rb

直接通过:code[0:2]就可以取出rb。这里需要提醒一下,括号里面。类似于左闭右开区间。

[包含当前索引的值 :不包含当前索引的值]

再比如,取出变量rb1910的数字部分,

用code[2: ]获取从索引2开始到末尾的位置。

合约代码:r b 1 9 0 1

索 引:0 1 2 3 4 5

code = "rb1901"print(code[2:])

run:

1901

3.List(列表)

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:

变量[头下标:尾下标]

获取列表中的字符串'r','b'有两种方式。

'''列表'''list1 = ['r','b','1','9','0','1']print(list1[0:2])print(list1[0:-4])

run:

['r', 'b']['r', 'b']

同理,想要获取列表中,['1','9','0','1']也很简单

'''列表'''list1 = ['r','b','1','9','0','1']print(list1[2:])

run:

['1', '9', '0', '1']

4.Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同:

'''元组'''tuple1 = ('r','b',1901)print(tuple1[0:2])print(tuple1[2: ])

run:

('r', 'b')(1901,)

5.Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}或者set(value)

例如:

'''集合'''all = {'rb1901','hc1906','TA1910'}set('rb1901')print(all)print(set('rb1901'))​

run:

{'rb1901', 'hc1906', 'TA1910'}{'b', '1', 'r', '9', '0'} #集合是没有无序的

6.Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

'''字典'''code_dict = {'rb1901':3409,'hc1903':3031,'TA1906':5494}print(code_dict)

run:

{'rb1901': 3409, 'hc1903': 3031, 'TA1906': 5494}

如需本案例代码,微信关注:‘牛角财经’ ,回复:‘对应标题’ ,即可领取!

往期热文

量化研究:

1.python量化工具 |利用Python在策略中加入跟踪止盈止损模块(附代码)

2.TB量化兵器库 | 如何在TB中量化 “上升三角形” 和 “下降三角形”(附代码)?

量化教程:

1.初识 | 人生苦短,我用Python!

点击下方二维码即可关注‘牛角财经’

下标索引必须为正整数类型或逻辑类型_python量化基础 | 变量和简单的数据类型,零基础都可以看懂...相关推荐

  1. matlab索引必须为正整数或逻辑值,MATLAB编程求解湍流k-e方程时,总是遇见‘下标索引必须为正整数类型或逻辑类型’错误...

    %%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%% tic clear clc %1.模型参数 LD=1;H=0.04; mu=0.01;     %动力粘度 rou=1100;    ...

  2. matlab提示“下标索引必须为正整数类型或逻辑类型”或“索引超出矩阵维度”

    data = [1 2 3;1 3 2;2 4 1;3 4 1;4 5 2;6 2 1]; F=zeros(6);%矩阵的大小为M %生成邻接矩阵 ss=length(data(:,1)); for ...

  3. MATLAB-索引超出矩阵维度下标索引必须为正整数类型或逻辑类型 max()函数,一种解决办法

    在使用matlab的max( )函数时,报错:下标索引必须为正整数类型或逻辑类型. 我检查了一遍数组Ldb,索引是没有问题的.matlab的索引是从1开始的,这一点没有用错. 再检查后发现程序里有这样 ...

  4. 下标索引必须为正整数类型或逻辑类型_Python3 基本数据类型

    Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类 ...

  5. python 获取值类型用于定义变量_Python中的变量和简单数据类型

    变量: 变量是存储在内存中的值,在创建变量时会在内存中开辟一个空间. 变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符串. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存 ...

  6. matlab问题记录:索引超出矩阵维度与下标索引必须为正整数类型或逻辑类型。

    sum函数在索引矩阵A时,索引到下标为0或负数了.(虽然理论上并没有)可能是受到你之前空间变量的影响了,你在这些语句之前加上"clear"语句,清除一下工作空间变量试试.

  7. python如果想测试变量的类型、可以使用_python里测试变量类型用什么

    Python中测试变量类型可以使用isinstance()函数或type()函数来完成. isinstance() 函数: isinstance()函数来判断一个对象是否是一个已知的类型,类似 typ ...

  8. python集合类型应用场景_python学习笔记(10)--组合数据类型(集合类型)

    集合类型 集合是多个元素的无序组合,每个元素唯一,不存在相同类型,每个元素是不可变类型.用{}表示,元素间用逗号分隔.建立结合类型用{},或set函数,如果是空集合必须用set. >>&g ...

  9. SQL SERVER 简单的索引理解(超级简单,人人都可以看懂)

    索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针.数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行. 什么是索引 数 ...

最新文章

  1. tar: Cowardly refusing to create an empty archive 问题
  2. java list类型参数_java – List是一个原始类型.引用通用类型List应该参数化
  3. 机器人学习--AMCL导航包自己修改源码编译和调用方法
  4. 程序员——令人喷饭的代码注释
  5. 阿里巴巴计算平台资深技术专家“一浪”对大数据领域近几年的技术趋势和变化的看法【强烈推荐数据岗细细品!】
  6. go get如何删除_Go 每日一库之 xorm
  7. php调用.net webservice,PHP调用.NET的WebService 简单实例
  8. Linux编辑器介绍
  9. 什么是编译器(编程软件)?
  10. Win7 专业版安装中文包、汉化处理
  11. 未在计算机上注册控件-已解决
  12. OSChina 周日乱弹 —— 跨界程序员
  13. Mixly第三方用户库开发Arduino UNO使用EMW3080连接阿里云
  14. 深度学习的归一化和反归一化
  15. mac中dns解析不出来解决方式
  16. 阿里云人工智能pai云计算平台使用方法
  17. 快充伤电池?我来帮何同学做个假设检验
  18. 西门子HMI触摸屏设备“死机”或IO域出现“##”现象故障总结
  19. 偷天换日合约易主,地址变脸移花接木——底层函数误用漏洞 | 漏洞分析连载之四...
  20. 网络安全再迎新规、英美警告APT黑客攻击|11月18日全球网络安全热点

热门文章

  1. 使用WindowsXP中的网桥功能
  2. Java与XML编程之SAX
  3. 【第五周课后作业】“番茄工作法”软件创新性分析
  4. Oracle学习笔记:oracle的启动过程
  5. 一个项目告一段落,终于可以回家过年了。
  6. ATL--创建简单的ATL之dll工程,添加“ATL简单对象”类的参数说明
  7. AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
  8. 大数据_Flink_流式处理_Flik Vs Spark streaming_Flink的特点---Flink工作笔记0007
  9. vermgr工作笔记002---SVN查看log时报“svn there has been a problem contacting the server”错误
  10. 正则表达式学习笔记005--脱字符和美元符的认识与应用