Решение программ на питоне

Ниже вы найдете примеры задач, которые пройдете ближе к концу курса. Разумеется, все темы, которые необходимы для их решения, есть в курсе.

Пример № 1. Рикошетящие круги. ¶

Перед тем, как начать делать это задание, перейдите на урок «Бесконечный цикл» из раздела «Цикл while и модули». Прочитайте условия и вспомните, как вы сделали «летающий» туда-сюда прямоугольник.

В этом уроке надо написать программу, которая будет рисовать рикошетящие круги. Выглядеть это должно примерно так:

Размеры холста в этом уроки должны быть 400 на 400 пикселей. Для изменения размеров холста нужно передать именованные аргументы width и height в вызов Canvas .

Первым делом объявите пустой список, например circles . Кругов должно быть 5, поэтому после объявления списка сделайте цикл for или while на 5 итераций.

В каждой итерации в список circles должен добавляться словарь с тремя ключами: «dx» и «dy» для шагов передвижения по горизонтали и вертикали, а также «id» для хранения идентификатора.

Python. Простые алгоритмы. Решаем задачи

В ключ «id» должен быть записан идентификатор, который вернет метод create_oval . Размеры кругов могут быть любыми, главное, чтобы это были круги. То есть их размеры по вертикали и горизонтали должны быть одинаковыми. Начальные координаты кругов должны быть случайными. Для генерации случайных координат используйте функцию randint из модуля random . Важно, чтобы круги не выходили за пределы холста.

Каждый круг должен быть закрашен случайным цветом. Для того чтобы закрасить круг, в метод create_oval нужно передать именованный аргумент fill .

canvas.create_oval(100, 100, 200, 200, fill=’red’)

Все доступные в tkinter цвета можно посмотреть здесь . Для того чтобы каждый круг закрашивался в случайный цвет, можно создать список colors , добавить туда несколько понравившихся цветов, а затем выбирать из этого списка случайный элемент при помощи функции choice модуля random .

Значения ключей «dx» и «dy» должны быть случайными целыми числами в промежутке от -10 до 10 . Для их генерации используйте все ту же функцию randint из модуля random .

Полное описание модуля random и его функций есть в нашем справочнике .

После добавления в список пяти словарей нужно сделать бесконечный цикл. Внутри бесконечного цикла должен быть цикл for , который «пробегает» по списку кругов circles .

В каждой итерации этого цикла первым делом нужно проверить, не вышли ли координаты круга за границы холста. Для получения текущих координат круга используйте уже знакомый метод coords . Если передать в этот метод только один аргумент (идентификатор фигуры), он вернет список с координатами.

for circle in circles: x0, y0, x1, y1 = canvas.coords(circle[‘id’])

Если x0 или у0 меньше нуля нужно менять знак соответствующего шага движения на противоположный. То же самое необходимо делать, если x1 или у1 стали больше 400 .

Читайте также:
Установка программы Microsoft word

После всех проверок нужно передвинуть круг с помощью метода холста move . Его первый аргумент — идентификатор фигуры. Второй и третий аргументы — количество пикселей на которое нужно передвинуть фигуру по горизонтали и вертикали соответственно.

Решение задач на Python #1


example = canvas.create_oval(100, 100, 200, 200, fill=’red’)# передвинет круг на 10 пикселей влево # и на 10 пикселей внизcanvas.move(example, -10, 10)

После цикла for нужно обновить содержимое окна с помощью update() .

Если круги «летают» слишком быстро, после каждой прорисовки кадра можно делать небольшую паузу в одну сотую секунды, используя time.sleep(0.01)

Пример № 2. Случайные круги. ¶

Напишите программу, которая будет делать анимацию кругов в случайных координатах. Цвета могут не такие, как в примере, но в целом должно быть похоже на это:

В этом уроке нужно создать холст с размерами 400 на 400 пикселей. Для изменения размеров холста нужно передать именованные аргументы width и height в вызов Canvas . То есть, вместо привычного

canvas = tkinter.Canvas(window)
canvas = tkinter.Canvas(window, width=400, height=400)

Сначала в программе нужно объявить кортеж colors из названий семи цветов. Каждый цвет — это строка. Цвета можно выбрать из списка на этой странице нашего справочника.

Неважно, «Red» это или «White» — главное, чтобы цвета существовали и были разные.

