PythonDev
74 subscribers
7 photos
1 video
18 files
60 links
Канал, где рассказывают по Python

Админ - @mistcoder, @ALRU8
Донат - https://t.me/send?start=IVawE0JR96oZ
Download Telegram
Скрипт простого поисковика файлов на вашем пк
import os

B file_name = input('Введите название искомово файла:')

for root, dirs, files in os.walk('/'):
if file_name in files:
file_path = os.path.join(root,file_name)
print(f'Файл найден {file_path}')
break
else:
print('Файл не найден :(')


#скрипт
👍22
Оператор «+» для конкатенации

«+» — простой и понятный для новичков оператор, но он не всегда является самым эффективным решением для конкатенации. Чем больше строк вам нужно соединить в одну, тем больше плюсов придётся добавить, а это засоряет код. Поэтому для конкатенации лучше всего использовать f-строки.

#неудобно
name = input("your name:")
print("Welcome, " + name + "!"

#удобно
name = input("your name:")
print(f'Welcome, {name}!')

#обучение
👍1🔥11
Как отформатировать многострочный вывод

Чтобы вывод напоминал аккуратную табличку, то при использовании F-строк добавьте интерполируемой переменной двоеточие и число, одинаковое для всех print(), например, 10. Это резервирует пространство из 10 символов

name1 = 'Александр'
name2 = 'Иван'
print(f'{name1:10}: заказчик')
print(f'{name2:10}: исполнитель')

#обучение
👍21
Злоупотребление импортом

Начинающие разработчики часто импортируют все имена из модулей.

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

#можно
from math import pi
print(pi)

#нельзя
import math
print(pi)

#обучение
👨‍💻22
random.choice
import random

list = (10, 20, 30, 40, 50)
random_element = random.choice(list)
print(random_element)

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

#обучение
🔥22
list.pop
list = [1, 2, 3, 4, 5]
elem = list.pop(2)
print(elem)
print(list)


Метод pop() используется для удаления и возврата элемента из списка. По умолчанию удаляется и возвращается последний элемент списка, но можно также указать индекс элемента, который нужно удалить и вернуть. Если список пуст, pop() вызовет исключение IndexError.

#обучение
👍22
Использование itertools для создания комбинаций

import itertools

items = ['A', 'B', 'C', 'D']
combinations = list(itertools.combinations(items, 3))
print(combinations)


Модуль itertools в Python предоставляет множество функций для работы с итераторами, позволяя эффективно создавать и манипулировать последовательностями. Одной из полезных функций этого модуля является itertools.combinations, которая позволяет легко создавать все возможные комбинации элементов из списка заданной длины.

#обучение

Использование функции itertools.combinations позволяет легко и эффективно создавать комбинации элементов из списка, упрощая решение задач, связанных с комбинаторикой и анализом данных.
👍22
Библиотека Progressbar

from progressbar import ProgressBar
import time

pbar = ProgressBar(maxval=5)
pbar.start()

for i in range(4):
pbar.update(i)
time.sleep(1)
pbar.finish()


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

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

Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.

#обучение
👍22
Задаем ширину текста

import textwrap 
text = 'apple orange banana lemon mango grapefruit watermelon kiwi'
print(textwrap.fill(text, width = 24))


Метод fill() модуля textwrap разбивает text по строкам так, что каждая строка имеет не более width(в нашем случае 24) символов длиной.
Метод возвращает одну строку, содержащую заключенный абзац.

#обучение
🔥332👍1
statistics.median

import statistics

data = [1, 3, 5, 7, 9]
madian = statistics.median(data)
print(f"Медиана: {median}")


Функция median из модуля statistics используется для вычисления медианы списка чисел. Медиана — это элемент, который делит упорядоченный список пополам. Если список имеет нечетное количество элементов, то медиана — это значение в середине списка. Если список имеет четное количество элементов, то медиана — это среднее значение двух центральных элементов.🖥

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻22👍1
Теперь тут есть комментарии!
👨‍💻3🔥22
list.extend

list = [1, 2, 3]
list.extend([4, 5, 6])
print(list)
# [1, 2, 3, 4, 5, 6]


list = [1, 2, 3]
for i in range(4, 7):
list.extend([i])
print(list)
# [1, 2, 3, 4, 5, 6]


Метод extend() используется для добавления всех элементов из итерируемого объекта (например, списка, кортежа или строки) в конец другого списка. Этот метод позволяет объединить два списка или добавить несколько элементов в один список за один вызов.

#обучение
🔥3👨‍💻22👍1
Обрезаем фотографии с помощью Python

from PIL import Image
pict = Image.open('my_photo.jpg')
cord = (200, 200, 2000, 2000) #лево, верх, право, низ
new_pict = pict.crop(cord)
new_pict.show()


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

Координаты обрезанной поверхности представлены диагональными координатами. При этом первые две точки находятся (x, y) от верхней левой диагональной точки, а следующие две точки (x2, y2) также являются диагональной точкой снизу справа.

#обучение
👍21👨‍💻11
Как_устроен_Python_Гид_для_разработчиков,_программистов_и_интересующихся.pdf
5.4 MB
📖 Как устроен Python. Гид для разработчиков, программистов и интересующихся [2019] Харрисон

Python в моде! Это самый популярный язык программирования. Вакансии для Python-разработчиков входят в список самых высокооплачиваемых, а благодаря бурному развитию обработки данных, знание Python становится одним из самых востребованных навыков в среде аналитиков. Python – невероятный язык, популярный во многих областях. Он используется для автоматизации простых и сложных задач, цифровой обработки, веб-разработки, игр… Независимо от того, перешли ли вы на Python с другого языка, руководите группой программистов, работающих на Python, или хотите расширить свое понимание, имеет смысл подойти к изучению Python со всей серьезностью. Готовы начать карьеру питониста? Не теряйте времени на поиск информации, перелопачивая блоги и сайты, списки рассылок и группы. Приобщитесь к передовому опыту и узнайте секреты внутренней кухни Python, доступные только профи, работающим с этим языком на протяжении многих лет.

PythonDev

#книга
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1👨‍💻11
Pyomo_Моделирование_оптимизации_на_Python_2023_Бинум,_Хакебейл,.pdf
5.9 MB
📖 Pyomo. Моделирование оптимизации на Python [2023] Бинум М., Хакебейл Г., Харт У.

Книга содержит полное руководство по Pyomo (Python Optimization Modeling Objects) — пакету с открытым исходным кодом, предназначенному для формулирования и решения крупномасштабных задач оптимизации. Pyomo включает классы Python для определения разреженных множеств, параметров и переменных, с помощью которых записываются алгебраические выражения, определяющие целевые функции и ограничения. Кроме того, программу можно использовать как из командной строки, так и из интерактивного окружения Python, что сильно упрощает создание моделей Pyomo, применение различных оптимизаторов и изучение решений. Благодаря многочисленным примерам, иллюстрирующим различные способы формулирования моделей, книга прекрасно раскрывает широту средств моделирования, поддерживаемых Pyomo, и ее подходы к сложным практическим приложениям.

PythonDev

#книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👨‍💻11
math.gcd

import math
a = 48
b = 18
#НОД для 48 и 18
result = math.gcd(a, b)
print(result) #6


Функция math.gcd используется для нахождения наибольшего общего делителя (НОД) двух чисел. Наибольший общий делитель (НОД) двух чисел — это наибольшее число, на которое оба числа делятся без остатка. В первом примере НОД чисел 48 и 18 равен 6, потому что 6 является наибольшим числом, которое делит и 48, и 18 нацело.

PythonDev

#обучение
👍3👨‍💻21
Генератор паролей

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

import random
import string

def generate_password(password_type, length, use_uppercase, use_special_chars):
if password_type == 'цифровой':
chars = string.digits
elif password_type == 'буквенный':
chars = string.ascii_lowercase
if use_uppercase:
chars += string.ascii_uppercase
elif password_type == 'смешанный':
chars = string.ascii_lowercase + string.digits
if use_uppercase:
chars += string.ascii_uppercase
if use_special_chars:
chars += string.punctuation
else:
raise ValueError('Недопустимый тип пароля')

password = ''.join(random.choice(chars) for _ in range(length))
return password

def main():
print('Выберите тип пароля:')
print('1. Цифровой')
print('2. Буквенный')
print('3. Смешанный')

choice = input('Введите номер типа пароля: ')

if choice == '1':
password_type = 'цифровой'
elif choice == '2':
password_type = 'буквенный'
elif choice == '3':
password_type = 'смешанный'
else:
print('Недопустимый выбор')
return

use_uppercase = input('Использовать заглавные буквы? (y/n): ').lower() == 'y'
use_special_chars = input('Использовать спецсимволы? (y/n): ').lower() == 'y'

length = int(input('Введите длину пароля: '))

password = generate_password(password_type, length, use_uppercase, use_special_chars)
print(f'Сгенерированный пароль: {password}')

if __name__ == '__main__':
main()


Как использовать:
1.Запустите скрипт
2.Выберите тип пароля, введя соответствующий номер.
3.Выберите, использовать ли заглавные буквы и спецсимволы.
4.Введите длину пароля.
5.Скрипт сгенерирует и выведет пароль указанного типа и длины.

Данный генератор паролей использует модуль random для генерации случайных символов. Типы паролей: цифровой (только цифры), буквенный (только буквы), смешанный (цифры, буквы и спецсимволы). Длина пароля должна быть целым положительным числом.

PythonDev

#скрипт
👍32👨‍💻1
Крестики-Нолики с ботом
maps = [1, 2, 3,
4, 5, 6,
7, 8, 9]

victories = [[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]]

def print_maps():
print(maps[0], end=" ")
print(maps[1], end=" ")
print(maps[2])

print(maps[3], end=" ")
print(maps[4], end=" ")
print(maps[5])

print(maps[6], end=" ")
print(maps[7], end=" ")
print(maps[8])


def step_maps(step, symbol):
ind = maps.index(step)
maps[ind] = symbol


def get_result():
win = ""

for i in victories:
if maps[i[0]] == "X" and maps[i[1]] == "X" and maps[i[2]] == "X":
win = "X"
if maps[i[0]] == "O" and maps[i[1]] == "O" and maps[i[2]] == "O":
win = "O"

return win


game_over = False
player1 = True

while game_over == False:

print_maps()

if player1 == True:
symbol = "X"
step = int(input("Человек 1, ваш ход: "))
else:
symbol = "O"
step = int(input("Человек 2, ваш ход: "))

step_maps(step, symbol)
win = get_result()
if win != "":
game_over = True
else:
game_over = False

player1 = not (player1)

print_maps()
print("Победил", win)


Простой код игры Крестики-Нолики на двоих

PythonDev
Сотрудничество - @mistcoder
➡️Донат

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👨‍💻1
Простой переводчик с русского на английский язык

from translate import Translator
translator = Translator(from_lang='Russian', to_lang='English')
result = Translator.translator(input())
print(result)


В данном примере используется библиотека translate

pip install translate


PythonDev
Сотрудничество - @mistcoder
➡️Донат

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥2
Модуль math

Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.

math.ceil(X) – округление до ближайшего большего числа.

math.copysign(X, Y) - возвращает число, имеющее модуль такой же, как и у числа X, а знак - как у числа Y.

math.fabs(X) - модуль X.

math.factorial(X) - факториал числа X.

math.floor(X) - округление вниз.

math.fmod(X, Y) - остаток от деления X на Y.

math.fsum(последовательность) - сумма всех членов последовательности. Эквивалент встроенной функции sum(), но math.fsum() более точна для чисел с плавающей точкой.

math.isfinite(X) - является ли X числом.

math.isinf(X) - является ли X бесконечностью.

math.isnan(X) - является ли X NaN (Not a Number - не число).

math.modf(X) - возвращает дробную и целую часть числа X. Оба числа имеют тот же знак, что и X.

math.trunc(X) - усекает значение X до целого.

math.log(X, [base]) - логарифм X по основанию base. Если base не указан, вычисляется натуральный логарифм.

math.log10(X) - логарифм X по основанию 10.

math.log2(X) - логарифм X по основанию 2.

math.pow(X, Y) - XY.

math.sqrt(X) - квадратный корень из X.

math.cos(X) - косинус X (X указывается в радианах).

math.sin(X) - синус X (X указывается в радианах).

math.tan(X) - тангенс X (X указывается в радианах).

math.hypot(X, Y) - вычисляет гипотенузу треугольника с катетами X и Y (math.sqrt(x * x + y * y)).

math.degrees(X) - конвертирует радианы в градусы.

math.radians(X) - конвертирует градусы в радианы.

math.erf(X) - функция ошибок.

math.erfc(X) - дополнительная функция ошибок (1 - math.erf(X)).

math.pi - pi = 3,1415926...

math.e - e = 2,718281...



PythonDev
Сотрудничество - @mistcoder
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨‍💻1
Размытие изображений

from PIL import Image, ImageFilter
image1 = Image.open("image.jpg")
image2 = image1.filter(ImageFilter.GaussianBlur(radius=5))
image2.show()


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


Гауссово размытие (Gaussian Blur) — это метод, используемый для смягчения резких краев и уменьшения шума в изображениях.


PythonDev
Сотрудничество - @mistcoder
➡️Донат

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61