Справочник Программиста
6.28K subscribers
1.35K photos
387 videos
64 files
1.7K 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
#TkinterБлокнот
Код из видео:

from tkinter import *
from tkinter import messagebox
from tkinter import filedialog


def chenge_theme(theme):
text_fild['bg'] = view_colors[theme]['text_bg']
text_fild['fg'] = view_colors[theme]['text_fg']
text_fild['insertbackground'] = view_colors[theme]['cursor']
text_fild['selectbackground'] = view_colors[theme]['select_bg']


def chenge_fonts(fontss):
text_fild['font'] = fonts[fontss]['font']


def notepad_exit():
answer = messagebox.askokcancel('Выход', 'Вы точно хотите выйти?')
if answer:
root.destroy()


def open_file():
file_path = filedialog.askopenfilename(title='Выбор файла', filetypes=(('Текстовые документы (*.txt)', '*.txt'), ('Все файлы', '*.*')))
if file_path:
text_fild.delete('1.0', END)
text_fild.insert('1.0', open(file_path, encoding='utf-8').read())


def save_file():
file_path = filedialog.asksaveasfilename(filetypes=(('Текстовые документы (*.txt)', '*.txt'), ('Все файлы', '*.*')))
f = open(file_path, 'w', encoding='utf-8')
text = text_fild.get('1.0', END)
f.write(text)
f.close()


root = Tk()
root.title('Текстовый редактор')
root.geometry('600x700')
root.iconbitmap('notepad.ico')

main_menu = Menu(root)

# Файл
file_menu = Menu(main_menu, tearoff=0)
file_menu.add_command(label='Открыть', command=open_file)
file_menu.add_command(label='Сохранить', command=save_file)
file_menu.add_separator()
file_menu.add_command(label='Закрыть', command=notepad_exit)
root.config(menu=file_menu)

# Вид
view_menu = Menu(main_menu, tearoff=0)
view_menu_sub = Menu(view_menu, tearoff=0)
font_menu_sub = Menu(view_menu, tearoff=0)
view_menu_sub.add_command(label='Тёмная', command=lambda: chenge_theme('dark'))
view_menu_sub.add_command(label='Светлая', command=lambda: chenge_theme('light'))
view_menu.add_cascade(label='Тема', menu=view_menu_sub)

font_menu_sub.add_command(label='Arial', command=lambda: chenge_fonts('Arial'))
font_menu_sub.add_command(label='Comic Sans MS', command=lambda: chenge_fonts('CSMS'))
font_menu_sub.add_command(label='Times New Roman', command=lambda: chenge_fonts('TNR'))
view_menu.add_cascade(label='Шрифт...', menu=font_menu_sub)
root.config(menu=view_menu)

# Добавление списков меню
main_menu.add_cascade(label='Файл', menu=file_menu)
main_menu.add_cascade(label='Вид', menu=view_menu)
root.config(menu=main_menu)

f_text = Frame(root)
f_text.pack(fill=BOTH, expand=1)

view_colors = {
'dark': {
'text_bg': 'black', 'text_fg': 'lime', 'cursor': 'brown', 'select_bg': '#8D917A'
},
'light': {
'text_bg': 'white', 'text_fg': 'black', 'cursor': '#A5A5A5', 'select_bg': '#FAEEDD'
}
}

fonts = {
'Arial': {
'font':'Arial 14 bold'
},
'CSMS': {
'font': ('Comic Sans MS', 14, 'bold')
},
'TNR': {
'font': ('Times New Roman', 14, 'bold')
}
}

text_fild = Text(f_text,
bg='black',
fg='lime',
padx=10,
pady=10,
wrap=WORD,
insertbackground='brown',
selectbackground='#8D917A',
spacing3=10,
width=30,
font='Arial 14 bold'
)
text_fild.pack(expand=1, fill=BOTH, side=LEFT)

