Форум сайта python.su
У меня есть вот такой код:
import matplotlib.pyplot as plt temp = input("Please enter your information!! ") try: with open('gfg.txt', 'w') as gfg: gfg.write(temp) except Exception as e: print("There is a Problem", str(e)) file_path = 'gfg.txt' file = open(file_path) strnew={} all_records = {} i=0 for line in file: for i in range(len(line)): if line[i]==':': strnew=line[i+1:] strnew = strnew.strip('; . \n') records_Inline=strnew.split(';') for records in records_Inline: if records != '': key, value = tuple(records.split('-')) all_records[key] = int(value) i+=1 cell_content = [] for key in all_records.keys(): cell_content.append([key, str(all_records[key])]) fig1 = plt.figure(1) plt.table(cellText = cell_content, loc = 'best') plt.axis('off') plt.figure(2) bars_loc = range(len(all_records)) plt.barh(bars_loc, all_records.values()) plt.yticks(bars_loc, list(all_records.keys())) plt.show()
Отредактировано ddSanitt (Фев. 6, 2023 08:49:38)
Прикреплённый файлы: Безымянный2.png (21,1 KБ)
Офлайн
ddSanittСначала преобразуй введённые данные в какую-то определённую форму. А потом напиши часть кода для разбора этой определённой формы. Ну, например, преобразователь ввода сначала удаляет из строки двоеточия, точки с запятой и дефисы. Потом преобразователь удаляет лишние пробелы из строки.
Мне надо сделать так, чтобы программа работала без этого шаблона и не зависела от - ; и :. Чтобы пользователь мог впихнуть любой текст, где есть какая-либо статистика.
Я думаю надо находить в тексте число. Потом брать в пару слово слева от этого числа, и потом искать следующее число и т.д.
Подскажите как это реализовать?
name: word1 - 123; word2 - 456; word3 - 789.
word1 123 word2 456 word3 789
[('word1', 123), ('word2', 456), ('word3', 789)]
word1 - 123, word2 - 456, word3 - 789!
word1 123 word2 456 word3 789
[('word1', 123), ('word2', 456), ('word3', 789)]
Офлайн
ddSanittприведите примеры таких любых текстов со статистикой.
Чтобы пользователь мог впихнуть любой текст, где есть какая-либо статистика
слово: слово-число; слово-число;
Офлайн