Потом в программе должен начаться бесконечный цикл, в каждой итерации которого должна быть анимация появления семи концентрических кругов с цветами из кортежа colors и радиусами 150 , 155 , 160 , 165 , 170 , 175 и 180 пикселей. Для того чтобы сгенерировать последовательность из радиусов, используйте функцию range с шагом 5 . Убедитесь, что последний радиус именно 180 . Для получения индекса цвета, который будет совпадать с индексом радиуса, используйте функцию enumerate .

Создавать круги нужно в цикле for . После создания круга не забудьте вызвать метод update, чтобы созданный круг отобразился на холсте. Если круги появляются слишком быстро, после рисования каждого из кругов делайте паузу в пять сотых секунды. Для того чтобы сделать паузу, импортируйте модуль time в начале программы, а после создания круга и обновления содержимого окна вызовите time.sleep(0.05) .

Перед циклом for нужно получить случайные координаты центра кругов. Сделать это нужно с помощью модуля random , который отвечает за случайность. Обе координаты можно получить с помощью одинаковой функции randint — она вернет случайное число от 0 до 400 .

random.randint(0, 400)

Не забудьте импортировать модули random , tkinter и time в начале программы.

P. S. Разумеется, холст не должен очищаться. Наш пример — это зацикленная gif‑ка и поэтому все время начинается с начала.

Пример № 3. Угадай число. ¶

Для того чтобы пройти этот урок, нужно написать программу, в которой предлагается угадать загаданное компьютером случайное число за три попытки.

Первым делом, в программе должна быть объявлена переменная number , она должна быть целым числом и получена с помощью функции randint из модуля random .

После этого, программа должна дать три попытки на то, чтобы пользователь угадал число number . Для этого, с помощью цикла for и функции range надо создать цикл на три итерации.

Читайте также:
Критериями оптимальности производственной программы не могут быть

В каждой итерации программа должна запрашивать у пользователя число. Если загаданное число меньше, чем число, которое ввел пользователь, программа должна вывести на экран:

Загаданное число меньше

Если загаданное число больше, чем число, которое ввел пользователь, программа должна вывести на экран текст:

Загаданное число больше

Если пользователь угадал, на экран должно быть выведено:

Вы выиграли

Цикл при этом должен закончится с помощью break .

Если за три попытки пользователь так и не угадал числа, программа должна вывести на экран текст:

Вы проиграли

Источник: letpy.com

Решение уравнений в python перебором

Решение уравнения перебором в целых числах в Python

Приведем пример программы на использование цикла for и функций в программах Python для поиска решений уравнения в целых числах В программе в функции задаётся уравнение, которое нужно решить в целых числах. Пользователем задаётся диапазон, в котором ищутся решения [lowerBound, upperBound] , и свободный член уравнения a. Компьютер перебирает все числа для всех переменных в заданном диапазоне , проверяет являются ли они решением уравнения и выводит найденные решения уравнения на экран.
Для примера мы разберём поиск решений для уравнения x^2 + y^2 + z^2 = a. Вы можете легко поменять уравнение в функции eq()
Возведение в степень в Python осуществляется с помощью ** , тогда выражение для нашего уравнения запишется в виде
x ** 2 + y ** 2 + z ** 2
Уравнение eq(x, y, z) объявляется с помощью функции def eq(x, y, z) . def это ключевое слово в python для задания процедур или функций, eq это название функции, задающей выражение левой части уравнения в программе, а x, y, z это аргументы уравнения. С помощью команды return в конце функции в python обозначается то, что возвращает функция при ее вызове в программе, после return мы и записываем выражение левой части уравнения. Подробнее о функциях в Python
С помощью выражения int(input()) вводится в Python вводится целочисленная информация с клавиватуры , значения границ диапазона и свободный член уравнения. Подробнее об вводе данных с клавиатуры в Python
lowerBound = int(input(«Введите нижнюю границу поиска. «))
upperBound = int(input(«Введите верхнюю границу поиска. «))
a = int(input(«Введите свободный член x^2 + y^2 + z^2. «))
Для перебора всех переменных x, y и z используются вложенные циклы for. Подробнее об циклах for в python. Все аргументы перебираются в заданном диапазоне и каждый раз проверяется, равно ли уравнение с подставленными значениями переменных свободному члену. Если это условие выполняется, то на экран выводится решение уравнения
Полная программа на Python для решения уравнения в целых числах методом перебора
def eq(x, y, z):
return x ** 2 + y ** 2 + z ** 2
lowerBound = int(input(«Введите нижнюю границу поиска. «))
upperBound = int(input(«Введите верхнюю границу поиска. «))
a = int(input(«Введите свободный член x^2 + y^2 + z^2. «))
for x in range(lowerBound, upperBound):
for y in range(lowerBound, upperBound):
for z in range(lowerBound, upperBound):
if (eq(x, y, z) == a):
print(«x=»,x, end = «, «)
print(«y=», y, end = «, «)
print(«z=»,z, end = » «)

