Короткие программы в питоне

Содержание
  1. 25 полезных однострочников Python, которые вы должны знать
  2. 1. Сменка двух переменных
  3. 2. Множественные присвоения переменных
  4. 3. Сумма четных чисел в списке
  5. 4. Удаление нескольких элементов из списка
  6. 5. Чтение файлов
  7. 6. Запись данных в файл
  8. 7. Создание списков
  9. 8. Mapping списков, или изменение типа данных в списке
  10. 9. Создание набора
  11. 10. Fizz Buzz
  12. 11. Палиндром
  13. 12. Целые числа, разделенные пробелами, в списке
  14. 13. Лямбда-функция
  15. 14. Проверить наличие числа в списке
  16. 15. Вывод паттернов
  17. 16. Нахождение факториала
  18. 17. Ряд Фибоначчи
  19. 18. Простое число
  20. 19. Нахождение максимального числа
  21. 20. Линейная алгебра
  22. 21. Транспонировать матрицу
  23. 22. Подсчет нахождений паттерна
  24. 23. Замена текста другим текстом
  25. 24. Симуляция подбрасывания монеты
  26. 25. Генерация групп
  27. Простые программы на Python
  28. Введение
  29. Проверка заряда аккумулятора ноутбука
  30. Сокращение ссылок
  31. Преобразование текста в речь
  32. Генератор паролей
  33. Конвертер PNG в ICO
  34. Заключение

25 полезных однострочников Python, которые вы должны знать

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

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

1. Сменка двух переменных

# a = 4 b = 5 a,b = b,a # print(a,b) >> 5,4

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

Читайте также:  Javascript how to focus

2. Множественные присвоения переменных

a,b,c = 4,5.5,'Hello' #print(a,b,c) >> 4,5.5,hello

Вы можете использовать запятые и переменные, чтобы назначать нескольким переменным значения за раз. Используя этот метод, вы даже можете назначить несколько типов данных var за раз. Вы можете использовать список для присвоения значений переменным. Ниже приведен пример присвоения нескольких значений разным переменным из списка.

a,b,*c = [1,2,3,4,5] print(a,b,c) > 1 2 [3,4,5]

3. Сумма четных чисел в списке

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

a = [1,2,3,4,5,6] s = sum([num for num in a if num%2 == 0]) print(s) >> 12

4. Удаление нескольких элементов из списка

del — ключевое слово, используемое в Python для удаления объектов из списка.

#### Удаляем все четные числа a = [1,2,3,4,5] del a[1::2] print(a) >[1, 3, 5]

5. Чтение файлов

lst = [line.strip() for line in open('data.txt')] print(lst)

Здесь мы используем понимание того, как устроен список. Сначала мы открываем текстовый файл и с помощью цикла for читаем строку за строкой. В итоге с помощью strip убираем все лишнее пространство. Но есть один более простой и короткий способ сделать то же самое, используя только функцию списка.

list(open('data.txt')) ##Использование with также закроет файл после использования with open("data.txt") as f: lst=[line.strip() for line in f] print(lst)

6. Запись данных в файл

with open("data.txt",'a',newline='\n') as f: f.write("Python is awesome")

Приведенный выше код сначала создаст файл data.txt, если его еще нет, а затем напишет в этом файле Python is awesome .

7. Создание списков

lst = [i for i in range(0,10)] print(lst) > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] или lst = list(range(0,10)) print(lst)

Мы также можем создать список строк, используя тот же метод.

lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']] print(lst) > ['Hello Karl', 'Hello Abhay', 'Hello Zen']

8. Mapping списков, или изменение типа данных в списке

Иногда в нашем проекте нам нужно изменить типы данных всех элементов в списке. Первый способ, который приходит вам в голову, — использовать цикл, а затем получить доступ ко всем элементам из списка, а затем один за другим изменить тип данных элементов. Этот метод предназначен для старой школы в Python. У нас есть функция map , которая может делать эту работу за нас.

list(map(int,['1','2','3'])) > [1, 2, 3] list(map(float,[1,2,3])) > [1.0, 2.0, 3.0] # А вот как делалось раньше [float(i) for i in [1,2,3]] > [1.0, 2.0, 3.0]

