1
Список всех стран
Используя базу данных world, выведи названия всех стран из таблицы country. Каждое название должно отображаться с новой строки и иметь номер.
Пример вывода:
1. Aruba
2. Afghanistan
3. Angola
...
239. Zimbabwe
Работа с базой world:
country с нумерацией.city.Используй параметризованные запросы, with и обработку ошибок.
Используя базу данных world, выведи названия всех стран из таблицы country. Каждое название должно отображаться с новой строки и иметь номер.
Пример вывода:
1. Aruba
2. Afghanistan
3. Angola
...
239. Zimbabwe
Добавьте к предыдущей программе возможность выбора страны. Пользователь должен ввести название страны. Далее выведите все города этой страны и их численность населения.
Пример вывода:
Введите страну: Germany
Berlin — 3386667
Hamburg — 1704735
Munich [München] — 1194560
...
pip install pymysql
world. Запишите параметры подключения:
localhost);world.world и точные названия столбцов могут отличаться в зависимости от версии. Обычно таблицы country и city связаны через country.Code = city.CountryCode. Проверьте схему через MySQL Workbench, DBeaver или запрос DESCRIBE city.
Файл: homework_task1.py
import pymysql
config = {
"host": "localhost",
"user": "root",
"password": "yourpassword",
"database": "world",
"charset": "utf8mb4",
}
try:
with pymysql.connect(**config) as connection:
with connection.cursor() as cursor:
cursor.execute("SELECT name FROM country ORDER BY name")
for index, row in enumerate(cursor, start=1):
print(f"{index}. {row[0]}")
except pymysql.MySQLError as e:
print("Ошибка базы данных:", e)
Файл: homework_task2.py
import pymysql
config = {
"host": "localhost",
"user": "root",
"password": "yourpassword",
"database": "world",
"charset": "utf8mb4",
}
country_name = input("Введите страну: ")
try:
with pymysql.connect(**config) as connection:
with connection.cursor() as cursor:
cursor.execute(
"""SELECT city.name, city.population
FROM city
JOIN country ON city.CountryCode = country.Code
WHERE country.name = %s
ORDER BY city.population DESC""",
(country_name,)
)
cities = cursor.fetchall()
if not cities:
print("Города не найдены. Проверьте название страны.")
for index, (name, population) in enumerate(cities, start=1):
print(f"{index}. {name} — {population}")
except pymysql.MySQLError as e:
print("Ошибка базы данных:", e)
homework_task1.py, скопируйте решение и замените параметры подключения на свои.python homework_task1.py
homework_task2.py. Введите название страны и проверьте вывод городов.country и city;world связь между городом и страной обычно осуществляется через код страны (CountryCode). Если в вашей версии базы столбцы называются иначе, отредактируйте запрос. Для точной проверки выполните DESCRIBE country и DESCRIBE city.