python——股票信息分析

股票信息分析

类型:文件

描述

附件文件为某股票2019年部分数据,根据要求进行统计分析:

  1. 若输入为‘最高价’:
    再输入一个正整数n
    按照示例格式每行依次输出最高价由高到低的前n天的日期和当天最高价,行内各数据间用空格分隔

  2. 若输入为‘开盘价’:
    再输入一个正整数m
    按照示例格式每行依次输出开盘价由低到高的前m天的日期和当天开盘价,行内各数据间用空格分隔

  3. 若输入为‘成交金额’:
    再输入一个正整数num
    输出成交金额最高的num天的成交额

  4. 若输入为‘日期’:
    再输入一个日期
    输出当天的股票信息,各数据间用空格分隔

示例 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)

你可能感兴趣的:(python123题库解答,python,开发语言)