Главная страница

книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница53 из 69
1   ...   49   50   51   52   53   54   55   56   ...   69

Упражнение 42. Узнать частоту по ноте


##

# Преобразуем название ноты в частоту

#

C4_FREQ = 261.63

D4_FREQ = 293.66

E4_FREQ = 329.63

F4_FREQ = 349.23

G4_FREQ = 392.00

A4_FREQ = 440.00

B4_FREQ = 493.88

# Запрашиваем у пользователя название ноты name = input("Введите название ноты в виде буквы и цифры, например C4: ") # Сохраняем название ноты и номер октавы в разных переменных note = name[0] octave = int(name[1])

# Получаем частоту ноты четвертой октавы if note == "C": freq = C4_FREQ elif note == "D": freq = D4_FREQ elif note == "E": freq = E4_FREQ elif note == "F": freq = F4_FREQ elif note == "G": freq = G4_FREQ elif note == "A": freq = A4_FREQ elif note == "B": freq = B4_FREQ

# Адаптируем частоту к конкретной октаве freq = freq / 2 ** (4 – octave)

# Выводим результат

print("Частота ноты", name, "равна", freq)

Упражнение 43. Узнать ноту по частоте


##

# Запрашиваем у пользователя частоту ноты и определяем ее название

#

C4_FREQ = 261.63

D4_FREQ = 293.66

E4_FREQ = 329.63

F4_FREQ = 349.23

G4_FREQ = 392.00

A4_FREQ = 440.00

B4_FREQ = 493.88

LIMIT = 1

# Запрашиваем у пользователя частоту ноты freq = float(input("Введите частоту ноты (Гц): "))

# Определяем ноту по частоте. Если нота не найдена, присваиваем переменной # пустую строку if freq >= C4_FREQ – LIMIT and freq <= C4_FREQ + LIMIT:

note = "C4" elif freq >= D4_FREQ – LIMIT and freq <= D4_FREQ + LIMIT:

note = "D4"

elif freq >= E4_FREQ – LIMIT and freq <= E4_FREQ + LIMIT:

note = "E4" elif freq >= F4_FREQ – LIMIT and freq <= F4_FREQ + LIMIT:

note = "F4" elif freq >= G4_FREQ – LIMIT and freq <= G4_FREQ + LIMIT:

note = "G4" elif freq >= A4_FREQ – LIMIT and freq <= A4_FREQ + LIMIT:

note = "A4" elif freq >= B4_FREQ – LIMIT and freq <= B4_FREQ + LIMIT:

note = "B4" else: note = ""

# Отображаем результат или сообщение об ошибке if note == "":

print("Ноты с заданной частотой не существует.") else: print("Введенная частота примерно соответствует ноте", note)

Упражнение 47. Определение времени года


##

# Определяем и выводим название сезона по дате

# # Запрашиваем у пользователя дату month = input("Введите название месяца: ") day = int(input("Введите день: "))

Представленное решение содержит множество блоков elif, чтобы максимально упростить сценарий. Можно уменьшить количество блоков elif за счет усложнения общей условной конструкции.

# Определяем сезон if month == "Январь" or month == "Февраль":

season = "Зима" elif month == "Март": if day < 20:

season = "Зима" else:

season = "Весна" elif month == "Апрель" or month == "Май":

season = "Весна" elif month == "Июнь": if day < 21:

season = "Весна" else:

season = "Лето" elif month == "Июль" or month == "Август":

season = "Лето" elif month == "Сентябрь": if day < 22:

season = "Лето" else:

season = "Осень" elif month == "Октябрь" or month == "Ноябрь":

season = "Осень" elif month == "Декабрь": if day < 21:

season = "Осень" else: season = "Зима"

# Выводим результат

print(month, day, "соответствует сезону", season)

Упражнение 49. Китайский гороскоп


##

# Определяем животное, ассоциированное с введенным годом в китайском гороскопе

# # Запрашиваем у пользователя год year = int(input("Введите год: "))

# Определяем ассоциированное с годом животное if year % 12 == 8: animal = "Дракон" elif year % 12 == 9: animal = "Змея" elif year % 12 == 10: animal = "Лошадь" elif year % 12 == 11: animal = "Коза" elif year % 12 == 0: animal = "Обезьяна" elif year % 12 == 1: animal = "Петух" elif year % 12 == 2: animal = "Собака" elif year % 12 == 3: animal = "Свинья" elif year % 12 == 4: animal = "Крыса" elif year % 12 == 5: animal = "Бык"

elif year % 12 == 6: animal = "Тигр" elif year % 12 == 7: animal = "Кролик"

# Выводим результат

print("Год %d ассоциирован с животным: %s." % (year, animal))

При форматировании нескольких элементов в одной строке они перечисляются через запятую в круглых скобках справа от оператора %.

Упражнение 52. Буквенные оценки – в числовые


##

# Преобразуем буквенные оценки в числовые

#

  1. = 4.0

A_MINUS = 3.7

B_PLUS = 3.3

  1. = 3.0

B_MINUS = 2.7

C_PLUS = 2.3

  1. = 2.0

C_MINUS = 1.7

D_PLUS = 1.3

  1. = 1.0

F = 0

INVALID = –1

# Запрашиваем буквенную оценку у пользователя letter = input("Введите буквенную оценку: ") letter = letter.upper()

Инструкция letter = letter.upper() переводит все символы нижнего регистра в верхний, сохраняя результат в первоначальную переменную. Это позволит работать с оценками, введенными в нижнем регистре, без включения в программу дополнительных условных конструкций.

# Преобразуем оценку из буквенной в числовую, используя значение –1 как индикатор, # означающий ошибочный ввод if letter == "A+" or letter == "A":

gp = A elif letter == "A–": gp = A_MINUS elif letter == "B+":

gp = B_PLUS elif letter == "B":

gp = B elif letter == "B–": gp = B_MINUS elif letter == "C+":

gp = C_PLUS elif letter == "C":

gp = C elif letter == "C–": gp = C_MINUS elif letter == "D+":

gp = D_PLUS elif letter == "D":

gp = D elif letter == "F":

gp = F else: gp = INVALID

# Выводим результат if gp == INVALID:

print("Введена некорректная оценка.") else: print("Буквенная оценка", letter, "соответствует", gp, "баллам.")
1   ...   49   50   51   52   53   54   55   56   ...   69


написать администратору сайта