Python的这些运算符号,经常用在金融领域你掌握了吗?
本节进入到Python具体的运算环节。既然是运算就需要有相应的运算符号,具体包括算术运算、关系运算、赋值运算、逻辑运算,这些运算在金融领域都是经常使用的。
2.4.1 基本算术运算符号
从最简单的“加、减、乘、幂、除、模、整除”等基础的算术运算说起,这些也是金融领域最基本的运算。表2-4介绍了在Python中相应的算术运算符号。
表2-4 Python中的算术运算符号
需要注意的是,在“加法、减法、乘法以及幂运算”中,存在以下3个规律:一是整型与整型之间的运算,得到的结果是整型;二是整型与浮点型之间的运算,得到的结果是浮点型;三是浮点型与浮点型之间的运算,得到的结果是浮点型。
【例2-40】 在Python中输入整型和浮点型,并且进行相应的加法运算,具体的代码如下:
In [102]: a=2 #整型
In [103]: b=5 #整型
In [104]: c=1. #浮点型
In [105]: d=3.8 #浮点型
In [106]: e=6.95 #浮点型
In [107]: a+b #整型与整型相加
Out[107]: 7
In [108]: a+c #整型与浮点型相加
Out[108]: 3.0
In [109]: d+e #浮点型与浮点型相加
Out[109]: 10.75
【例2-41】 对例2-40中输入的整型和浮点型,进行相应的减法运算,具体的代码如下:
In [110]: a-b #整型与整型相减
Out[110]: -3
In [111]: a-c #整型与浮点型相减
Out[111]: 1.0
In [112]: a-e #整型与浮点型相减
Out[112]: -4.95
In [113]: d-e #浮点型与浮点型相减
Out[113]: -3.1500000000000004
注意,输出−3.1500000000000004的结果是因为浮点型在计算机内存中是以二进制形式表示的,通常这不会影响计算。
此外,如果控制计算结果的小数点以后的位数,可以运用round函数,其中,round函数中的第一个参数代表了需要输出的结果,第二个参数代表输出结果的小数位数。
【例2-42】 针对例2-41中,d-e输出结果需要保留小数点后2位,具体的代码如下:
In [114]: round(d-e,2) #保留小数点2位
Out[114]: -3.15
【例2-43】 对例2-40中输入的整型和浮点型,进行相应的乘法运算,具体的代码如下:
In [115]: a*b #整型与整型相乘
Out[115]: 10
In [116]: a*c #整型与浮点型相乘
Out[116]: 2.0
In [117]: d*e #浮点型与浮点型相乘
Out[117]: 26.41
【例2-44】 对例2-40中输入的整型和浮点型,进行相应的幂运算,具体的代码如下:
In [118]: a**b #整型与整型的幂运算
Out[118]: 32
In [119]: b**a #整型与整型的幂运算
Out[119]: 25
In [120]: a**c #整型与浮点型的幂运算
Out[120]: 2.0
In [121]: d**e #浮点型与浮点型的幂运算
Out[121]: 10702.765165970346
注意,对于除法而言,得到的结果始终是浮点型。
【例2-45】 对例2-40中输入的整型和浮点型,进行相应的除法运算,具体的代码如下:
In [122]: f=4
In [123]: f/a #整型与整型相除
Out[123]: 2.0
In [124]: b/a #整型与整型相除
Out[124]: 2.5
In [125]: a/c #整型与浮点型相除
Out[125]: 2.0
In [126]: e/d #浮点型与浮点型相除
Out[126]: 1.8289473684210527
请注意,在Python 2.X版本中,整型除以整型,只能得出整型,如果要得到有小数的结果,需要把其中一个数改成浮点型。
所谓的模运算就是计算余数,并且在Python中是用%符号表示,因此对于百分比的输入切记要转化为具有小数位的浮点型进行输入,否则就会失之毫厘,谬以千里。
【例2-46】 对例2-40、例2-45中输入的整型和浮点型,进行相应的模运算,具体的代码如下:
In [127]: f%a
Out[127]: 0
In [128]: b%a
Out[128]: 1
In [129]: d%a
Out[129]: 1.7999999999999998
In [130]: d%e
Out[130]: 3.8
In [131]: e%d
Out[131]: 3.1500000000000004
整除就是只输出商的整数部分,并且是向下取整(或着是在数轴上向左取整)之后的结果。同时需要注意,如果除数和被除数均是整型,输出的结果就是整型;如果除数和被除数只要有一个是浮点型,输出的结果是浮点型的整数。
【例 2-47】 对例2-40中输入的整型和浮点型,进行相应的整除运算,具体的代码如下:
In [132]: b//a #均是整型
Out[132]: 2
In [133]: b//d #一个整型一个浮点型
Out[133]: 1.0
In [134]: e//a #一个整型一个浮点型
Out[134]: 3.0
In [135]: e//d #均是浮点型
Out[135]: 1.0
2.4.2 关系运算符号
在基金投资中,基金经理需要根据基金投资者的风险偏好和投资策略配置相应的证券资产,比如要求基金配置的股票必须是主板上市公司、不能是产能过剩的行业、股价波动率低于30%、上市公司股息分配率超过3%等投资的限制性条件,这就涉及数学中的关系运算,具体包括了等于、不等于、大于、大于等于、小于、小于等于这六大类,也是金融领域最主要的关系运算,在Python的关系运算符号如表2-5所示。
表2-5 Python中的关系运算符号
需要注意的是,数学中的等于号,在Python中是用双等号“==”表示,而单等号“=”则是赋值符号(在2.1节已经介绍),切记这两个符号不能混淆。同时,表2-5中的输出结果True和False就是布尔值(bool)。
2.4.3 赋值运算符号
在前面2.1节就介绍了Python最基础的赋值方法,也就是基本赋值运算符号“=”。此外,Python中还有将不同的算数运算符号与基本赋值运算符号结合在一起而形成的高级赋值运算符号,具体见表2-6。
2.4.4 成员运算符号
假定需要从沪深300指数中找出10只符合一定投资标准(比如市值、市盈率、换手率等)的股票,并且运用Python编写相应的程序,就会运用成员运算符号,并且往往需要结合循环语句、假设语句进行使用。Python的成员运算符号,可以判断一个元素是否在某一个列表中,可以判断一个字符是否属于某个字符串。表2-7就归纳了相应的成员运算符号。
表2-7 Python中的成员运算符号
成员运算符 | 具体描述 |
---|---|
in | 如果一个变量在指定的另一个变量(列表、元组、字符串等)中找到相应的值,则返回True,否则返回False |
not in | 如果一个变量在指定的另一个变量中没有找到相应的值,返回True,否则返回False |
下面通过数字和字符串两个例子演示在Python中成员运算符号的运用。
【例2-48】 在Python中考察相应的数字是否在一个列表中,相关的代码如下:
In [176]: a=1
In [177]: b=3
In [178]: c=[1,2,4,8,16]
In [179]: a in c
Out[179]: True
In [180]: b in c
Out[180]: False
【例2-49】 在Python中考察相应的字符串是否在一个列表中,相关的代码如下:
In [181]: d='金融'
In [182]: e='风险管理'
In [183]: f=['finance','风险管理','波动率']
In [184]: d in f
Out[184]: False
In [185]: e in f
Out[185]: True
本文摘自:《基于Python的金融分析与风险管理》
本书聚焦于Python在金融分析与风险管理的应用,全书分为入门篇、基础篇和提高篇,共12章。入门篇对Python做了介绍并结合金融场景演示了Python的基本操作;基础篇结合金融场景,讲解NumPy、Pandas、Matplotlib、SciPy等Python模块的具体运用;提高篇详细讨论运用Python分析利率、债券、股票、期货、期权以及风险价值等内容。
本书是专注于Python在金融领域运用的普及性读物,作者斯文博士在金融与风险管理方面有着深厚的积累,同时也有着丰富的编程经验,一直致力于倡导和推广Python在金融领域的运用。
本书适合想要掌握Python应用的金融学习者、金融从业者阅读,也适合想要转行到金融领域的程序员以及对Python在金融领域的实践应用感兴趣的人士阅读,并且不要求读者有Python编程基础。