股票信息分析
类型:文件
描述
附件文件为某股票2019年部分数据,根据要求进行统计分析:
-
若输入为‘最高价’:
再输入一个正整数n
按照示例格式每行依次输出最高价由高到低的前n
天的日期和当天最高价,行内各数据间用空格分隔 -
若输入为‘开盘价’:
再输入一个正整数m
按照示例格式每行依次输出开盘价由低到高的前m
天的日期和当天开盘价,行内各数据间用空格分隔 -
若输入为‘成交金额’:
再输入一个正整数num
输出成交金额最高的num
天的成交额 -
若输入为‘日期’:
再输入一个日期
输出当天的股票信息,各数据间用空格分隔
示例 1
输入:
最高价
3
输出:
最高价从高到低前3名:
2019/3/4 6.82元
2019/3/6 6.81元
2019/3/5 6.79元
示例 2
输入:
开盘价
3
输出:
开盘价从低到高前3名:
2019/1/3 5.60元
2019/1/4 5.69元
2019/1/2 5.72元
示例 3
输入:
成交金额
5
输出:
成交金额最多的5天成交额为10586866278元
示例 4
输入:
日期
2019/7/10
输出:
2019/7/10 '600016 民生银行 5.98 6 5.96 6 222779021
参考代码
def readfile(filename):
with open(filename,'r',encoding='utf-8') as data:
stock = [line.strip().split(',') for line in data]
return stock
def highPrice(num):
sortStock = sorted(stock[1:], key=lambda x: float(x[4]), reverse=True)
print(f'最高价从高到低前{num}名:')
for i in range(num):
print(sortStock[i][0], f'{sortStock[i][4]}元')
def openingPrice(num):
sortStock = sorted(stock[1:], key=lambda x: float(x[6]))
print(f'开盘价从低到高前{num}名:')
for i in range(num):
print(sortStock[i][0], f'{sortStock[i][6]}元')
def tradingAmount(num):
sortStock = sorted(stock[1:], key=lambda x: float(x[7]), reverse=True)[:num]
print(f'成交金额最多的{num}天成交额为{sum([int(x[7]) for x in sortStock])}元')
def tradingDay(date):
for x in stock[1:]:
if x[0] == date:
print(*x)
if __name__ == '__main__':
filename = 'China Minsheng Bank.csv'
stock = readfile(filename)
choice = input()
if choice == '最高价':
num = int(input()) # 输入整数n,从高到低输出日期和当日最高价
highPrice(num)
elif choice == '开盘价':
num = int(input()) # 输入整数n,从低到高输出日期和当日最高价
openingPrice(num)
elif choice == '成交金额':
num = int(input())
tradingAmount(num)
elif choice == '日期':
date = input()
tradingDay(date)
# def readfile(filename):
# with open(filename,'r',encoding='utf-8') as data:
# stock = [line.strip().split(',') for line in data]
# return stock
# if __name__ == '__main__':
# filename = 'China Minsheng Bank.csv'
# choice = input()
# if choice == '最高价':
# num = int(input()) # 输入整数n,从高到低输出日期和当日最高价
# sortStock = sorted(readfile(filename)[1:],key=lambda x:float(x[4]),reverse=True)
# print(f'最高价从高到低前{num}名:')
# for i in range(num):
# print(sortStock[i][0],f'{sortStock[i][4]}元')
# elif choice == '开盘价':
# num = int(input()) # 输入整数n,从低到高输出日期和当日最高价
# sortStock = sorted(readfile(filename)[1:],key=lambda x:float(x[6]))
# print(f'开盘价从低到高前{num}名:')
# for i in range(num):
# print(sortStock[i][0],f'{sortStock[i][6]}元')
# elif choice == '成交金额':
# num = int(input())
# sortStock = sorted(readfile(filename)[1:], key=lambda x: float(x[7]),reverse=True)[:num]
# print(f'成交金额最多的{num}天成交额为{sum([int(x[7]) for x in sortStock])}元')
# elif choice =='日期':
# date = input()
# for x in readfile(filename)[1:]:
# if x[0] == date:
# print(*x)