下标索引必须为正整数类型或逻辑类型_python量化基础 | 变量和简单的数据类型,零基础都可以看懂...
编辑 | Cowboy
校对 | 李明
来源 | 牛角财经
目的 | python量化基础 | 变量和简单的数据类型,零基础都可以看懂!!!
python教程
从入门到高级(免费)
特点:案例基于金融市场数据展开,让python量化初学者快速上手!
一,基础部分:
- 人生苦短,我用python!
- 数据类型
- 条件分支与循环
- 列表与元组
- 字典
- 函数
- 类
- Python的标准库
- 捕捉异常
数据类型
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量化基础 | 变量和简单的数据类型,零基础都可以看懂...相关推荐
- matlab索引必须为正整数或逻辑值,MATLAB编程求解湍流k-e方程时,总是遇见‘下标索引必须为正整数类型或逻辑类型’错误...
%%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%% tic clear clc %1.模型参数 LD=1;H=0.04; mu=0.01; %动力粘度 rou=1100; ...
- 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 ...
- MATLAB-索引超出矩阵维度下标索引必须为正整数类型或逻辑类型 max()函数,一种解决办法
在使用matlab的max( )函数时,报错:下标索引必须为正整数类型或逻辑类型. 我检查了一遍数组Ldb,索引是没有问题的.matlab的索引是从1开始的,这一点没有用错. 再检查后发现程序里有这样 ...
- 下标索引必须为正整数类型或逻辑类型_Python3 基本数据类型
Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类 ...
- python 获取值类型用于定义变量_Python中的变量和简单数据类型
变量: 变量是存储在内存中的值,在创建变量时会在内存中开辟一个空间. 变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符串. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存 ...
- matlab问题记录:索引超出矩阵维度与下标索引必须为正整数类型或逻辑类型。
sum函数在索引矩阵A时,索引到下标为0或负数了.(虽然理论上并没有)可能是受到你之前空间变量的影响了,你在这些语句之前加上"clear"语句,清除一下工作空间变量试试.
- python如果想测试变量的类型、可以使用_python里测试变量类型用什么
Python中测试变量类型可以使用isinstance()函数或type()函数来完成. isinstance() 函数: isinstance()函数来判断一个对象是否是一个已知的类型,类似 typ ...
- python集合类型应用场景_python学习笔记(10)--组合数据类型(集合类型)
集合类型 集合是多个元素的无序组合,每个元素唯一,不存在相同类型,每个元素是不可变类型.用{}表示,元素间用逗号分隔.建立结合类型用{},或set函数,如果是空集合必须用set. >>&g ...
- SQL SERVER 简单的索引理解(超级简单,人人都可以看懂)
索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针.数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行. 什么是索引 数 ...
最新文章
- tar: Cowardly refusing to create an empty archive 问题
- java list类型参数_java – List是一个原始类型.引用通用类型List应该参数化
- 机器人学习--AMCL导航包自己修改源码编译和调用方法
- 程序员——令人喷饭的代码注释
- 阿里巴巴计算平台资深技术专家“一浪”对大数据领域近几年的技术趋势和变化的看法【强烈推荐数据岗细细品!】
- go get如何删除_Go 每日一库之 xorm
- php调用.net webservice,PHP调用.NET的WebService 简单实例
- Linux编辑器介绍
- 什么是编译器(编程软件)?
- Win7 专业版安装中文包、汉化处理
- 未在计算机上注册控件-已解决
- OSChina 周日乱弹 —— 跨界程序员
- Mixly第三方用户库开发Arduino UNO使用EMW3080连接阿里云
- 深度学习的归一化和反归一化
- mac中dns解析不出来解决方式
- 阿里云人工智能pai云计算平台使用方法
- 快充伤电池?我来帮何同学做个假设检验
- 西门子HMI触摸屏设备“死机”或IO域出现“##”现象故障总结
- 偷天换日合约易主,地址变脸移花接木——底层函数误用漏洞 | 漏洞分析连载之四...
- 网络安全再迎新规、英美警告APT黑客攻击|11月18日全球网络安全热点
热门文章
- 使用WindowsXP中的网桥功能
- Java与XML编程之SAX
- 【第五周课后作业】“番茄工作法”软件创新性分析
- Oracle学习笔记:oracle的启动过程
- 一个项目告一段落,终于可以回家过年了。
- ATL--创建简单的ATL之dll工程,添加“ATL简单对象”类的参数说明
- AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
- 大数据_Flink_流式处理_Flik Vs Spark streaming_Flink的特点---Flink工作笔记0007
- vermgr工作笔记002---SVN查看log时报“svn there has been a problem contacting the server”错误
- 正则表达式学习笔记005--脱字符和美元符的认识与应用