Читайте также:
Как установить скачанную программу в ubuntu

Комментарии ( 0 )

Нет комментариев. Ваш будет первым!

Источник: itrobo.ru

16 лучших сайтов уроков и заданий по Python в 2023 года

В данной подборке собрали, наверно, все тренажеры и сайты с заданиями по языку программированию Python.

По нашему мнению, многие из них не хуже, а даже лучше некоторых платных курсов по основам программирования на этом языке.

  1. Тренажер по Python от Каталог-курсов.ру Онлайн тренажер с блоками теории и практическими заданиями по Python внутри тренажера. Бесплатный сертификат о прохождении выдается после окончания курса. Количество уроков: 55 Формат: интерактивный самоучитель Язык: русский
  2. Тренажер “Learnpython” Сборник коротких и эффективных уроков и упражнений по Python для начинающих. Формат: интерактивный самоучитель Язык: английский
  3. Тренажер “CodingBat“ Сборник упражнений по Python и справочных материалов как для новичков, так и для опытных специалистов. Формат: интерактивный задачник Язык: английский
  4. Тренажер “Codechick” Сборник практических заданий по Python, отсортированных по уровню сложности. Формат: интерактивный задачник Язык: русский
  5. Тренажер “ITVDN” Интерактивный тренажер по Python для специалистов разного уровня подготовки с заданиями, за прохождение которых получаешь баллы. Формат: интерактивный задачник Количество задач: 52 Язык: русский
  6. Тренажер “CodinGame” Платформа по изучению Python в игровой форме, проходя уровни с разными игровыми сценариями. Формат: игровой тренажер Язык: английский
  7. Тренажер “Exercism” Практические задачи на Python для начинающих и опытных разработчиков. Формат: интерактивный задачник Язык: английский
  8. Тренажер “Codebra” Практические уроки по изучению Python для начинающих разработчиков. Формат: интерактивный самоучитель Язык: русский
  9. Тренажер “Codewars” Сборник реальных задач и проблем по Python, которые можно решать совместно. Формат: интерактивный задачник Язык: английский
  10. Тренажер “PythonTutor” Интерактивный тренажер по Python с большим количеством задач. Формат: интерактивный самоучитель Язык: русский
  11. Тренажер “freeCodecamp” Крупная платформа по изучению программирования на Python с теорией и практическими заданиями. Формат: интерактивный самоучитель Язык: английский
  12. Тренажер “Datacamp” Интерактивный уроки по Python в видео формате с практическими упражнениями и тестами. Формат: интерактивный самоучитель Язык: английский
  13. Тренажер “Адаптивный тренажер Python” Сборник разнообразных практических задач на Python от Stepik, которые подбираются индивидуально под каждого студента, учитывая уровень его знаний. Формат: интерактивный самоучитель Количество уроков: 53 Язык: русский
  14. Тренажер “Edabit” Практические задачи на Python для начинающих и опытных разработчиков. Формат: интерактивный задачник Язык: английский
  15. Тренажер “Code-basics” Платформа для изучения основ Python с нуля, который построен на чередовании небольших частей теории и практических заданий. Формат: интерактивный самоучитель Количество уроков: 70 Язык: русский
  16. Тренажер “Python Challenge” Платформа по изучению языка Python в игровом формате. Для прохождения уровней нужно решать задания. Формат: игровой тренажер Количество задач: 33 Язык: английский

Python – один из наиболее простых для освоения с нуля языков программирования, разработанный для написания сценариев (скриптов). Востребован практически в любой сфере деятельности и позволяет значительно повысить эффективность работы. Может работать практически на всех операционных системах и используется в таких сферах, как анализ и визуализация данных, web-разработка, автоматизация и автоматизированное обучение, создание ботов и многих других.

Источник: vc.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru