Напишите программу для чтения / закрытия файла и отображения следующего вывода - PullRequest
0 голосов
/ 22 сентября 2019

Мне нужно написать программу на Python для чтения / закрытия файла (т. Е. Stock.txt) и отображения следующего вывода, используя метод разбиения списка.В 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 голосов
/ 22 сентября 2019

Не думаю, что мне позволено полностью решить эту проблему для вас, но я могу начать с этого.

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']

В первой строке каждый второй элемент real_data начинается с 0-го.Первая строка получает каждый второй элемент real_data, начиная с 1-го.Оба используют синтаксис объединения списка: list [start: end: step] Понимание обозначения среза

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() к началу, так как нет необходимости открывать файл все время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...