9. Создание набора

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

# Квадрат всех четных чисел в диапазоне >

10. Fizz Buzz

Это тест, в котором нам нужно написать программу, что печатает числа от 1 до 100. Но для чисел, кратных трем, выведет «Fizz» вместо числа, а для кратных пяти выведет «Buzz». (если кратно и трем, и пяти, то выводится, соответственно, FizzBuzz).

Похоже, нам нужно использовать циклы и несколько операторов if-else. Если вы попытаетесь сделать это на любом другом языке, то вам, возможно, придется написать до 10 строк кода. Но используя python, мы сможем реализовать FizzBuzz всего одной строкой кода.

['FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i for i in range(1,20)]

В приведенном выше коде мы используем понимание списка для запуска цикла от 1 до 20, а затем на каждой итерации цикла мы проверяем, делится ли число на 3 или 5. Если да, то мы заменяем число на Fizz или Buzz соответственно (при выполнении обоих условий заменим число на FizzBuzz).

11. Палиндром

Палиндром — это число или строка, которые в обратном виде выглядят одинаково.

text = 'level' ispalindrome = text == text[::-1] ispalindrome > True

12. Целые числа, разделенные пробелами, в списке

lis = list(map(int, input().split())) print(lis) > 1 2 3 4 5 6 7 8 [1, 2, 3, 4, 5, 6, 7, 8]

13. Лямбда-функция

Лямбда-функция — это небольшая анонимная функция.

Лямбда-функция может принимать любое количество аргументов, но может иметь только одно __выражение.

sqr = lambda x: x * x ##Функция, возвращающая квадрат любого числа sqr(10) > 100

14. Проверить наличие числа в списке

num = 5 if num in [1,2,3,4,5]: print('present') > present

15. Вывод паттернов

Паттерны — это то, что меня всегда увлекало. В python мы можем рисовать удивительные паттерны, используя всего одну строку кода.

n = 5 print('\n'.join('?' * i for i in range(1, n + 1))) > ? ?? . . . 

16. Нахождение факториала

Факториал — это произведение целого числа и всех целых чисел в порядке перед ним.

import math n = 6 math.factorial(n) > 720

17. Ряд Фибоначчи

Ряд Фибоначчи — это серия чисел, в которой каждое число (число Фибоначчи) является суммой двух предыдущих чисел. Простейший ряд Фибоначчи: 1, 1, 2, 3, 5, 8, 13 и т.д. Мы можем использовать создание списка и цикл for для создания ряда Фибоначчи в необходимом нам диапазоне.

fibo = [0,1] [fibo.append(fibo[-2]+fibo[-1]) for i in range(5)] fibo > [0, 1, 1, 2, 3, 5, 8]

18. Простое число

Простое число — это число, которое делится только само на себя и 1. например: 2,3,5,7 и т. Д. Чтобы сгенерировать простые числа в диапазоне, мы можем использовать функцию списка с фильтром и лямбда для генерации простых чисел.

list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13))) > [2, 3, 5, 7, 11]

19. Нахождение максимального числа

findmax = lambda x,y: x if x > y else y findmax(5,14) > 14 или max(5,14)

В приведенном выше коде с использованием лямбда-функции мы проверяем условие сравнения и в соответствии с ним возвращаем максимальное число.

20. Линейная алгебра

Иногда нам нужно увеличить числа в списке в 2 или 5 раз. Код ниже покажет, как это сделать.

def scale(lst, x): return [i*x for i in lst] scale([2,3,4], 2) ## вызов функции > [4,6,8]

21. Транспонировать матрицу

Если вам нужно преобразовать все строки в столбцы и наоборот, в python вы можете транспонировать матрицу всего в одну строку кода, используя функцию zip.

