python金融应用(二)基本数据类型和结构
一.基本数据类型
1.整形
a=10
type(a)
Out[75]: int a.bit_length() #字节长度
Out[76]: 4 整形相除会返回整形,想要返回浮点数,需要用浮点数相除
1./4
Out[79]: 0.25
2.浮点型
b=0.25
type(b)
Out[80]: float 浮点数表示成有理分式
b.as_integer_ratio()
Out[81]: (1, 4)
那么怎么确定精度呢? 需要引入decimal模块
import decimal
from decimal import Decimal
decimal.getcontext()
Out[82]: Context(prec=8, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[Inexact, Rounded], traps=[InvalidOperation, DivisionByZero, Overflow])
可以看到 精度是28,还有最大值、最小值
可以改变精度
decimal.getcontext().prec=4 # 改变精度为4
e=Decimal(1)/Decimal(11) #计算1/11
print(e)
输出结果:
0.09091
确定精度为10:
decimal.getcontext().prec=10
e=Decimal(1)/Decimal(11)
print(e)
0.09090909091
3.字符串
字符串表示文本
t='this is a string' t.capitalize()
Out[88]: 'This is a string'
按tab键可以有自动补全功能,可以查看内建方法。比如:图中有字符串的一些内建方法,capitalize等。
t.split() #字符串的分割
Out[23]: ['this', 'is', 'a', 'string'] #结果分割为列表 查找
t.find('a') #查找元素‘a’,返回元素位置,注意:python位置下标从0开始
Out[25]: 8
替换
t.replace(' ','|') #把空格替换为‘|’
Out[27]: 'this|is|a|string'
去除操作
s='http://wwww.python.org'
s.strip('htp:/') #去除'htp:/'
Out[29]: 'wwww.python.org'
正则表达式 re的简单应用
import re
series="""
'01/18/2014 13:00:00',100,'1st', #三引号表示可以换行
'01/18/2014 13:00:00',110,'2nd',
'01/18/2014 13:00:00',120,'3rd',
"""
dt=re.compile(r"'[0-9/:\s]+'") #匹配规则:反斜杠表示转译
result=dt.findall(series)
print(result)
["'01/18/2014 13:00:00'", "'01/18/2014 13:00:00'", "'01/18/2014 13:00:00'"] #返回值是一个列表
接着把时间序列转化为datetime对象
from datetime import datetime
pydt=datetime.strptime(result[0].replace("'",""),'%m/%d/%Y %H:%M:%S')
pydt
Out[102]: datetime.datetime(2014, 1, 18, 13, 0)
type(pydt)
Out[103]: datetime.datetime
小注:
datetime模块的时间与字符串转化:
import datetime
from datetime import datetime
datetime.datetime.strftime():由日期格式转化为字符串格式
datetime.datetime.now().strftime('%m-%d-%Y %H:%M:%S')
Out[105]: '05-02-2018 18:27:58'
datetime.datetime.strptime():由字符串格式转化为日期格式
datetime.datetime.strptime('05-16-2017 21:01:35', '%m-%d-%Y %H:%M:%S')
Out[107]: datetime.datetime(2018, 5, 2, 18, 27, 58)
具体参考:https://www.cnblogs.com/cindy-cindy/p/6720196.html
二.基本数据结构
1.元组:tpule
t=(1,2.5,'date') t1=1,2.5,'date'
type(t1)
Out[3]: tuple t1[2]
Out[4]: 'date'
只有两个方法 : 计数与下表返回索引
t.count(para)
t.index(para)
t.count(1)
Out[6]: 1 t.index(1)
Out[7]: 0
2.列表
列表的构建
l=[1,2,1.5]
l1=[x for x in range(10)]
l2=list(t)
print(l,'\n',l1,'\n',l2)
[1, 2, 1.5]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2.5, 'date']
操作方法:
print('abc\ndef') #\n 换行
abc
def type(l1)
Out[10]: list l.append([4,3]) #添加列表
l
Out[11]: [1, 2, 1.5, [4, 3]] l.extend([1,3,6]) # 添加元素
l
Out[12]: [1, 2, 1.5, [4, 3], 1, 3, 6] l.insert(1,'date')
l
Out[13]: [1, 'date', 2, 1.5, [4, 3], 1, 3, 6] l.remove('date')
l Out[14]: [1, 2, 1.5, [4, 3], 1, 3, 6] p=l.pop(2) # pop 方法 可用返回值接受
print(l,'\n',p) [1, 2, [4, 3], 1, 3, 6]
1.5 l[:2]
Out[16]: [1, 2]
3.字典
d={
'name':'John',
'sex':'male',
'age':18,
'country':'China'}
d['name']
Out[17]: 'John' d.keys() # 所有key组成的列表
Out[18]: dict_keys(['name', 'sex', 'age', 'country']) d.values()
Out[19]: dict_values(['John', 'male', 18, 'China']) d.items() # 字典转化为 list list中元素是元组,元组由字典的key 和balue组合
Out[20]: dict_items([('name', 'John'), ('sex', 'male'), ('age', 18), ('country', 'China')]) print('{} is {}'.format(d['name'],d['age']))
John is 18 birth=True if birth is True:
d['age']+=1 print(d['age'])
19
字典的遍历
for i in d:
print(i) name
sex
age
country
for item in d.items():
print(item) ('name', 'John')
('sex', 'male')
('age', 19)
('country', 'China')
for values in d.values():
print(values) John
male
19
China
4.集合
s=set(['u','i','du','du','u']) print(s) t=set(['du','u'])
t
{'i', 'u', 'du'}
Out[27]: {'du', 'u'}
交并补
s.union(t)
Out[29]: {'du', 'i', 'u'} s.intersection(t)
Out[30]: {'du', 'u'} s.difference(t)
Out[31]: {'i'}
5. 函数编程
简单的函数:
def f(x):
return x**2 f(2)
Out[32]: 4
求偶数:
def even(x):
return x%2==0 even(2)
Out[33]: True
map函数:
python3下的map()函数返回类型为iterators,不再是list
map()的使用方法形如map(f(x),Itera).对,它有两个参数,第一个参数为某个函数,第二个为可迭代对象。
list(map(even,range(4)))
Out[34]: [True, False, True, False] list(map(lambda x:x**2,range(4))) Out[35]: [0, 1, 4, 9]
filter 函数:
过滤功能,刷选出符合条件的
list(filter(even,range(15)))
Out[36]: [0, 2, 4, 6, 8, 10, 12, 14]
reduce函数:
reduce()的使用方法形如reduce(f(x),Itera).对,它的形式和map()函数一样。不过参数f(x)必须有两个参数。reduce()函数作用是:把结果继续和序列的下一个元素做累积计算
from functools import reduce
reduce(lambda x,y:x+y,range(5)) Out[37]: 10
其实就是类似下边的函数:
def cunsum(x):
total=0
for i in range(x):
total+=i
return total cunsum(5)
Out[38]: 10
python金融应用(二)基本数据类型和结构的更多相关文章
- python基础(二)-------数据类型
python开发基础篇(二)数据类型 python数据类型有: 1.数字 1.只能存放一个值 2.一经定义,不可更改 3.直接访问 主要的分类为:整型,长整型,(python2有长整型的概念Pytho ...
- Python系列:二、数据类型--技术流ken
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 ...
- python教程(二)·数据类型
数据类型,顾名思义就是数据的类型,数据到底有哪些类型呢?在python中,最基本的数据类型有好几种,让我来逐个介绍. 整数类型(int) python中只有一种整数类型,就是int类型,在程序中的写法 ...
- Python基础(二)数据类型
(一)数字 Python3中的数字类型分为3种,分别是整型,浮点型以及复数. Python2种的数字类型分为4种,分别是整型,长整型,浮点型以及复数. 其中长整型时Python2为应对位数较大的而设置 ...
- python学习(二)--数据类型
数据类型 1.工厂函数 type() int() float() str() list() tuple() dict() bool() set()工厂函数的理解:工厂函数看上去有点像函数,实质上他们是 ...
- python开发基础(二)常用数据类型调用方法
1 数字: int 2 3 int : 转换,将字符串转化成数字 4 num1 = '123' 5 num2 = int (a) 6 numadd = num2 +1000 7 print(num2) ...
- Redis之(二)数据类型及存储结构
Redis支持五中数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sortedset:有序集合). Redis定义了丰富的原语命令,可以直接与Redis ...
- Python学习笔记(二)——数据类型
1.数据类型 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) 2.Python数字类型 Pyth ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- python基础二(基本数据类型)
python的基本数据类型:数字.字符串.列表.元祖.字典.集合 一.基本数据类型 1.1 数字int 数字主要是用来计算用的,使用方法并不多. # bit_length() 当十进制用二进制表示的时 ...
随机推荐
- thinkphp5中取消了3.2版本中的单字母函数,初用tp5可能不大适应,下边给出两者的对应参照表,以便查阅。
3.2版本 5.0版本 C config E exception G debug L lang T 废除 I input N 废除 D model M db A controller R action ...
- Salesforce学习之路(十二)Aura组件表达式
1. 表达式语法 在上篇文章组件属性示例中,新建了一个属性whom, 引用该属性时使用了表达式:{!v.whom},负责该属性的动态输出. 语法:{!expression} 上述示例中,我们的属性名称 ...
- hdu 1874 畅通工程续 (dijkstra(不能用于负环))
畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 《JAVA 程序员面试宝典(第四版)》之传递与引用篇
废话开场白 这个周末突然很想创业,为什么呢?原因很简单,我周围的同学或者说玩的比较好的朋友都发达了,前一个月和一个两年前还睡在一张床上的朋友,他现在已经在深圳买房买车了,没错是在深圳买 ...
- python:正则0
Python3 正则表达式特殊符号及用法(详细列表) 正则表达式的强大之处在于特殊符号的应用,特殊符号定义了字符集合.子组匹配.模式重复次数.正是这些特殊符号使得一个正则表达式可以匹配字符串集合而不只 ...
- 树的点分治 (poj 1741, 1655(树形dp))
poj 1655:http://poj.org/problem?id=1655 题意: 给无根树, 找出以一节点为根, 使节点最多的树,节点最少. 题解:一道树形dp,先dfs 标记 所有节点的子 ...
- 机器学习 TensorFlow 实现智能鉴黄
前言 最近在做一款图床服务,关注公号的小伙伴一定记得小柒曾说过,会在周末放出的,不好意思放大家鸽子了.之所以一直没敢放出,是因为鉴黄接口一直没调试好,虽然我对公号的小伙伴百分之百信任,奈何互联网鱼龙混 ...
- 软件测试从业者必备的高频Linux命令
命令 cd 1.如何进入上级目录 cd .. 2.如何进入当前用户主目录 cd ~ 3.如何进入上两级目录 cd ../.. 4.进入当前目录命令 cd . 5.如何进入目录 /usr/isTeste ...
- Redis是什么?看这一篇就够了
本文由葡萄城技术团队编撰并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 引言 在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原 ...
- 扛把子组20191031-8 alpha week 1/2 Scrum立会报告+燃尽图 06
此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9916 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 ...