scroll = Scrollbar(f_text, command=text_fild.yview)
scroll.pack(side=LEFT, fill=Y)
text_fild.config(yscrollcommand=scroll.set)

root.mainloop()
❤‍🔥4
from newspaper import Article

url = ''

article = Article(url)

article.download()
article.parse()

print(article.title)
print(article.text)
Надеюсь вас не напрягают эти чёрные полосы, которые теперь присутствуют в видео.
Это нужно для улучшения качества видео)
#ГенераторИдей
Код из видео:

from random import *

idea = []
words = open('words.txt', encoding='utf-8')
for i in words:
idea.append(i.replace('\n', ''))

enterWord = ''
print('Генератор идей')

while enterWord != 'exit':
print(idea[randint(0, len(idea) - 1)] + '-' + idea[randint(0, len(idea) - 1)])
enterWord = input('Для генерации следующей пары слов нижмите \'Enter\', \n для выхода нажмите \'exit\'')
#pygame
Код из видео:

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption('Тестовый заголовок')

RED = (255, 0, 0)
running = True
while running:
pygame.time.delay(100)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(RED)
pygame.display.flip()
pygame.quit()
#TkinterПереводчик
Код из видео:

from tkinter import *
from googletrans import Translator


def tran():
text = t.get('1.0', END)
a = translator.translate(text, dest='en')
t1.delete('1.0', END)
t1.insert('1.0', a.text)


root = Tk()
root.geometry('500x350')
root.title('Переводчик')
root.resizable(width=False, height=False)
root['bg'] = 'black'
translator = Translator()

label = Label(root, fg='white', bg='black', font='Arial 15 bold', text='Введите текст на русском')
label.place(relx=0.5, y=30, anchor=CENTER)
t = Text(root, width=35, height=5, font='Arial 12 bold')
t.place(relx=0.5, y=100, anchor=CENTER)

btn = Button(root, width=45, text='Перевести', command=tran)
btn.place(relx=0.5, y=180, anchor=CENTER)

t1 = Text(root, width=35, height=5, font='Arial 12 bold')
t1.place(relx=0.5, y=260, anchor=CENTER)

root.mainloop()
👍6
#pygameСпрайты
Код из видео:

import pygame

RED = (255, 0, 0)
YELLOW = (255, 255, 0)
WIDTH = 800
HEIGHT = 650


class Player(pygame.sprite.Sprite):
def init(self):
pygame.sprite.Sprite.init(self)
self.image = pygame.Surface((50, 50))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.center = (WIDTH / 2, HEIGHT / 2)

def update(self):
self.rect.x += 5
if self.rect.left > WIDTH:
self.rect.right = 0


pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('Тестовый заголовок')
all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)


running = True
while running:
pygame.time.delay(10)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

all_sprites.update()
screen.fill(YELLOW)
all_sprites.draw(screen)
pygame.display.flip()
pygame.quit()
#MinecraftНаПитоне
Код из видео:

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController


class Voxel(Button):
def init(self, position=(0, 0, 0)):
super().init(
parent=scene,
position=position,
model='cube',
origin_y=0.5,
texture='white_cube',
color=color.white,
highlight_color=color.lime
)

def input(self, key):
if self.hovered:
if key == 'right mouse down':
voxel = Voxel(position=self.position + mouse.normal)

if key == 'left mouse down':
destroy(self)


app = Ursina()

for z in range(15):
for x in range(15):
voxel = Voxel(position=(x, 0, z))

player = FirstPersonController()

app.run()
#Qrcodepython
Код из видео:

Создание qr-code

import qrcode
data = "https://www.youtube.com/channel/UC_aTa7Q7gFN5eaKKmGO8jXg"
filename = "youtube.png"
img = qrcode.make(data)
img.save(filename)


Считывание qr-code

import cv2
img = cv2.imread("youtube.png")
detector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = detector.detectAndDecode(img)

print(f"Ссылка:\n{data}")
🔥1