a=[[1,2,3], [4,5,6], [7,8,9]] transpose = [list(i) for i in zip(*a)] transpose > [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

22. Подсчет нахождений паттерна

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

import re; len(re.findall('python','python is a programming language. python is python.')) > 3

23. Замена текста другим текстом

"python is a programming language. python is python".replace("python",'Java') > Java is a programming language. Java is Java

24. Симуляция подбрасывания монеты

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

import random; random.choice(['Head',"Tail"]) > Head

25. Генерация групп

groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]] groups > [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

Я поделился всеми полезными и важными однострочниками, которые я знаю. Если вы знаете какие-то ещё, поделитесь в комментариях.

Источник

Простые программы на Python

Простые программы на Python

Статьи

Введение

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

Проверка заряда аккумулятора ноутбука

С помощью Python можно проверить заряд аккумулятора на ноутбуке, для этого понадобится модуль под названием psutil. Данный модуль входит в стандартную библиотеку Python, поэтому нам даже устанавливать ничего не придётся. Объяснения кода приложу в комментариях:

import psutil # Создаём экземпляр класса sensors_battery(): battery = psutil.sensors_battery() # Получаем информацию о заряде батареи в процентах: percent = str(battery.percent) # Выводим информацию о заряде батареи print(f'Заряд батареи = %')

Так же можем улучшить программу, добавив уведомление о низком заряде батареи, но для этого понадобится модуль pyautogui. Установить его можно прописав pip install pyautogui в терминал, или же командную строку.

import psutil import pyautogui # Создаём экземпляр класса sensors_battery(): battery = psutil.sensors_battery() while True: if battery.percent < 100: pyautogui.alert('Заряд батареи < 100%', 'Предупреждение') break else: pass

Сокращение ссылок

Программа для сокращения ссылок на Python будет полезна, чтобы вечно не заходить на сторонние сервисы для сокращения, а воспользоваться собственной программой в шаговой доступности.

Для начала понадобится установить модуль pyshorteners, для его установки нужно перейти в терминал или же командную строку, прописать pip install pyshorteners, нажать Enter и ждать установки. После установки можем смело писать код:

import pyshorteners # Создаём экземпляр класса Shortener s = pyshorteners.Shortener() # Пользователь вводит ссылку url = input('Введите ссылку для сокращения: ') # Сокращаем ссылку и выводим её print(s.tinyurl.short(url))

Создание GUI приложения на Python для сокращения ссылок:

Преобразование текста в речь

Для преобразования текста в речь можно воспользоваться библиотекой gTTS, для её установки нужно перейти в терминал или же командную строку, прописать pip install gTTS, нажать Enter и ждать установки. Теперь можно приступить к написанию кода:

from gtts import gTTS import os # Открываем txt файл с фразами, которые нужно озвучить file = open("abc.txt", "r").read() # Озвучиваем фразы speech = gTTS(text=file, lang='ru', slow=False) file.close() # Сохраняем озвученный текст speech.save("output.mp3")

Так же можете посмотреть видео про синтез речи, если Вам интересна данная тема:

Генератор паролей

Напишем простой генератор паролей. Для написания данной программы нам понадобится модуль, который входит в стандартную библиотеку Python под названием random.

import random # Ввод желаемой длины пароля length_password = int(input("Введите длину пароля: ")) # Алфавит для будущего пароля alphabetical = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?" # Генерация пароля password = "".join(random.sample(alphabetical, length_password)) # Вывод результата print(password)

Ну а после генерации пароля можете его проверить на надёжность:

Конвертер PNG в ICO

Некоторым из нас довольно часто бывает нужно получить изображение в формате ico, но устанавливать плагин для фотошопа, или искать конвертер в интернете лень. На помощь придёт программа для конвертации изображения в формате PNG в ICO.

Для написания данной программы понадобится модуль Pillow, для его установки нужно перейти в терминал или же командную строку, прописать pip install Pillow, нажать Enter и ждать установки. Далее приступаем к написанию кода:

from PIL import Image # Ввод пути до изображения img_path = input('Введите путь до изображения: ') # Открываем изображение в формате PNG img = Image.open(img_path) # Сохраняем изображение в формате ICO img.save('output.ico')

Создание GUI приложения для конвертации PNG в ICO:

Заключение

В ходе статьи мы с Вами написали целых 5 простых программ на Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Источник

Оцените статью