编写程序以读取/关闭文件,并显示以下输出

时间:2019-09-22 04:26:33

标签: python python-3.x list

我需要编写一个Python程序来读取/关闭文件(即Stock.txt),并使用list的split方法显示以下输出。 Stock.txt中只有一行是投资者的股票投资组合,包括四只股票的投资量。

Stock.txt文件的内部内容:

hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23

我只知道如何编写相关的Python代码来打开以读取/关闭文件。我真的不知道我应该写些什么python代码来显示以下预期输出,这是作业需要我做的!

我当前的代码:

infile = open("Stock.txt", 'c')
data = [line.rstrip() for line in infile]

infile.close()

但是我不确定我当前的代码是否正确,因为我是Python初学者。

此作业的预期输出:

01234567890123456789012345678901234567890123456789

The amount invested in HSBC:       844563.24
The amount invested in BOC:        465392.46
The amount invested in MANULIFE:   345612.98
The amount invested in GALAXY:     893421.23

STOCK      PERCENTAGE
---------------------
HSBC           33.13%
BOC            18.26%
MANULIFE       13.56%
GALAXY         35.05%

Total Amount Invested: $2,548,989.91

1 个答案:

答案 0 :(得分:-1)

我认为我不允许您完全解决它,但我可以帮助您入门。

first_line = data[0] # 'hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23'
real_data = first_line.split(', ') # ['hsbc', '84564.24', 'boc', '46392.45', 'manulife', '34562.98', 'galaxy', '89321.23']

文件中有一行,因此我们以data[0]作为第一行,然后以.split(', ')划分为一个列表。

stock_names = real_data[::2] # ['hsbc', 'boc', 'manulife', 'galaxy']
stock_values = real_data[1::2] # ['84564.24', '46392.45', '34562.98', '89321.23']

第一行从第0行开始获取real_data的第二个元素。 第一行从第一行开始获取real_data的第二个元素。 两者都使用列表拼接语法: 列表[开始:结束:步骤] Understanding slice notation

for name, value in zip(stock_names, stock_values):
    print(name, value)
    # perform calculations ect. 

一起:

infile = open("stocks.txt", 'r')
infile.close()
data = [line.rstrip() for line in infile]
first_line = data[0]
real_data = first_line.split(', ')
stock_names = real_data[::2]
stock_values = real_data[1::2]
for name, value in zip(stock_names, stock_values):
    print("something")
    # perform calculations
# Good luck :)

请注意,我已经将infile.close()移到了开头,因为不需要一直打开该文件。