книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 72. Игра Fizz-Buzz(17 строк) Fizz-Buzz – это известная игра, помогающая детям освоить в игровой форме правила деления. Участники садятся в круг, чтобы игра теоретически могла продолжаться бесконечно. Первый игрок говорит «Один» и передает ход тому, кто слева. Каждый следующий игрок должен мысленно прибавить к предыдущему числу единицу и произнести либо его, либо одно из ключевых слов: Fizz, если число без остатка делится на три, или Buzz, если на пять. Если соблюдаются оба этих условия, он произносит Fizz-Buzz. Игрок, не сумевший сказать правильное слово, выбывает из игры. Последний оставшийся игрок признается победителем. Разработайте программу, реализующую алгоритм игры Fizz-Buzz применительно к первым 100 числам. Каждый следующий ответ должен отображ аться на новой строке. Упражнение 73. Код Цезаря(Решено. 35 строк) Одним из первых в истории примеров шифрования считаются закодированные послания Юлия Цезаря. Римскому полководцу необходимо было посылать письменные приказы своим генералам, но он не желал, чтобы в случае чего их прочитали недруги. В результате он стал шифровать свои послания довольно простым методом, который впоследствии стали называть кодом Цезаря. Идея шифрования была совершенно тривиальной и заключалась в циклическом сдвиге букв на три позиции. В итоге буква A превращалась в D, B – в E, C – в F и т. д. Последние три буквы алфавита переносились на начало. Таким образом, буква X становилась A, Y – B, а Z – C. Цифры и другие символы не подвергались шифрованию. Напишите программу, реализующую код Цезаря. Позвольте пользователю ввести фразу и количество символов для сдвига, после чего выведите результирующее сообщение. Убедитесь в том, что ваша программа шифрует как строчные, так и прописные буквы. Также должна быть возможность указывать отрицательный сдвиг, чтобы можно было использовать вашу программу для расшифровки фраз. Упражнение 74. Квадратный корень(14 строк) Напишите программу, реализующую метод Ньютона для нахождения квад ратного корня числа x, введенного пользователем. Алгоритм реализации метода Ньютона следующий: Запрашиваем число x у пользователя Присваиваем переменной guess значение x / 2 Пока значение переменной guess не будет обладать должной точностью Присваиваем переменной guess результат вычисления среднего между guess и x / guess По завершении алгоритма в переменной guess будет находиться определенное приближение вычисления квадратного корня из x. Качество аппроксимации при этом будет зависеть только от вашего желания. В нашем случае расхождение между значениями guess * guess и x должно составлять не более 10–12. Упражнение 75. Палиндром или нет? (Решено. 26 строк) Строка называется палиндромом, если она пишется одинаково в обоих направлениях. Например, палиндромами в английском языке являются слова «anna», «civic», «level», «hannah». Напишите программу, запрашивающую у пользователя строку и при помощи цикла определяющую, является ли она палиндромом. Примечание. Яибофобия (Aibohphobia) – это безрассудный страх палиндромов. Эти слова в русском и английском сами по себе являются палиндромами, что и привело к их образованию. Напротив, яилифилия (ailihphilia) характеризуется любовью к палиндромам. Объяснять образование этого слова нет нужды. Упражнение 76. Многословные палиндромы(35 строк) Помимо слов, существуют целые фразы, являющиеся палиндромами, если не обращать внимания на пробелы. Вот лишь несколько примеров на английском: «go dog», «flee to me remote elf» and «some men interpret nine memos». Русские варианты есть следующие: «А кобыле цена дана, да не целы бока», «А Луна канула» и другие. Расширьте свое решение упражнения под номером 75, чтобы при вынесении решения о том, является ли строка палиндромом, игнорировались пробелы. Также можете поработать над тем, чтобы игнорировались знаки препинания, а заглавные и прописные буквы считались эквивалентными. Упражнение 77. Таблица умножения(Решено. 18 строк) В данном упражнении вы создадите программу для отображения стандартной таблицы умножения от единицы до десяти. При этом ваша таблица умножения должна иметь заголовки над первой строкой и слева от первого столбца, как показано в представленном примере. Предполагаемый вывод таблицы умножения показан ниже. 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 Возможно, для выполнения этого упражнения вам придется озаботиться тем, чтобы выводить значения на экран без принудительного перевода каретки на строку ниже. Этого можно добиться, если последним аргументом функции print передать end="". Например, инструкция print("A") выведет на экран букву A, после чего автоматически перейдет на новую строку, тогда как print("A", end="") не станет переводить каретку, что позволит произвести следующий вывод в той же строке. |