python——股票信息分析

文章介绍了一个Python函数,用于处理CSV文件中的股票数据,包括按最高价、开盘价排序输出前n天数据,以及计算指定日期的成交金额和查询特定日期的股票信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

股票信息分析

类型:文件

描述

附件文件为某股票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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_62488776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值