Простые программы на python: Примеры программ Python. С чего начать. Быстрый старт

Содержание

Примеры программ Python. С чего начать. Быстрый старт

Содержание

  1. Введение
  2. Примеры простых программ
  3. Замена значений переменных местами
  4. Написание числа в обратном порядке
  5. Преобразование разделённого запятыми списка в строку
  6. Найти среднее значение элементов массива
  7. Проверить, является ли слово палиндромом
  8. Есть ли число в списке
  9. Вывод всех чисел, кратных определенному числу, в заданном диапазоне
  10. Количества цифр в числе
  11. Суммы всех цифр данного числа
  12. Сумма цифр от 1 до n
  13. Играемся со звёздочками
  14. Получаем гласные
  15. Чуть сложнее
  16. Все перестановки трех чисел
  17. Декартово произведение
  18. Генератор чисел Фибоначчи
  19. Объединяем два словаря
  20. Проверка дубликатов
  21. Вычисляем время выполнения
  22. Разбиение на фрагменты

Введение

В данном уроке мы приведём несколько примеров небольших программ на 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 для продвинутых разработчиков Python

MP3-плейер – проект для прослушивания музыки, создайте 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)

PyCharm

PyCharm – IDE от компании JetBrains, поддерживает веб разработку на Django.

IDLE

IDLE – IDE для Python, созданная с помощью библиотеки Tkinter от создателя Python. Поставляется вместе с Python, кроссплатформенная.

Базовые инструменты

Setuptools – это библиотека процессов разработки пакетов, предназначенная для облегчения упаковки проектов Python за счет расширения стандартной библиотеки Python distutils.

virtualenv – менеджер виртуальной среды. Позволяет создавать виртуальные среды с пакетами. Разные песочницы имеют разные наборы пакетов, разных версий. Одну и ту же песочницу могут использовать разные проекты.

Pip – система управления пакетами, используется для установки и управления программными пакетами, написанными на Python.

Кроссплатформенная разработка

BeeWare

BeeWare – набор инструментов для разработки и распространения нативных приложений на Python. Включает в себя Toga – кроссплатформенный инструмент для GUI, Briefcase – инструмент для упаковки проектов на языке Python в распространяемые артефакты для доставки конечным пользователям, Rubicon ObjC – библиотека для работы с Object C на iOS и Mac с помощью Python, Rubicon Java – для работы с Java-библиотеками на Python.

kivy

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-маркировки или извлечения именных фраз.

***

Хочу стать Python-разработчиком, но не знаю, с чего начать.

Что посоветуете?

Хорошее обучение невозможно без практики. Если вы новичок и собираетесь реализовать свой первый проект, стоит подойти к этому осознанно. Недостаточно прочитать несколько статей и книг, посмотреть обучающие ролики и скачать все нужные программы. Важно заручиться поддержкой опытных наставников, которые готовы вместе с вами пройти путь в IT.

Доверяйте профессионалам — онлайн-университету Skypro. Курс «Python-разработчик» подходит начинающим айтишникам для мягкого погружения в индустрию. Программа построена так, чтобы студент получил навыки, подходящие для должности младшего специалиста в любых компаниях.

Вы научитесь:

  • писать код в Colab, PyCharm и GitHub;
  • работать с базами данных SQLite, PostgreSQL, SQLAlchemy;
  • использовать фреймворки Django, Flask;
  • разрабатывать веб-сервисы и телеграм-боты.

У Skypro гарантия трудоустройства прописана в договоре, поэтому вам реально вернут деньги, если вы не устроитесь на работу в течение четырех месяцев после окончания обучения.

Хочу попробовать

Базовое упражнение 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 функция, которая будет принимать два числа в качестве параметров
  • Далее внутри функции умножьте два числа и сохраните их произведение в переменной 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() method

 str_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: Рассчитайте подоходный налог для данного дохода, придерживаясь следующих правил 0386

Следующие $10 000 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() для выборки только одной строки в таблице.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *