Примеры программ Python. С чего начать. Быстрый старт
Содержание
- Введение
- Примеры простых программ
- Замена значений переменных местами
- Написание числа в обратном порядке
- Преобразование разделённого запятыми списка в строку
- Найти среднее значение элементов массива
- Проверить, является ли слово палиндромом
- Есть ли число в списке
- Вывод всех чисел, кратных определенному числу, в заданном диапазоне
- Количества цифр в числе
- Суммы всех цифр данного числа
- Сумма цифр от 1 до n
- Играемся со звёздочками
- Получаем гласные
- Чуть сложнее
- Все перестановки трех чисел
- Декартово произведение
- Генератор чисел Фибоначчи
- Объединяем два словаря
- Проверка дубликатов
- Вычисляем время выполнения
- Разбиение на фрагменты
Введение
В данном уроке мы приведём несколько примеров небольших программ на Python. Общая рекомендация к изучению любого языка: практикуйтесь как можно больше. Чтобы достичь хоть какого-то уровня профессионализма в программировании, не достаточно только изучать теорию. Пишите код. Желательно, каждый день, хотя бы по чуть-чуть. Это важно. Ваши руки должны привыкнуть к синтаксису, а мозги – к решению стандартных задач программирования.
Примеры простых программ
Замена значений переменных местами
На большинстве других языков эта задача была бы решена следующим образом:
Копировать Скопировано Use a different Browser
var_1 = 15 var_2 = 67 print('var_1:', var_1, 'var_2:', var_2) var_temp = var_1 var_1 = var_2 var_2 = var_temp print('var_1:', var_1, 'var_2:', var_2) # Вывод: var_1: 15 var_2: 67 var_1: 67 var_2: 15
Но Пайтон творит магию:
Копировать Скопировано Use a different Browser
var_1, var_2 = 15, 67 print('var_1:', var_1, 'var_2:', var_2) var_1, var_2 = var_2, var_1 print('var_1:', var_1, 'var_2:', var_2) # Вывод: var_1: 15 var_2: 67 var_1: 67 var_2: 15
Написание числа в обратном порядке
Копировать Скопировано Use a different Browser
var_1 = 1567 reverse = 0 while var_1 > 0: rest = var_1 % 10 reverse = reverse * 10 + rest var_1 = var_1 // 10 print("Число в обратном порядке:", reverse) # Вывод: Число в обратном порядке: 7651
В Питоне, несмотря на одну из его заповедей: «должно быть только одно решение», решений, как правило много. Всегда стоит задуматься о том, какой алгоритм оптимальнее. Пример, приведённый выше, работает, но его можно оптимизировать (сократить объём кода).
Копировать Скопировано Use a different Browser
var_1 = 1567 var_1 = str(var_1)[::-1] print("Число в обратном порядке:", var_1) # Вывод: Число в обратном порядке: 7651
Преобразование разделённого запятыми списка в строку
Копировать Скопировано Use a different Browser
favorites = ["Python", "SQL", "GO"] print("Мои любимые языки программирования:", ", ".join(favorites)) # Вывод: Мои любимые языки программирования: Python, SQL, GO
Найти среднее значение элементов массива
Копировать Скопировано Use a different Browser
var_1 = [1, 5, 6, 7] sum = 0 for i in var_1: sum += i print(sum/len(var_1)) # Вывод: 4.75
Оптимизируем код:
Копировать Скопировано Use a different Browser
var_1 = [1, 5, 6, 7] print(eval(str(var_1). replace(', ', '+'))[0]/len(var_1)) # Вывод: 4.75
Тут следует заметить, что сокращение кода, почти всегда, ведёт к ухудшению читаемости и это следует делать с большой осторожностью. К примеру, в приведённом выше варианте, читаемость «убита» полностью, хоть код сократился всего на три строки.
Проверить, является ли слово палиндромом
Палиндром – это слово, которое читается одинаково в обоих направлениях. Для разнообразия покажем, как сокращение кода из-за выбора альтернативного алгоритма повышает читаемость кода и производительность. Вот одна из худших реализаций:
Копировать Скопировано Use a different Browser
var_1 = 'level' var_2 = list(var_1) var_2.reverse() var_2 = str(var_2).replace('\', \'', '').replace('[\'', '').replace('\']', '') print(var_2) if var_1 == var_2: print('Palindrom') else: print('Simple word') # Вывод: Palindrome
Вариант получше:
Копировать Скопировано Use a different Browser
var_1 = 'level' ispalindrome = var_1 == var_1[::-1] if ispalindrome: print('Palindrome') else: print('Simple word') # Вывод: Palindrome
Вишенка на торте. Тоже самое в одну строку:
Копировать Скопировано Use a different Browser
var_1 = 'level' print('Palindrome') if var_1 == var_1[::-1] else print('Simple word') # Вывод: Palindrome
Есть ли число в списке
Копировать Скопировано Use a different Browser
var_1 = 11 print(var_1 in [5, 6, 40, 126]) # Вывод: False
Вывод всех чисел, кратных определенному числу, в заданном диапазоне
Копировать Скопировано Use a different Browser
lower = int(input("Введите нижнюю границу диапазона: ")) upper = int(input("Введите верхнюю границу диапазона: ")) n = int(input("Введите делитель: ")) for i in range(lower, upper + 1): if(i % n == 0): print(i) # Вывод: Введите нижнюю границу диапазона: 5 Введите верхнюю границу диапазона: 30 Введите делитель: 5 5 10 15 20 25 30
Количества цифр в числе
Копировать Скопировано Use a different Browser
var_1 = int(input("Введите число: ")) count = 0 while var_1 > 0: count = count + 1 var_1 = var_1 // 10 print("Количество цифр равно:", count) # Вывод: Введите число: 123456789 Количество цифр равно: 9
Суммы всех цифр данного числа
Копировать Скопировано Use a different Browser
var_1 = int(input("Введите число: ")) total = 0 while var_1 > 0: rest = var_1 % 10 total = total + rest var_1 = var_1//10 print("Сумма цифр равна:", total) # Вывод: Введите число: 123456789 Сумма цифр равна: 45
Сумма цифр от 1 до n
Копировать Скопировано Use a different Browser
var_1 = int(input("Введите число: ")) agregator = [] for i in range(1, var_1+1): print(i, sep=" ", end=" ") if i < var_1: print("+", sep=" ", end=" ") agregator. append(i) print("=", sum(agregator)) # Вывод: Введите число: 18 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 = 171
Играемся со звёздочками
Вывести n рядов, заполненных знаком ‘*’
Копировать Скопировано Use a different Browser
var_1 = int(input("Введите количество рядов: ")) for i in range(var_1, 0, -1): print((var_1-i) * ' ' + i * '*') # Вывод: Введите количество рядов: 5 ***** **** *** ** *
Получаем гласные
Копировать Скопировано Use a different Browser
def get_vowels(word): return [each for each in word if each in "aeiouy"] print(get_vowels("animal")) print(get_vowels("sky")) print(get_vowels("football")) # Вывод: ['a', 'i', 'a'] ['y'] ['o', 'o', 'a']
Чуть сложнее
Все перестановки трех чисел
Программа принимает три числа и выводит все возможные перестановки этих чисел.
Копировать Скопировано Use a different Browser
var_1 = int(input("Введите первое число: ")) var_2 = int(input("Введите второе число: ")) var_3 = int(input("Введите третье число: ")) agregator = [] agregator.append(var_1) agregator.append(var_2) agregator.append(var_3) for i in range(0, 3): for j in range(0, 3): for k in range(0, 3): if(i != j & j != k & k != i): print(agregator[i], agregator[j], agregator[k]) # Вывод: Введите первое число: 10 Введите второе число: 20 Введите третье число: 30 10 20 30 10 30 20 20 10 30 20 30 10 30 10 20 30 20 10
Декартово произведение
Необходимо объединить два списка таким образом, чтоб получить список из всех возможных пар элементов.
Копировать Скопировано Use a different Browser
print([(var_1, var_2) for var_1 in ['dfa', '\eb'] for var_2 in [154, 248, 873]]) # Вывод: [('dfa', 154), ('dfa', 248), ('dfa', 873), ('\\eb', 154), ('\\eb', 248), ('\\eb', 873)]
Генератор чисел Фибоначчи
Копировать Скопировано Use a different Browser
def fibonacci(limit): # генератор (а не функция, т. к. оператор return заменён на yield) var_1, var_2 = 0, 1 while var_1 < limit: yield var_1 # return a, + запоминаем место рестарта для следующего вызова var_1, var_2 = var_2, var_1 + var_2 # параллельное присваивание, которое выполняется одновременно и параллельно for n in fibonacci(1000): # используем генератор fibonacci() как итератор print(n, end=' ') # печатаем все числа Фибоначчи меньшие 1000 через пробел # Вывод: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Объединяем два словаря
Копировать Скопировано Use a different Browser
def merge(dic_1, dic_2): dic_3 = dic1.copy() dic_3.update(dic_2) return dic_3 dic1 = {1: "Hello", 2: "pythoninfo,"} dic2 = {3: "Python", 4: "is awesome",} print(merge(dic1, dic2)) # Вывод: {1: 'Hello', 2: 'pythoninfo,', 3: 'Python', 4: 'is awesome'}
Проверка дубликатов
Копировать Скопировано Use a different Browser
def check_duplicate(lst): return len(lst) != len(set(lst)) print(check_duplicate([51, 37, 3, 45, 5, 49, 77])) print(check_duplicate([1, 3, 3])) print(check_duplicate([11, 2, 88, 4, 16])) # Вывод: False True False
Вычисляем время выполнения
Очень полезный пример. Приведённый код – самый простой способ проводить профилирование Вашего кода. Позволяет понять какой блок тормозит работу программы. Здесь мы записываем текущее время перед запуском функции и после запуска. Затем сравниваем их и выводим, сколько времени заняло выполнение функции.
Копировать Скопировано Use a different Browser
import time def fun(i): res = lambda i: i ** i return res(i) start_time = time.time() fun(fun(5)) end_time = time.time() timetaken = end_time - start_time print("Время выполнения: ", timetaken) # Вывод: Время выполнения: 0.0009870529174804688
Разбиение на фрагменты
Копировать Скопировано Use a different Browser
def chunk(ishod_list, size): return [ishod_list[i:i + size] for i in range(0, len(ishod_list), size)] ishod_list = ['q', 'w', 'e', 'r', 't', 'y'] print(chunk(ishod_list, 2)) # Вывод: [['q', 'w'], ['e', 'r'], ['t', 'y']]
Проекты на Python для новичков
Выбор проекта Python для начинающих
Для начала выберите интересную тему. Это позволит получить удовольствие и будет поддерживать мотивацию для завершения проекта.
Для первого проекта не выбирайте проект требующий экспертных навыков. Иначе можете столкнуться со сложностями на раннем этапе, которые вызовут стресс и демотивируют работать дальше. Если вы решили все-таки взяться за сложную задачу, то разделите ее на небольшие подзадачи и решайте вопросы по отдельности.
Проекты Python для начинающих разработчиков
Проекты Python для начинающих разработчиковУгадай число – компьютер выберет случайное число, а игроки должны будут по очереди угадывать число. При разработке используются: генератор случайных чисел, цикл while
, условные конструкции if/else
, переменные, целые числа и вывод на экран.
Камень, ножницы, бумага – мини-игра, в которую можно играть в одиночку с компьютером. При разработке потребуются знания генератора случайных чисел, вывод на экран, обработка ввода, цикл while
и оператор if/else
.
Генератор MadLibs – игра, в которой в пробелы нужно вставлять глупые слова, а после зачитывать. Для реализации понадобится понимание строк, переменных, конкатенация, ввод данных и вывод.
Генератор паролей – простое приложение, генерирующее случайный пароль. Из навыков потребуется генератор случайных чисел, работа со строками, числами, вывод на экран, последовательности.
Виселица – продвинутый вариант «угадай число». Игрок должен угадывать буквы в загаданном слове. Для упрощенной версии используйте только текст, без графики. Потребуется опыт работы со списками, генератор случайных чисел, работа со строками, обработка ввода, вывод, цикл while
, операторы if/else
. Для списка слов воспользуйтесь словарем Sowpods.
Симулятор игры в кости – понадобится генератор случайных чисел, который будет генерировать случайные числа от 1
до 6
, цикл while
и вывод на экран для уточнения нужно ли сделать новый бросок, обработка ввода и цикл if/else
для обработки введенного игроком значения.
Алгоритм двоичного поиска – структур данных, также известен как метод деления пополам. Возьмем список из 100
элементов, например, целые числа от 1
до 100
. Пользователю будет предложено ввести число, которое программа будет искать в данном списке и выводить соответствующий результат. Во время поиска берется среднее значение и сравнивается с искомым. Если значение найдено, то возвращается результат об успехе. Если значение меньше, то дальше будет аналогичным образом рассматривать левая часть, т. е. та, что меньше среднего значения. В противном случае, рассматривается правая часть. И так будет происходить до тех пор, пока значение не будет найдено или список не окажется пуст. Для реализации понадобится значение цикла, операторов if/else
, ввод и вывод данных.
Текстовое приключение – простая игра квест, где игрок ходит по комнатам и получает описание комнат. Для реализации понадобится обработка ввода, вывод данных, операторы if/else
, цикл while
. При реализации понадобится следить за направлением движения, создавать стены, двери, ограничение на перемещение.
Проекты Python для разработчиков Python среднего уровня
Проекты Python для разработчиков Python среднего уровняБудильник – приложение, которое будет присылать уведомления в назначенное время. Включите в него музыку, видео или картинки.
Крестики нолики – игра, в которой два игрока рисуют на поле из 9 квадратиков каждый свою фигуру (крестик или нолик) до тех пор, пока не получат линию из 3-х одинаковых фигур или пока все квадратики не будут заполнены. В данном случае игру можно реализовать для одного игрока с компьютером, основная сложность будет в программировании ходов компьютера. Для реализации графики воспользуйтесь библиотекой PyGame
.
Случайная статья в Википедии – в этом проекте приложение выдает случайную ссылку на статью Википедии. Программа уточняет у пользователя отобразить ли случайную статью в Википедии и при положительном ответе выводит страницу.
Калькулятор – проект для реализации калькулятора с GUI, кнопками, возможностью ввода нескольких чисел, операций сложения, умножения, получения корня, возведения в степень, учета скобок, памяти. Для реализации могут понадобиться такие библиотеки, как Tkinter
или PyQt
, которые позволят создать графический интерфейс.
Таймер обратного отсчета – настольное приложение с интерфейсом, в котором показывается таймер обратного отсчета до установленного события. В данном приложении можно установить таймер, сбросить таймер, выводить уведомления о наступлении события или заранее до наступления события.
Reddit-бот. Reddit – соцсеть, в которой люди обсуждают интересы, делятся фото, видео, ссылками и т. д., на странице пользователя и на страницах сообществ, соответствующих тем (сабреддиты). Запрограммируйте бота для мониторинга этих сабреддитов, бот может предоставлять полезную информацию для читателей, экономя время модераторов сабреддита.
Instagram-бот – бот предназначен для автоматизации таких задач, как лайк, комментарий, подписка на учетные записи других людей. Ограничения по частоте, иначе в случае чрезмерной активности бот может быть деактивирован.
Стеганография в Python. Стеганография – передача или хранение информации с учетом сохранения в тайне самого факта такой передачи (хранения). В отличие от криптографии, скрывающей содержимое сообщения, стеганография скрывает существование сообщения. Сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок и т. д.
Проекты Python для продвинутых разработчиков Python
Проекты Python для продвинутых разработчиков PythonMP3-плейер – проект для прослушивания музыки, создайте MP3-плеер с листами, перемоткой, зацикливанием аудиозаписей и другими полезным функционалом. Для реализации могут понадобится библиотеки для работы с GUI Tkinter
или PyQt
, для работы с аудио может понадобится библиотека librosa
.
Тест скорости набора текста – проект позволит определить скорость набор текста пользователем. Реализуйте графический интерфейс с помощью библиотеки для работы с GUI, например, Tkinter
или PyQt
. От пользователя потребуется вводить текст. После ввода текста приложение выведет информацию о скорости набора, точности и количестве набранных слов в минуту. Пример проекта.
Менеджер файлов – проект для работы с файлами в системе. Например, аналог проводника в Windows. С помощью этого приложения можно просматривать, редактировать, перемещать, удалять файлы в системе. Проект затронет различные области знаний языка Python.
Создание блокчейна. Блокчейн (цепь из блоков) – непрерывная последовательность блоков, содержащих информацию. Используется как финансовый инструмент, но применим и в других областях. Для реализации понадобится библиотеки для работы с HTTP и руководство.
Проверка плагиата – приложение для проверки плагиата проверяет текст на принадлежность указанному автору. Для реализации понадобится библиотека обработки естественного языка (такие библиотеки, как NLTK
, TextBlob
) и API Google.
Графический редактор – редактор картинок, наподобие Пэинта или Фотошопа. Для реализации понадобится библиотека для работы с GUI, например, Tkinter
или PyQt
и виджет Canvas
, который позволит работать с примитивами вроде линии, прямоугольника, текста, изображения.
Расширение сравнения цен – проект, который позволит сравнивать цены на разных сайтах, на отели, продукты, технику и т. д.
Загрузчик картинок с Instagram – используя заданные учетные данные, приложение будет искать фотографии друзей, размещенные в Instagram и загружать их фотографии.
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
Интересно, перейти к каналу
Проекты Python в веб-разработке
Проекты Python в веб-разработкеБлог – создание блога позволит продемонстрировать навыки веб-разработки. Помимо знания Python, тут понадобится знание HTML и CSS, а также опыт работы с базами данных.
Создание интернет-магазина – создание интернет-магазина позволит как следует прокачать навыки бэкенда. Потребуется создать базу данных с таблицами, содержащими данные пользователей, товаров, поставщиков. Также потребуется работать с запросами к базе данных. Этот проект позволит погрузиться в предметную область.
Блокировщик веб-сайтов – это аналог популярных блокировщиков рекламы, который позволит блокировать назойливую рекламу.
Приложение для создания заметок – программа позволяет пользователю записывать заметки и просматривать записанное. В приложении придется сделать аккаунты и разделение доступов для того, чтобы у каждого пользователя были свои заметки. Благодаря тому, что это веб-проект доступ к заметкам открыт откуда угодно. Для реализации этого проекта подойдет фреймворк Django.
Агрегатор контента – это сайт, который собирает популярные статьи на конкретные темы и выдает пользователю. Для реализации понадобится база данных (например, MySQL или PostgreSQL) и библиотеки Python для работы с HTTP-запросами и парсингу контента.
Онлайн regex – инструмент для проверки и составления регулярных выражений. Регулярные выражения – это гибкий способ найти информацию в текстовом документе с хитрыми условиями. Например, с помощью регулярных выражений можно составить маску поиска для номера телефона, email или интернет-ссылки. Для реализации понадобится стандартная библиотеке re
(содержит все необходимое для работы с регулярными выражениями) и веб-фреймворк, например, Django.
URL Shortener – проект позволит преобразовывать длинные, неудобные ссылки в короткие, уменьшая количество символов в URL. Для реализации данного проекта понадобится написать страницу с полем для ввода длинной ссылки, кнопкой и полем для вывода короткой ссылки. Также понадобится база данных для хранения ссылок. При открытии короткой ссылки сервер будет проверять наличие ссылки в базе и при наличии – перенаправлять пользователя по заданному ранее адресу. При отсутствии – будет выводиться страница 404.
Викторина – приложение, которое задает пользователям набор вопросов и подсчитывает очки за правильные ответы, а после выдает результат. При реализации можно сделать вопросы с таймером или вопросы, на которые будут сразу выдаваться информация о правильности ответов. Для проекта понадобится веб-фреймворк, например, Django и база данных, для хранения вопросов и ответов.
Проекты Python с искусственным интеллектом
Проекты Python с искусственным интеллектомОбработка фотографий – приложение для обработки фотографий в заданном стиле (художника или цветовой гамме). Реализация данного приложения затрагивает компьютерное зрение и нейросети. Можно применить генеративно-состязательные нейронные сети (GAN).
Анализ новостей из интернета – программа аналитического характера, анализирует новости из интернета и делает на основании их прогнозы стоимости ценных бумаг, курсов акций или валют. Ожидать точных прогнозов не стоит, но этот проект позволит поработать с обработкой естественных языков (NLP), анализом временных рядов, парсингом и краулингом сайтов.
Распознавание лиц – проект, который встречается даже во время фотосъемки на телефон. Также можно добавить функционал дорисовки чего-либо: усов, кошачьих ушей, веснушек и т. д. Таких проектов много, но создать такой проект самостоятельно не менее интересно.
Подсчет числа элементов на изображении – проект связан с подсчетом кол-ва элементов на фотографии. Такие проекты используются на крупных предприятиях, например, для подсчета яиц или какой-либо другой штучной продукции в большом объеме, которую сложно подсчитать вручную или под которую сложно спроектировать универсальный механизм.
Массовое переименование файлов – допустим, есть большое количество изображений, которые необходимо переименовать. Задача: обучить нейронную сеть автоматически выполнять эту задачу в соответствии с параметрами изображения (размер, дата создания).
Распознавание эмоций на видео – проект распознавания эмоций на видео. Для подобных проектов используются рекуррентные сети.
Семантическое определение границ – одна из классических задач для сверточных нейронных сетей – это выделение границ, разбитых на классы.
Семантическая сегментация – позволяет разделить объекты на классы по их структуре, ничего не зная об этих объектах, то есть еще до их распознавания. Например, семантическая сегментация 3D-изображений выделяет отдельные сегменты изображений МРТ головного мозга.
Инструменты для разработки на Python
Среды разработки (IDE)
PyCharmPyCharm – IDE от компании JetBrains, поддерживает веб разработку на Django.
IDLEIDLE – IDE для Python, созданная с помощью библиотеки Tkinter
от создателя Python. Поставляется вместе с Python, кроссплатформенная.
Базовые инструменты
Setuptools – это библиотека процессов разработки пакетов, предназначенная для облегчения упаковки проектов Python за счет расширения стандартной библиотеки Python distutils
.
virtualenv – менеджер виртуальной среды. Позволяет создавать виртуальные среды с пакетами. Разные песочницы имеют разные наборы пакетов, разных версий. Одну и ту же песочницу могут использовать разные проекты.
Pip – система управления пакетами, используется для установки и управления программными пакетами, написанными на Python.
Кроссплатформенная разработка
BeeWareBeeWare – набор инструментов для разработки и распространения нативных приложений на Python. Включает в себя Toga
– кроссплатформенный инструмент для GUI, Briefcase
– инструмент для упаковки проектов на языке Python в распространяемые артефакты для доставки конечным пользователям, Rubicon ObjC
– библиотека для работы с Object C на iOS и Mac с помощью Python, Rubicon Java
– для работы с Java-библиотеками на Python.
Kivy – библиотека с открытым исходным кодом для быстрой разработки приложений. Кроссплатформенная, с поддержкой GPU-ускорителя, дружественная к разработке бизнес-приложений.
Web разработка
Bottle – быстрый и простой фреймворк для маленьких веб-приложений. Не имеет зависимостей, кроме Python Standard Library.
CherryPy – веб-фреймворк на Python. Спроектирован для быстрой разработки веб-приложений. Представляет надстройку над HTTP-протоколом. Может выступать в качестве веб-сервера, может работать под управлением другого серверного приложения, поддерживающего протокол WSGI. Не занимается задачами обработки шаблонов для ввода данных, доступом к БД, авторизацией пользователя. Расширяется за счет фильтров, простых интерфейсов.
Django – фреймворк для разработки веб-приложений на языке Python с открытым исходным кодом. Используется для бэкенда веб-приложений. Использует шаблон MVC.
Библиотеки для работы с GUI
PyQt – GUI фрэймворк для python позволяет создавать приложения с графическим пользовательским интерфейсом. Разработан британской компанией Riverbank Computing. Работает на платформах, поддерживаемых Qt: Linux. Unix, Mac, Windows. Большой набор виджетов для графического интерфейса. Стили виджетов. Доступ к БД(ODBC, MySQL, PostgreSQL, Oracle)
Tkinter – Кроссплатформенная графическая библиотека, поставляется вместе с Python. Распространены на Linux/Unix. Написана создателем Python – Гвидо ван Россумом.
Библиотеки для создания игр
PyGame – набор модулей Python для написания компьютерных игр и мультимедиа приложения. Базируется на мультимедийной библиотеке SDL
. Можно разрабатывать 2D-, 3D-игры. Также можно писать игры для мобильных устройств на базе Android.
Cocos 2D – кроссплатформенный фреймворк для разработки приложений и игр. Открытое программное обеспечение, написанное на языке Python.
Panda 3D – полноценный 3D движок с большим русскоязычным сообществом, где придется писать код, используя API движка. Включает в себя графику, звук, ввод-вывод, обнаружение столкновений. Открытое программное обеспечение.
Прочее
librosa – библиотека для анализа музыки и аудио. Позволяет обрабатывать аудио в виде временных рядов, извлекать признаки: темп, бит, такт, интервал, ритм и работать с Мел-кепстральными коэффициентами (MFCC).
NLTK – пакет программ для символьной и статистической обработки естественного языка, написанных на Python. Библиотека поддерживает задачи классификации, стемминга, маркировки, синтаксического анализа и семантического рассуждения в Python.
TextBlob – инструмент для новичков в NLP в Python. Библиотека построена на NLTK и представляет простой интерфейс для библиотеки NLTK. Позволяет решать задачи анализа настроений, POS-маркировки или извлечения именных фраз.
***
Материалы по теме
- 🐍 6 проектов на Python, которые можно завершить за выходные
- 11 проектов, которые должен разработать каждый питонист
- Идеи для проектов для практики навыков программирования
- 6 open-source проектов для практики новичка
- 8 идей проектов для практики веб-разработки
Базовое упражнение Python для начинающих с решениями
Это необходимое упражнение Python поможет начинающим овладеть необходимыми навыками Python быстро. Практикуйте основные понятия Python, такие как циклы, поток управления, типы данных, операторы, список, строки, ввод-вывод и встроенные функции.
Какие вопросы включены в это фундаментальное упражнение Python ?
- Упражнение содержит 15 программ для решения. Подсказка и решение предоставляются для каждого вопроса.
- Я добавил советы и необходимые учебные ресурсы для каждого вопроса, которые помогут вам решить упражнение. Ответив на каждый вопрос, вы лучше познакомитесь с основами Python.
Используйте онлайн-редактор кода для решения упражнений.
Кроме того, попробуйте решить базовую викторину Python для начинающих
В этом упражнении Python рассматриваются вопросы по следующим темам :
- Python for loop и while
- Список Python, набор, кортеж, словарь, ввод и вывод
Упражнение 1. Вычисление умножения и суммы двух чисел
Два заданных целых числа возвращают свое произведение, только если произведение равно или меньше 1000, иначе вернуть их сумму.
Дано 1:
число1 = 20 число2 = 30
Ожидаемый результат :
Результат 600
Учитывая 2:
число1 = 40 число2 = 30
Ожидаемая выход :
Результат - 70
См. :
- Принять пользовательский ввод в Python
- Рассчитайте среднее значение в Python
- .
- Далее внутри функции умножьте два числа и сохраните их произведение в переменной
product
- Затем используйте условие if, чтобы проверить, является ли произведение
>1000
. Если да, вернитеproduct
- В противном случае используйте блок else, чтобы вычислить сумму двух чисел и вернуть ее.
def multiplication_or_sum(num1, num2): # вычислить произведение двух чисел продукт = число1 * число2 # проверить, если продукт меньше 1000 если продукт <= 1000: возврат товара еще: # произведение больше 1000 вычислить сумму вернуть число1 + число2 # первое условие результат = умножение_или_сумма (20, 30) print("Результат", результат) # Второе условие результат = умножение_или_сумма (40, 30) print("Результат", результат)
Упражнение 2.
Выведите сумму текущего числа и предыдущего числаНапишите программу, которая итерирует первые 10 чисел и на каждой итерации выводит сумму текущего и предыдущего числа.
Ожидаемый результат :
Печать суммы текущего и предыдущего числа в диапазоне (10) Текущий номер 0 Предыдущий номер 0 Сумма: 0 Текущий номер 1 Предыдущий номер 0 Сумма: 1 Текущее число 2 Предыдущее число 1 Сумма: 3 Текущее число 3 Предыдущее число 2 Сумма: 5 Текущее число 4 Предыдущее число 3 Сумма: 7 Текущее число 5 Предыдущее число 4 Сумма: 9Текущее число 6 Предыдущее число 5 Сумма: 11 Текущий номер 7 Предыдущий номер 6 Сумма: 13 Текущее число 8 Предыдущее число 7 Сумма: 15 Текущий номер 9 Предыдущий номер 8 Сумма: 17
Справочная статья для справки:
- Функция Python range()
- Вычислить сумму и среднее значение в Python
- Создайте переменную с именем
previous_num
и присвойте ей значение 0 - Итерация чисел один с использованием функции for loop и range()
- Затем отобразите текущее число (
i
), предыдущее число и сложение обоих чисел в каждой итерации цикла. Наконец, измените значение предыдущего номера на текущий номер (previous_num = i
).
print("Печать текущего и предыдущего числа и их суммы в диапазоне (10)") предыдущий_номер = 0 # цикл от 1 до 10 для я в диапазоне (1, 11): x_sum = предыдущее_число + я print("Текущий номер", я, "Предыдущий номер", предыдущий_номер, "Сумма:", x_сумма) # изменить предыдущий номер # установить его на текущий номер предыдущее_число = я
Упражнение 3. Печать символов из строки, которые присутствуют в четном индексе
Напишите программу, которая принимает строку от пользователя и отображает символы, которые присутствуют в четном индексе.
Например, str = "pynative"
, поэтому вы должны отображать "p", "n", "t", "v".
Ожидаемый результат :
Исходная строка является повторяющейся Печать только четных индексных символов п н т v
Справочная статья для справки: Python Input and Output
Показать подсказку- Используйте функцию Python input(), чтобы принять строку от пользователя.
- Вычислите длину строки с помощью функции
len()
- Затем повторите каждый символ строки, используя цикл for и функцию range().
- Используйте
start = 0
, stop = len(s)-1 иstep =2
. шаг равен 2, потому что нам нужны только четные индексы - в каждой итерации цикла, используйте
s[i]
для печати символа, присутствующего в текущем четном индексе номер
Решение 1 :
# принять введенную строку от пользователя слово = ввод('Введите слово') print("Исходная строка:", слово) # получить длину строки размер = длина (слово) # перебираем каждый символ строки # start: 0, чтобы начать с первого символа # стоп: размер-1, потому что индекс начинается с 0 # шаг: 2, чтобы получить символы, присутствующие в четном индексе, например 0, 2, 4 print("Печать только четных индексных символов") для я в диапазоне (0, размер - 1, 2): print("индекс[", i, "]", слово[i])
Решение 2 : Использование нарезки списка
# принять строку ввода от пользователя слово = ввод('Введите слово') print("Исходная строка:", слово) # использование нарезки списка # преобразовать строку в список # выбирать только четные символы индекса х = список (слово) для i в x[0::2]: печать (я)
Упражнение 4.
Удаление первых n
символов из строки Напишите программу для удаления символов из строки, начиная с нуля до n
, и возврата новой строки.
Например:
-
remove_chars("pynative", 4)
поэтому вывод должен бытьtive
. Здесь нам нужно удалить первые четыре символа из строки. -
remove_chars("pynative", 2)
поэтому вывод должен бытьnative
. Здесь нам нужно удалить первые два символа из строки.
Примечание : n
должно быть меньше длины строки.
Использовать нарезку строки для получения подстроки. Например, чтобы удалить первые четыре символа и оставшееся значение, используйте 9.0078 с[4:] .
Показать решениеdef remove_chars(word, n): print('Исходная строка:', слово) х = слово[n:] вернуть х print("Удаление символов из строки") печать (удалить_символы («пинатив», 4)) печать (удалить_символы («пинатив», 2))
Также попробуйте решить упражнение Python String
Упражнение 5.
Проверка совпадения первого и последнего номеров в списке Напишите функцию, возвращающую True
, если первое и последнее число заданного списка совпадают . Если числа разные, верните Ложь
.
Дано :
числа_х = [10, 20, 30, 40, 10] number_y = [75, 65, 35, 75, 30]
Ожидаемый результат :
Данный список: [10, 20, 30, 40, 10] результат истинный числа_у = [75, 65, 35, 75, 30] результат FalseПоказать решение
def first_last_same(numberList): print("Данный список:", numberList) first_num = числоСписок[0] last_num = числоСписок[-1] если first_num == last_num: вернуть Истина еще: вернуть ложь числа_х = [10, 20, 30, 40, 10] print("результат", first_last_same(numbers_x)) числа_у = [75, 65, 35, 75, 30] print("результат", first_last_same(numbers_y))
Упражнение 6. Отобразите числа, делящиеся на 5, из списка
Повторите заданный список чисел и выведите только те числа, которые делятся на 5 46, 55] Делится на 5 10 20 55 Показать решение
num_list = [10, 20, 33, 46, 55] print("Данный список:", num_list) print('Делится на 5:') для числа в num_list: если число% 5 == 0: печать (число)
Также попробуйте решить упражнение 9 списка Python0004
Упражнение 7.
Возврат количества заданной подстроки из строкиНапишите программу, которая находит, сколько раз подстрока « Эмма » встречается в заданной строке.
Получено :
str_x = "Эмма хороший разработчик. Эмма писатель"
Ожидаемый результат :
Эмма появлялась 2 раза Показать решениеРешение 1 : Использовать
count()
methodstr_x = "Эмма хороший разработчик. Эмма писатель" # использовать метод count класса str cnt = str_x.count("Эмма") печать (цент)Решение 2 : Без строкового метода
def count_emma(statement): print("Данная строка: ", оператор) количество = 0 для i в диапазоне (len (оператор) - 1): count += statement[i: i + 4] == 'Эмма' количество возвратов count = count_emma("Эмма хороший разработчик. Эмма писатель") print("Эмма появилась ", count, "раз")Упражнение 8.
Распечатайте следующий шаблон1 2 2 3 3 3 4 4 4 4 5 5 5 5 5Подсказка : распечатать шаблон с использованием цикла for
Показать решениедля числа в диапазоне (10): для я в диапазоне (число): print (num, end=" ") #print number # новая строка после каждой строки для правильного отображения шаблона print("\n")Упражнение 9. Проверка числа-палиндрома
Напишите программу, которая проверяет, является ли заданное число числом-палиндромом.
Число-палиндром — это число, которое совпадает после реверса. Например 545, это число палиндрома
Ожидаемый результат :
исходный номер 121 Да. данное число является числом палиндрома оригинальный номер 125 Нет. заданное число не является числом-палиндромомПоказать подсказку
- Перевернуть данное число и сохранить его в другой переменной
- Используйте условие if, чтобы проверить, совпадают ли исходное число и число в обратном порядке. Если да, вернуть
True
.
по палиндрому (номер): print("исходное число", число) исходный_номер = номер # перевернуть заданное число реверс_номер = 0 пока число > 0: напоминание = число% 10 reverse_num = (reverse_num * 10) + напоминание число = число // 10 # проверить номера если исходный_номер == обратный_номер: print("Заданный числовой палиндром") еще: print("Данное число не палиндром") палиндром(121) палиндром(125)
Упражнение 10. Создайте новый список из двух списков, используя следующее условие
Создайте новый список из двух списков, используя следующее условие новый список должен содержать нечетные числа из первого списка и четные числа из второго списка.
Дано :
список1 = [10, 20, 25, 30, 35] list2 = [40, 45, 60, 75, 90]
Ожидаемый результат :
список результатов: [25, 35, 40, 60, 90]Показать подсказку
- Создать пустой список с именем нечетное число с использованием формулы
num % 2 != 0
. Если текущее число является нечетным, добавьте его в список результатов - Теперь повторите первый список, используя цикл.
- В каждой итерации проверяйте, является ли текущее число нечетным, используя
num % 2 == 0 9Формула 0079. Если текущий номер четный, добавьте его в список результатов
- распечатайте список результатов
def merge_list(list1, list2): список_результатов = [] # повторяем первый список для номера в списке1: # проверяем, является ли текущее число нечетным если число% 2 != 0: # добавить нечетное число в список результатов result_list.append(число) # повторяем второй список для числа в списке2: # проверяем, является ли текущее число четным если число% 2 == 0: # добавить четное число в список результатов result_list.append(число) вернуть результат_список список1 = [10, 20, 25, 30, 35] список2 = [40, 45, 60, 75, 90] print("список результатов:", merge_list(list1, list2))
Примечание: Попробуйте решить Python list. Упражнение
Например, если задано целое число 7536 , вывод должен быть « 6 3 5 7 » с пробелом, разделяющим цифры.
Показать решениеИспользовать цикл while
число = 7536 print("Данное число", число) пока число > 0: # получить последнюю цифру цифра = число % 10 # убираем последнюю цифру и повторяем цикл число = число // 10 печать (цифра, конец = "")
УПРАЖНЕНИЕ 12: Расчет подоходного налога для данного дохода, придерживаясь приведенных ниже правила
Налогооблагаемый доход | . | 10 |
---|---|---|
Остаток | 20 |
Ожидаемый результат :
Например, предположим, что налогооблагаемый доход равен 45000 доход0007
10000*0% + 10000*10% + 25000*20% = 6000 долларов США.
Показать решениедоход = 45000 налог_оплачиваемый = 0 print("Данный доход", доход) если доход <= 10000: налог_оплачиваемый = 0 Элиф доход <= 20000: # без налога на первые 10 000 х = доход - 10000 # 10% налог налог_оплачиваемый = х * 10/100 еще: # первые 10 000 налог_оплачиваемый = 0 # следующие 10 000 10% налог налог_оплачиваемый = 10000 * 10/100 # оставшиеся 20% налога tax_payable += (доход - 20000) * 20/100 print("Общая сумма налога равна", tax_payable)
Упражнение 13.
Печать таблицы умножения от 1 до 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
См.: Использование двух вложенных циклов в Python
Показать подсказку- Создайте внешний цикл for для повторения чисел от 1 до 10. Таким образом, общее количество итераций внешнего цикла равно 10.
- Создайте внутренний цикл для повторения 10 раз.
- Для каждой итерации внешнего цикла внутренний цикл будет выполняться десять раз.
- В первой итерации вложенного цикла число равно 1. В следующей — 2. и так далее до 10.
- В каждой итерации внутреннего цикла мы вычислили произведение двух чисел. (текущий внешний номер и текущий внутренний номер)
для i в диапазоне (1, 11): для j в диапазоне (1, 11): напечатать (я * j, конец = "") печать("\т\т")
Упражнение 14.
Распечатайте полупирамидальный узор со звездой (звездочкой)* * * * * * * * * * * * * * *
Подсказка : Печать шаблона с использованием цикла for
Показать решениедля i в диапазоне (6, 0, -1): для j в диапазоне (0, i - 1): печать("*", конец=' ') Распечатать(" ")
Упражнение 15. Напишите функцию с именем
exponent(base, exp)
, который возвращает целочисленное значение основания, возведенного в степень exp. Обратите внимание: exp
— неотрицательное целое число, а основание — целое число.
Ожидаемый результат
Случай 1:
основание = 2 показатель = 5 2 возводится в степень 5: 32 т. е. (2 * 2 * 2 * 2 * 2 = 32)
Случай 2:
основание = 5 показатель = 4 5 возводит в степень 4: 625 т. е. (5 * 5 * 5 * 5 = 625)Показать решение
показатель степени (база, выражение): число = ехр результат = 1 пока число > 0: результат = результат * база число = число - 1 print(base, "возводит в степень", exp, "равно: ", результат) exponent(5, 4)
Я хочу услышать от вас. Что вы думаете об этом базовом упражнении? Если у вас есть лучшие альтернативные ответы на приведенные выше вопросы, пожалуйста, помогите другим, прокомментировав это упражнение.
В этом упражнении я показал только 15 вопросов, потому что у нас есть тематические упражнения, в которых детально рассматривается каждое тематическое упражнение. Пожалуйста, взгляните на это.
Примеры Python
❮ Предыдущий Далее ❯
Синтаксис Python
Печать «Привет, мир» Комментарии в Python Строки документации
Объяснение синтаксиса
Переменные Python
Создать переменную Вывод как текста, так и переменной Добавить переменную в другую переменную
Объяснение переменных
Числа Python
Проверить тип объекта Создать целые числа Создание чисел с плавающей запятой Создавайте научные числа с буквой «е», чтобы указать степень числа 10. Создание комплексных чисел
Объяснение чисел
Python Casting
Кастинг — целые числа Кастинг - поплавки Кастинг — строки
Объяснение кастинга
Строки Python
Получить символ в позиции 1 строки Подстрока. Переместите персонажей с позиции 2 на позицию 5 (не входит в комплект) Удалить пробелы в начале или в конце строки Возвращает длину строки Преобразование строки в нижний регистр Преобразование строки в верхний регистр Заменить строку другой строкой Разделить строку на подстроки
Объяснение строк
Операторы Python
Оператор сложения Оператор вычитания Оператор умножения Оператор отдела Оператор модуля Оператор присваивания
Описание операторов
Списки Python
Создать список Элементы списка доступа Изменить значение элемента списка Цикл по списку Проверить, существует ли элемент списка Получить длину списка Добавить элемент в конец списка Добавить элемент по указанному индексу Удалить элемент Удалить последний элемент Удалить элемент по указанному индексу Очистить список Использование конструктора list() для создания списка
Объяснение списков
Кортежи Python
Создать кортеж Доступ к элементам кортежа Изменить значения кортежа Перебрать кортеж Проверить, существует ли элемент кортежа Получить длину кортежа Удалить кортеж Использование конструктора tuple() для создания кортежа
Описание кортежей
Наборы Python
Создать набор Перебрать набор Проверить, существует ли элемент Добавить элемент в набор Добавить несколько предметов в набор Получить длину набора Удалить элемент из набора Удалить элемент в наборе с помощью метода discard() Удалите последний элемент в наборе с помощью метода pop(). Очистить набор Удалить набор Использование конструктора set() для создания набора
Объяснение наборов
Словари Python
Создать словарь Доступ к элементам словаря Изменить значение определенного элемента в словаре Распечатайте все имена ключей в словаре, одно за другим Распечатайте все значения в словаре, одно за другим Использование функции values() для возврата значений словаря Переберите оба ключа и значения, используя функцию items() Проверить, существует ли ключ Получить длину словаря Добавить элемент в словарь Удалить элемент из словаря Очистить словарь Использование конструктора dict() для создания словаря
Объяснение словарей
Python If ... Else
Оператор если Элиф заявление Оператор else Короткая рука, если Короткая рука, если ... еще Ключевое слово и Ключевое слово or
If... Else Объяснение
Python While Loop
Цикл while Использование оператора break в цикле while Использование оператора continue в цикле while
Объяснение цикла While
Python For Loop
Цикл for Цикл через строку Использование оператора break в цикле for Использование оператора continue в цикле for Использование функции range() в цикле for Остальное в цикле for Вложен для цикла
Объяснение цикла For
Функции Python
Создать и вызвать функцию Параметры функции Значение параметра по умолчанию Пусть функция возвращает значение Рекурсия
Описание функций
Python Lambda
Лямбда-функция, добавляющая 10 к числу, переданному в качестве аргумента. Лямбда-функция, умножающая аргумент a на аргумент b. Лямбда-функция, которая суммирует аргументы a, b и c
Объяснение лямбда
Массивы Python
Создать массив Доступ к элементам массива Изменить значение элемента массива Получить длину массива Перебрать все элементы массива Добавить элемент в массив Удаление элемента из массива
Объяснение массивов
Классы и объекты Python
Создать класс Создать объект Функция __init__() Создание методов объекта Собственный параметр Изменить свойства объекта Удалить свойства объекта Удалить объект
Описание классов/объектов
Итераторы Python
Возвратить итератор из кортежа Возвратите итератор из строки Цикл через итератор Создать итератор Остановить итерацию
Описание итераторов
Модули Python
Использовать модуль Переменные в модуле Переименование модуля Встроенные модули Использование функции dir() Импорт из модуля
Объяснение модулей
Даты Python
Импортируйте модуль datetime и отобразите текущую дату Возвращает год и название дня недели Создать объект даты Метод strftime()
Объяснение дат
Python Math
Найдите самое низкое и самое высокое значение в итерируемом Возвращает абсолютное значение числа Вернуть значение x в степени y (x y ) Возвращает квадратный корень числа Округление числа вверх и вниз до ближайшего целого числа Вернуть значение PI
Объяснение математики
Python JSON
Преобразование из JSON в Python Преобразование из Python в JSON Преобразование объектов Python в строки JSON Преобразование объекта Python, содержащего все допустимые типы данных Используйте параметр indent для определения количества отступов Используйте параметр separators, чтобы изменить разделитель по умолчанию. Используйте параметр sort_keys, чтобы указать, должен ли результат сортироваться или нет
Объяснение JSON
Python RegEx
Найдите строку, чтобы увидеть, начинается ли она с «The» и заканчивается на «Испания». Использование функции findall() Использование функции поиска() Использование функции split() Использование функции sub()
Объяснение RegEx
Python PIP
Использование пакета
Объяснение PIP
Попробуйте Python Кроме
При возникновении ошибки распечатать сообщение Много исключений Используйте ключевое слово else, чтобы определить блок кода, который будет выполняться, если ошибок не возникло. Используйте блок finally для выполнения кода независимо от того, вызывает ли блок try ошибку или нет
Попробуйте, кроме объясненного
Обработка файлов Python
Прочитать файл Чтение только частей файла Прочитать одну строку файла Циклический просмотр строк файла для чтения всего файла, строка за строкой
Объяснение работы с файлами
Python MySQL
Создать подключение к базе данных Создать базу данных в MySQL Проверить, существует ли база данных Создать таблицу Проверить, существует ли таблица Создавать первичный ключ при создании таблицы Вставить запись в таблицу Вставить несколько строк Получить вставленный идентификатор Выбрать все записи из таблицы Выберите только некоторые столбцы в таблице Используйте метод fetchone() для выборки только одной строки в таблице.