Справочник Программиста
6.29K subscribers
1.36K photos
387 videos
64 files
1.71K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
#ГенераторКаптчи
Код из видео:

from captcha.image import ImageCaptcha
from random import choice

a = int(input('Введите количество символов в каптче: '))

alphabet = ['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g',
'h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w',
'x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

pattern = []

for i in range(a):
pattern.append(choice(alphabet))
print(pattern)
image_captcha = ImageCaptcha(width=300, height=200)
image_captcha.write(pattern, 'captcha.png')
#ИзвлечениеБуквИзСтроки
Код из видео:

# 1 способ

str1 = "7953abcd[)12!zfee"
print ("Изначальная строка: ", str1)

char = ""
for i in str1:
if i.isalpha():
char = "".join([char, i])

print ("Буквы: ", str(char))

# 2 способ

import re

str1 = "7953abcd[)12!zfee"
print("Изначальная строка: ", str1)
char = "".join(re.findall("[a-zA-Z]+", str1))
numbers = "".join(re.findall('\d+', str1))
print("Буквы: ", str(char))
print("Цифры: ", numbers)

# 3 способ

import re

str1 = "7953abcd[)12!zfee"
print ("Изначальная строка: ", str1)
char = "".join(re.split("[^a-zA-Z]*", str1))

print ("Буквы: ", str(char))
👍1
#СинтезРечиНаPython
Код из видео:

import pyttsx3

engine = pyttsx3.init()

engine.setProperty('rate', 150)
engine.setProperty('volume', 0.9)

engine.say("I can speak!")
engine.say("Я могу говорить!")


engine.runAndWait()


# Узнаем доступные голоса и их параметры

voices = engine.getProperty('voices')

for voice in voices:
print('------')
print(f'Имя: {voice.name}')
print(f'ID: {voice.id}')
print(f'Язык(и): {voice.languages}')
print(f'Пол: {voice.gender}')
print(f'Возраст: {voice.age}')


# Добавление голосов по id

en_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"
en_voice_id_David = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0"
ru_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0"

engine.setProperty('voice', en_voice_id)
engine.say('Hello World.')

engine.setProperty('voice', en_voice_id_David)
engine.say('Hello World.')

engine.setProperty('voice', ru_voice_id)
engine.say('Привет, Мир.')

engine.runAndWait()


# Программа, которая озвучивает системное время

from datetime import datetime, date, time
import pyttsx3
import time

ru_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0"

engine = pyttsx3.init()
engine.setProperty('voice', ru_voice_id)

def say_time(msg):
engine.say(msg)
engine.runAndWait()

time_checker = datetime.now()
say_time(f'Время: {time_checker.hour} часа {time_checker.minute} минуты.')
😍1
#РаботаСzip-архивами
Код из видео:

# Чтение архива

import zipfile

file_zip = zipfile.ZipFile("info.zip", "r")

for file_info in file_zip.infolist():
print(file_info.filename, file_info.date_time, file_info.file_size)
file_zip.close()


# Извлечение файлов из архива

import zipfile

file_zip = zipfile.ZipFile('info1.zip')
file_zip.extractall('./')

file_zip.close()


# Добавление файла в zip-архив

import zipfile

file_zip = zipfile.ZipFile('info.zip', 'w')

file_zip.write('info/inform.txt')
print('Файлы добавлены!')
file_zip.close()


# Добавление большего количества файлов с определённым расширением

import os
import zipfile

file_zip = zipfile.ZipFile('info_one.zip', 'w')

for folder, subfolders, files in os.walk('путь к папке с .txt файлами'):

for file in files:
if file.endswith('.txt'):
file_zip.write(os.path.join(folder, file),
os.path.relpath(os.path.join(folder, file), 'путь к папке с .py файлом'),
compress_type=zipfile.ZIP_DEFLATED)

file_zip.close()


# Проверка, является файл zip-архивом

import zipfile

test_files = ['zip.py', 'newInform.zip']

for file in test_files:
print('ZIP status for {0}: {1}'.format(file, zipfile.is_zipfile(file)))
#КонвертерВалют
Код из видео:

from currency_converter import CurrencyConverter
from tkinter import *


def exchange():
e_usd.delete(0, END)
e_eur.delete(0, END)
e_gbp.delete(0, END)
e_usd.insert(0, '%.2f' % c.convert(e_rub.get(), 'RUB', 'USD'))
e_eur.insert(0, '%.2f' % c.convert(e_rub.get(), 'RUB', 'EUR'))
e_gbp.insert(0, '%.2f' % c.convert(e_rub.get(), 'RUB', 'GBP'))


root = Tk()
root.title('Конвертер валют')
root.geometry('300x250+300+300')
root.resizable(width=False, height=False)
root['bg'] = 'black'
c = CurrencyConverter()

header_frame = Frame(root)
header_frame.pack(fill=X)

header_frame.grid_columnconfigure(0, weight=1)
header_frame.grid_columnconfigure(1, weight=1)
header_frame.grid_columnconfigure(2, weight=1)

h_currency = Label(header_frame, text='Валюта', bg='black', fg='lime', font='Arial 12 bold')
h_currency.grid(row=0, column=0, sticky=EW)
h_course = Label(header_frame, text='Курс', bg='black', fg='lime', font='Arial 12 bold')
h_course.grid(row=0, column=1, columnspan=2, sticky=EW)

# USD курс
usd_currency = Label(header_frame, text='USD', font='Arial 10')
usd_currency.grid(row=1, column=0, sticky=EW)
usd_one = Label(header_frame, text='1', font='Arial 10')
usd_one.grid(row=1, column=1, sticky=EW)
usd_converted = Label(header_frame, text='%.2f' % c.convert(1, 'USD', 'RUB'), font='Arial 10')
usd_converted.grid(row=1, column=2, sticky=EW)

# EUR курс
eur_currency = Label(header_frame, text='EUR', font='Arial 10')
eur_currency.grid(row=2, column=0, sticky=EW)
eur_one = Label(header_frame, text='1', font='Arial 10')
eur_one.grid(row=2, column=1, sticky=EW)
eur_converted = Label(header_frame, text='%.2f' % c.convert(1, 'EUR', 'RUB'), font='Arial 10')
eur_converted.grid(row=2, column=2, sticky=EW)

# GBP курс
gbp_currency = Label(header_frame, text='GPB', font='Arial 10')
gbp_currency.grid(row=3, column=0, sticky=EW)
gbp_one = Label(header_frame, text='1', font='Arial 10')
gbp_one.grid(row=3, column=1, sticky=EW)
gbp_converted = Label(header_frame, text='%.2f' % c.convert(1, 'GBP', 'RUB'), font='Arial 10')
gbp_converted.grid(row=3, column=2, sticky=EW)

calc_frame = Frame(root, bg='black')
calc_frame.pack(expand=1, fill=BOTH)
calc_frame.grid_columnconfigure(1, weight=1)

# RUB
l_rub = Label(calc_frame, text='Рубли: ', bg='black', fg='lime', font='Arial 12 bold')
l_rub.grid(row=0, column=0, padx=10)
e_rub = Entry(calc_frame, justify=CENTER, font='Arial 10')
e_rub.grid(row=0, column=1, columnspan=2, pady=10, padx=10, sticky=EW)

btn_calc = Button(calc_frame, text='Конвертировать', command=exchange)
btn_calc.grid(row=1, column=1, columnspan=2, sticky=EW, padx=10)

res_frame = Frame(root)
res_frame.pack(expand=1, fill=BOTH, pady=5)
res_frame.grid_columnconfigure(1, weight=1)

# USD
l_usd = Label(res_frame, text='USD', font='Arial 10 bold')
l_usd.grid(row=2, column=0)
e_usd = Entry(res_frame, justify=CENTER, font='Arial 10')
e_usd.grid(row=2, column=1, columnspan=2, padx=10, sticky=EW)

# EUR
l_eur = Label(res_frame, text='EUR', font='Arial 10 bold')
l_eur.grid(row=3, column=0)
e_eur = Entry(res_frame, justify=CENTER, font='Arial 10')
e_eur.grid(row=3, column=1, columnspan=2, padx=10, sticky=EW)

# GBP
l_gbp = Label(res_frame, text='GBP', font='Arial 10 bold')
l_gbp.grid(row=4, column=0)
e_gbp = Entry(res_frame, justify=CENTER, font='Arial 10')
e_gbp.grid(row=4, column=1, columnspan=2, padx=10, sticky=EW)

print(c.bounds['USD'])

root.mainloop()
elka.png
247.8 KB
#АнимированнаяОткрытка
Код из видео:

from tkinter import *
from PIL import ImageTk, Image
import random

root = Tk()
root.title('С Новым Годом!')
root.resizable(width=False, height=False)
cWidth = 1280
cHeight = 720
c = Canvas(root, width=cWidth, height=cHeight, bg='#002655')
c.pack()

image = ImageTk.PhotoImage(file='elka.png')
c.create_image(100, 100, image=image, anchor=NW)


def createText():
cText = ('''
Какая сказка за окном!
Кружат снежинки, будто в вальсе,
Весь мир пропитан волшебством,
И воздух переполнен счастьем.

Пусть в этот чудный Новый год
Удача в двери постучится,
И счастье вместе с ней войдет,
И все, что хочешь ты, случится!
''')
c.create_text(cWidth * 2 / 3, cHeight / 2, text=cText, fill='white', font='Times 24 bold')


def createSnow(t, n):
for i in range(500):
x = random.randint(1, cWidth)
y = random.randint(-cHeight * n - 8, cHeight * (1 - n))
w = random.randint(3, 8)
c.create_oval(x, y, x + w, y + w, fill='white', tag=t)


def motion():
👍6🎄1
#УведомленияWindows10
Код из видео:

from win10toast import ToastNotifier

toast = ToastNotifier()

# Добавление уведомления
toast.show_toast('Заголовок', 'Уведомление!', duration=10, icon_path='notepad.ico')

# Можно также сделать так, чтобы уведомления появлялись спустя определённое кол-во времени:
while True:
toast = ToastNotifier()
toast.show_toast('Заголовок', 'Уведомление!', duration=10)
time.sleep(5)

# Функция для создания уведомлений
def windows_popup(title, content, duration=10):
toast = ToastNotifier()
toast.show_toast(title, content, duration=duration, icon_path='notepad.ico')

windows_popup('Заголовок', 'Пора снимать видео!')
windows_popup('Заголовок2', 'Пора снимать второе видео!')
#ГенерацияСлучайныхСтрок
Код из видео:

import random
import string

# Сгенерируем 1 рандомный символ:
print(random.choices(string.ascii_lowercase))

print(''.join(random.choices(string.ascii_lowercase, k=5)))

# Случайная строка в верхнем регистре:
print(''.join(random.choices(string.ascii_uppercase, k=5)))

# Случайная строка в рандомном регистре:
print(''.join(random.choices(string.ascii_letters, k=5)))

# Так же строковые константы можно объединять:
print(''.join(random.choices(string.ascii_uppercase + string.ascii_lowercase, k=5)))
#СозданиеВиджетовНажатиемНаКнопку
Код из видео:

from tkinter import *


def click():
Button(root, text='Кнопка', font='Arial 15 bold', command=click2).pack()
Label(root, text='Какой-то текст').pack()
Entry(root, width=10).pack()


def click2():
Label(root, text='click').pack(expand=1, anchor=E)
Label(root, text='click').pack(expand=1, anchor=W)


root = Tk()
root.geometry('700x700')
root.title('Виждеты')

btn = Button(root, text='Создать виджет', font='Arial 15 bold', command=click)
btn.pack()

root.mainloop()
#ИспользованиеProxyСерверовВPython
Код из видео:

import requests

proxies = {
'https': 'https://ip:порт'
}

data = requests.get('https://ipinfo.io/json', proxies=proxies)

print(data.text)
print(data.json()['city'])
#ИзвлечениеИзображенийИзPDF

Код из видео:

import fitz

file = 'test.pdf'

pdf = fitz.open(file)

for i in range(len(pdf)):
for image in pdf.getPageImageList(i):
xref = image[0]
pix = fitz.Pixmap(pdf, xref)
if pix.n < 5:
pix.writePNG(f'{xref}.png')
else:
pix1 = fitz.open(fitz.csRGB, pix)
pix1.writePNG(f'{xref}.png')
pix1 = None