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

Админ - @mistcoder, @ALRU8
Донат - https://t.me/send?start=IVawE0JR96oZ
Download Telegram
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
Крестики-Нолики с ботом
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


def check_line(sum_O, sum_X):
step = ""
for line in victories:
o = 0
x = 0

for j in range(0, 3):
if maps[line[j]] == "O":
o = o + 1
if maps[line[j]] == "X":
x = x + 1

if o == sum_O and x == sum_X:
for j in range(0, 3):
if maps[line[j]] != "O" and maps[line[j]] != "X":
step = maps[line[j]]

return step

def AI():
step = ""

step = check_line(2, 0)

if step == "":
step = check_line(0, 2)

if step == "":
step = check_line(1, 0)

if step == "":
if maps[4] != "X" and maps[4] != "O":
step = 5

if step == "":
if maps[0] != "X" and maps[0] != "O":
step = 1

return step

game_over = False
human = True

while game_over == False:

print_maps()

if human == True:
symbol = "X"
step = int(input("Человек, ваш ход: "))
else:
print("Компьютер делает ход: ")
symbol = "O"
step = AI()

if step != "":
step_maps(step, symbol)
win = get_result()
if win != "":
game_over = True
else:
game_over = False
else:
print("Ничья!")
game_over = True
win = "Никто"

human = not (human)

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


Простой код игры Крестики-Нолики с ботом

В данном случае бот не победим!

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

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍1👨‍💻1
Бегущая строка
import time
import sys
def running_string(text, speed=0.1):
while True:
for i in range(len(text)):
sys.stdout.write("\r" + text[i:] + text[:i])
sys.stdout.flush()
time.sleep(speed)

text = "This is a running text "
running_string(text)


Этот код создает анимацию бегущей строки текста в консоли. Он использует бесконечный цикл, чтобы постоянно выводить строку текста, смещая ее на один символ влево при каждом выводе. Скорость анимации можно регулировать с помощью аргумента 'speed'


PythonDev

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

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍311
Перевод между системами счисления
def convert_base(num, base_from, base_to):
decimal = int(num, base_from)
if decimal == 0:
return '0'
digits = []
while decimal:
digits.append(int(decimal % base_to))
decimal //= base_to
digits = ''.join(map(str, digits[::-1]))
return digits

num = input("Введите число: ")
base_from = int(input("Введите исходную систему счисления (2-36): "))
base_to = int(input("Введите целевую систему счисления (2-36): "))

result = convert_base(num, base_from, base_to)
print(f"Результат: {result}")


Функция convert_base переводит число из одной системы счисления в другую. Она принимает строку num, исходную систему счисления base_from и целевую систему счисления base_to. Функция сначала переводит число в десятичную систему, а затем в целевую систему счисления, используя цикл для извлечения цифр.

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

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👨‍💻11
Как считать текстовый файл в список

with open("text.txt") as t:
list = t.readlines()
list = [x.strip() for x in list]
print(list)


При часто бывает, что необходимо построчно выгрузить файл в массив. Алгоритм действий:

1) Загружаем файл (для примера взят text.txt) с помощью open;
2) Считываем построчно в переменную list с помощью метода readlines;
3) Удаляем все символы новой строки с помощью strip.

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

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Snake_by_MrCoder.py
3.2 KB
Игра змейка🐍
Легендарная игра детства из тетриса, в описании не нуждается)
Имеет графический интерфейс, используется библиотека pygame

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

#byMrCoder

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Функция eval()
print(eval(input()))

Функция eval() в Python используется для выполнения строки кода, содержащей выражение или инструкцию, и возврата результата. Это может быть полезно, когда вам нужно динамически вычислять математические выражения, которые вводит пользователь или получаются из внешнего источника.

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

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Генератор capcha
import random
import string
from PIL import Image, ImageDraw, ImageFont


def generate_code(length=6):
chars = string.ascii_uppercase + string.digits
return ''.join(random.choice(chars) for _ in range(length))


def generate_captcha(code):
img = Image.new('RGB', (150, 70), color=(255, 255, 255))
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 24)

for _ in range(5):
x1, y1 = random.randint(0, 150), random.randint(0, 70)
x2, y2 = random.randint(0, 150), random.randint(0, 70)
draw.line((x1, y1, x2, y2), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))

draw.text((10, 20), code, font=font, fill=(0, 0, 0))
img.save('captcha.png')


code = generate_code()
generate_captcha(code)
print(f'Код капчи: {code}')

Наипростейший генератор капчи, сохраняет файл с капчой в папку с файлом.py, по названием capcha.png

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

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Простой код для удаления дубликатов символов из строки

def remove_duplicates(input_str):
unique_chars = set(input_str)
result_str = ''.join(unique_chars)
return result_str
input_str = "Привет, мир!"
print("Исходная строка:", input_str)
print("Строка без дупликатов:", remove_duplicates(input_str))

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

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Давайте, кто может, накинем бустов ➡️тык
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Pong_by_MrCoder.py
2.3 KB
Простейшая игра пинг понг с использованием библиотеки pygame

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

#byMrCoder

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍1
str1 = "привет мир"
print(str1.find("мир")) # Вывод: 6
print(str1.index("мир")) # Вывод: 6
print(str1.rfind("мир")) # Вывод: 6
print(str1.rindex("мир")) # Вывод: 6

print(str1.find("земля")) # Вывод: -1
print(str1.index("земля")) # Ошибка: ValueError: substring not found


Работа со строками ч.2 Методы для поиска подстрок

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

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
5