我需要编写一个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
答案 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()
移到了开头,因为不需要一直打开该文件。