string, которые нужно знать начинающему программисту.—
string.ascii_letters: строка со всеми буквами английского алфавита (строчными и прописными).—
string.digits: строка со всеми цифрами.—
string.hexdigits: строка со всеми шестнадцатеричными цифрами.—
string.octdigits: строка со всеми восьмеричными цифрами.—
string.punctuation: строка со всеми знаками пунктуации.—
string.whitespace: строка со всеми пробельными символами.import string
def is_alpha(s):
return all(char in string.ascii_letters for char in s)
print(is_alpha("HelloWorld")) # True
print(is_alpha("Hello World!")) # False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤6🔥5
from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
z: float
point = Point(1.5, 2.0, -3.7)
print(point) # Вывод: Point(x=1.5, y=2.0, z=-3.7)
print(point.x) # Вывод: 1.5
print(point.y) # Вывод: 2.0
print(point.z) # Вывод: -3.7
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤6🔥3
Сортировка слиянием работает путем разделения неотсортированного массива на две половины, сортировки каждой из них отдельно, а затем слияния двух отсортированных массивов обратно в один. Это делается рекурсивно, что означает, что процесс разделения и слияния продолжается, пока весь массив не будет отсортирован.
В Python сортировка слиянием может быть реализована с помощью стандартной библиотеки. Функция
merge_sort принимает список в качестве аргумента и возвращает отсортированный список. Она делит список на две половины, рекурсивно вызывает себя для каждой половины, а затем объединяет два отсортированных списка в один.def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_half = merge_sort(arr[:mid])
right_half = merge_sort(arr[mid:])
return merge(left_half, right_half)
def merge(left, right):
merged = []
left_index = 0
right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
merged.append(left[left_index])
left_index += 1
else:
merged.append(right[right_index])
right_index += 1
merged += left[left_index:]
merged += right[right_index:]
return merged
Сортировка слиянием имеет несколько ключевых преимуществ. Во-первых, она эффективна, с временем выполнения O(n log n). Во-вторых, она стабильна, что означает, что она сохраняет исходный порядок равных элементов. Однако у нее есть и недостатки. Она требует дополнительное пространство для хранения промежуточных результатов, что может быть проблемой для больших данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥1
random.randint(). Но насколько случайными являются числа, которые генерирует эта функция?С точки зрения программирования, идеальной случайности не существует. Даже функция
random.randint() в Python генерирует так называемые псевдослучайные числа. Это значит, что хотя числа кажутся случайными, они на самом деле генерируются с использованием определенного алгоритма, который может повторяться при определенных условиях.Функция
random.randint() использует алгоритм Мерсенна Твистер, который является одним из наиболее широко используемых алгоритмов для генерации псевдослучайных чисел. Он основан на математических принципах и генерирует последовательности чисел, которые в действительности предсказуемы, если известно достаточно много предыдущих чисел в последовательности.Значение seed играет важную роль в генерации псевдослучайных чисел в Python. Если вы используете функцию
random.seed() с определенным значением перед вызовом random.randint(), вы будете получать одну и ту же последовательность "случайных" чисел каждый раз, когда вы запускаете свой код. Это может быть полезно для отладки и воспроизводимости результатов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥2
Существуют два типа копирования в Python - поверхностное и глубокое. Поверхностное копирование создает новый объект, но заполняет его ссылками на оригинальные дочерние объекты. Глубокое копирование, с другой стороны, создает новый объект и рекурсивно добавляет копии дочерних объектов оригинала. Выбор между этими двумя зависит от ваших конкретных потребностей.
Когда вы работаете с изменяемыми объектами, такими как списки или словари, изменение копии может повлиять на оригинал. Это может привести к неожиданным побочным эффектам в вашем коде. Создание копии объекта позволяет вам вносить изменения без воздействия на оригинальный объект.
Создание копий объектов может помочь улучшить производительность вашего кода. Когда вы работаете с большими объектами или структурами данных, изменение оригинала может быть ресурсоемким процессом. Создание копии и работа с ней, вместо оригинала, может сэкономить время и ресурсы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤6🔥1
import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))
"-".join(str(n) for n in range(100)) 10 000 раз и выведет затраченное на это время.Вы также можете использовать модуль timeit для измерения времени выполнения функций. Вот пример:
import timeit
def my_function():
return "-".join(str(n) for n in range(100))
print(timeit.timeit(my_function, number=10000))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2
import time
start_time = time.time()
# Код, скорость выполнения которого вы хотите измерить
for i in range(0, 10000):
pass
end_time = time.time()
execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥2
В Python символ новой строки представлен как '\n'. Он используется для обозначения конца строки текста и начала новой. Когда интерпретатор Python встречает символ новой строки в строке, он понимает, что нужно перенести строку и начать новую. Например:
print("Привет\nМир")Привет
Мир
Это происходит потому, что символ '\n' сигнализирует интерпретатору о начале новой строки после печати "Привет".
Помимо символа новой строки, Python также поддерживает различные другие специальные символы, которые часто используются с оператором print для форматирования вывода. Например, символ '\t' представляет собой табуляцию, создающую большое пространство в выводе.
print("Привет\tМир")Привет Мир
Экранированные последовательности в Python начинаются с обратной косой черты (\) и следуют за символом, который вы хотите вставить. Python интерпретирует экранированную последовательность как один символ. Помимо '\n', '\t', в Python есть несколько других экранированных последовательностей, таких как \' для одинарной кавычки, \" для двойной кавычки и \\ для самой обратной косой черты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3⚡1
👍6😁4❤2🔥2🤬2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7🤬2👏1
cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.
Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию
cProfile.run(), передавая ей строку кода, который вы хотите проанализировать. Вы также можете использовать cProfile в качестве командной строки, передав ему имя файла Python, который вы хотите профилировать. Результаты профилирования могут быть отсортированы по различным критериям, таким как общее время выполнения, время выполнения на вызов и количество вызовов.import cProfile
def sum_of_numbers():
return sum(range(100000))
cProfile.run('sum_of_numbers()')
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥4
Первым шагом является установка модуля requests, если он еще не установлен. Он является одним из основных модулей Python, которые используются для отправки HTTP-запросов. Вы можете установить его, используя pip:
pip install requests.Скачивание файла с помощью requests довольно прямолинейно. Вам просто нужно сделать запрос к URL-адресу файла, который вы хотите скачать, а затем записать ответ в файл. Вот пример кода, который скачивает изображение с интернета:
import requests
url = '<https://example.com/image.jpg>'
response = requests.get(url)
with open('image.jpg', 'wb') as f:
f.write(response.content)
Важно обрабатывать возможные ошибки при скачивании файла. Если файл не найден или произошла другая ошибка, requests вернет код ответа, отличный от 200. В этом случае вы должны проверять статус ответа перед записью файла.
import requests
headers = {'referer': 'https://nottka.com/4364-yoshinao-nakada-etude-allegro.html'}
response = requests.get('https://nottka.com/index.php?do=download&id=4420', headers=headers)
with open('4420.pdf', 'wb') as file:
file.write(response.content)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2
Этот метод извлекает ресурс с сервера. Он идемпотентен: несколько идентичных запросов возвращают один и тот же результат.
Этот метод обновляет или создает ресурс. Он также идемпотентен: несколько идентичных запросов обновят один и тот же ресурс.
Этот метод используется для создания новых ресурсов. Он не идемпотентен: два одинаковых POST-запроса создадут дублированные ресурсы.
Этот метод используется для удаления ресурса. Он идемпотентен: несколько идентичных запросов удалят один и тот же ресурс.
Метод PATCH применяется для частичного изменения ресурса.
Метод HEAD запрашивает ответ, идентичный GET-запросу, но без тела ответа.
Метод CONNECT устанавливает туннель к серверу, идентифицированному целевым ресурсом.
Этот метод описывает параметры связи для целевого ресурса.
Этот метод выполняет тест возврата сообщения по пути к целевому ресурсу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥3
Первый шаг в создании автообновления страницы - использование библиотеки Selenium. Selenium - это набор инструментов для автоматизации веб-браузеров. Он позволяет Python взаимодействовать с браузером, как если бы это делал человек. С помощью Selenium мы можем открыть веб-страницу и обновить ее.
from selenium import webdriver
driver = webdriver.Firefox() # или любой другой браузер
driver.get('<http://www.example.com>')
Второй шаг - это использование метода refresh в Selenium. Этот метод позволяет обновить текущую страницу. В комбинации с библиотекой time в Python, мы можем настроить скрипт так, чтобы он автоматически обновлял страницу через определенные интервалы времени.
import time
while True:
driver.refresh() # обновляем страницу
time.sleep(10) # ждем 10 секунд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥3
Функция
keyboard.add_hotkey() в Python позволяет вам назначить определенную функцию на клавиатурный ярлык, известный как горячая клавиша. Эта функция принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии горячей клавиши. Синтаксис следующий: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False). Горячей клавишей может быть одна клавиша, комбинация клавиш или даже последовательность клавиш.Функция
keyboard.add_hotkey() очень удобна для автоматизации задач и увеличения интерактивности ваших скриптов на Python. Например, вы можете использовать ее, чтобы создать простой кейлоггер, автоматизировать создание скриншотов или даже создать пользовательский ярлык для определенной задачи в вашем приложении на Python. Однако очень важно использовать эту функцию ответственно и этично, учитывая ее возможное злоупотребление.Для иллюстрации рассмотрим пример, в котором мы хотим напечатать "Привет, Мир!" при нажатии клавиш 'Ctrl + H'. Сначала нам нужно импортировать модуль
keyboard. Если он не установлен, используйте pip для его установки. Затем мы определяем нашу функцию и добавляем горячую клавишу следующим образом:import keyboard
def hello_world():
print("Привет, Мир!")
keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()
hello_world, и "Привет, Мир!" выводится на консоль.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥4