Пожалуйста, помогите решить задачу на Python. Упражнение 161, 164, 165, 166. без электронной почты
Упражнение 161. Что за химический элемент?
(59 строк)
Напишите программу, которая будет считывать файл, содержащий информацию о химических элементах, и сохранять ее в более подходящей
для этого структуре данных. После этого пользователь должен ввести значение. Если введенное значение окажется целочисленным, программа
должна вывести на экран обозначение и название химического элемента
с введенным количеством протонов. При вводе пользователем строки необходимо отобразить количество протонов элемента с введенным пользователем обозначением или названием. Если введенное пользователем
значение не соответствует ни одному из элементов в файле, необходимо
вывести соответствующее сообщение об ошибке. Позвольте пользователю
вводить значения до тех пор, пока он не оставит ввод пустым.
Упражнение 164. Универсальные имена (56 строк)
Некоторые имена, такие как Бен, Джонатан и Эндрю, подходят только для мальчиков, другие – Ребекка или Флора – только для девочек. Но есть и универсальные имена наподобие Крис или Алекс, которые могут носить и мальчики, и девочки.
Напишите программу, которая будет выводить на экран имена, использованные для мальчиков и девочек в указанном пользователем году. Если в этом году универсальных имен не было, нужно известить об этом пользователя. Кроме того, если за указанный пользователем год не было данных по именам, выведите соответствующее сообщение об ошибке. Дополнительные детали по хранению имен в файлах – в упражнении 163.
Упражнение 165. Самые популярные имена за период (76 строк)
Напишите программу, которая будет определять самые популярные имена для детей в выбранном пользователем периоде. Используйте базу данных из упражнения 163. Позвольте пользователю выбрать первый и последний год анализируемого диапазона. В результате программа должна вывести на экран мужское и женское имена, которые были чаще остальных даны детям в заданный период времени.
Упражнение 166. Имена без повторов (41 строка)
Продолжаем использовать базу имен из упражнения 163. Проходя по файлам, выберите имена без дублирования отдельно для мальчиков и для девочек и выведите их на экран. Разумеется, повторяющихся имен в этих списках быть не должно.
Для выполнения данных задач на Python, вам потребуется работать с файлами и обрабатывать текстовую информацию. Ниже приведены программы для каждой из задач.
Упражнение 161.
# Создайте словарь для хранения информации о химических элементах
elements = {}
# Откройте файл с информацией о химических элементах
with open("elements.txt", "r") as file:
lines = file.readlines()
for line in lines:
data = line.split(',')
symbol, name, protons = data[0], data[1], int(data[2])
elements[protons] = (symbol, name)
# Ввод пользователем значения
while True:
user_input = input("Введите значение (протоны, символ или имя): ")
if user_input == "":
break
try:
protons = int(user_input)
if protons in elements:
symbol, name = elements[protons]
print(f"Обозначение: {symbol}, Название: {name}")
else:
print("Элемент с таким количеством протонов не найден.")
except ValueError:
found = False
for data in elements.values():
symbol, name = data
if user_input == symbol or user_input == name:
print(f"Количество протонов для {symbol}/{name}: {protons}")
found = True
break
if not found:
print("Элемент с таким обозначением или названием не найден.")
Упражнение 164.
# Введите год для анализа
year = input("Введите год для анализа: ")
# Создайте списки для мальчиков и девочек
boy_names = []
girl_names = []
# Откройте файлы с данными имен
with open("boys_names.txt", "r") as boys_file, open("girls_names.txt", "r") as girls_file:
boys_lines = boys_file.readlines()
girls_lines = girls_file.readlines()
for line in boys_lines:
data = line.strip().split(',')
if data[0] == year:
boy_names.append(data[1])
for line in girls_lines:
data = line.strip().split(',')
if data[0] == year:
girl_names.append(data[1])
# Вывод результатов
if not boy_names and not girl_names:
print(f"В {year} году универсальных имен не было.")
else:
print(f"Универсальные имена в {year} году:")
if boy_names:
print("Мальчики:", ", ".join(boy_names))
if girl_names:
print("Девочки:", ", ".join(girl_names))