作业
1.判断下列命名方式的正确与否(建议每个都运行一遍)
# 错 1name = '债券的面值' # 对 a_ = 12 # 对 _ = 123 # 错 _$ = 444 # 对 __ = '债券的面值' # 错 123 = 666 # 对 a1b = 45
File "<ipython-input-1-75692b094e3d>", line 2 1name = '债券的面值' ^ SyntaxError: invalid syntax
2.F='债券的1面值'中的1去掉
#**为需要填入代码的地方 F='债券的1面值' a=list(F) #先把string类型转化成list类型 # ** #把1去掉 a.remove('1') F=''.join(a) #把list转成string类型 print(F)
债券的面值
3.有如下列表,按照每个小题要求写出答案并运行
a = ['中证流通', '中证100', '上证指数','上证指数', 'A股指数', 'B股指数' ,'深证F60', '上证指数','深证F120']
- 计算列表的长度并输出
- 列表中追加元素"深证F200",并输出添加后的列表
- 请在列表的第1个位置插入元素"沪深300",并输出添加后的列表
- 请将列表b=['000300', '000902', '000903']的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
- 请删除列表中的元素"上证指数",并输出添加后的列表
- 请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
- 请删除列表中的第2至4个元素,并输出删除元素后的列表
- 请将列表所有得元素反转,并输出反转后的列表
- 请计算出"'上证指数',"元素在列表a中出现的次数,并输出该次数。
a = ['中证流通', '中证100', '上证指数','上证指数', 'A股指数', 'B股指数' ,'深证F60', '上证指数','深证F120']
print(len(a))
9
a.append('深证F200') print(a)
['中证流通', '中证100', '上证指数', '上证指数', 'A股指数', 'B股指数', '深证F60', '上证指数', '深证F120', '深证F200']
b=['000300', '000902', '000903'] li=[] li.extend(b) print(li)
['000300', '000902', '000903']
a.remove('上证指数') print(a)
['中证流通', '中证100', '上证指数', 'A股指数', 'B股指数', '深证F60', '上证指数', '深证F120', '深证F200']
a.pop(1)
'中证100'
print(a)
['中证流通', '上证指数', 'A股指数', 'B股指数', '深证F60', '上证指数', '深证F120', '深证F200']
del(a[1:4]) print(a)
['中证流通', '深证F60', '上证指数', '深证F120', '深证F200']
4. 定义一个函数计算债券现值
ABC公司发行了一个10年期的债券,面值为¥1000,票面利率为8%,到期兑付本金,每年末支付利息。请计算债券的现值。债券的现值 = 本金的现值 + 利息的现值
本金的现值=F(1+r)T\frac{F}{\left( 1+r \right)^{T}}(1+r)TF
利息的现值=∑TiC×F(1+r)i\sum_{T}^{i}{\frac{C\times F}{\left( 1+r \right)^{i}}}∑Ti(1+r)iC×F
其中,
- F=债券的面值=1000
- C=债券票息率=8%
- T=债券到期前发生的周期数量=10
- r=市场年收益率=10%
#**为需要填入代码的地方 def Count(F, C, T, r): #传入参数 a = F/(1+r)**T #定义计算方式 本金的现值 i=1 b=0 #初始化利息的现值 while i<T: #定义计算方式 利息的现值 b = b+C*F/(1+r)**i i = i + 1 return a+b #返回债券现值 #定义各项参数 F=1000 C=0.08 T=10 r=0.1 print(F,C,T,r)#输出各项参数 print(Count(F, C, T, r)) #输出债券现值
1000 0.08 10 0.1 846.2651947315433
END