👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Простая проверка, есть ли список в списке со списками. Да, такой список там есть. 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🧐 Parsing? Yes!
💡 Накидывайте идеи, что еще можно спарсить!
лайки приветствуются
https://youtu.be/TFFhLB_2ilI
лайки приветствуются
https://youtu.be/TFFhLB_2ilI
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Парсим статьи про айтишку на Python с сайта Tproger | Requests BeautifulSoup
В этом видео займемся парсингом. Попробуем спарсить статьи про it - технологии с известного сайта тпрогер. Используем либы bs4 и requests.
Пишите идеи в комменты, что можно было бы еще спарсить прикольное.
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 …
Пишите идеи в комменты, что можно было бы еще спарсить прикольное.
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 …
👍3
cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.
Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию
cProfile.run(), передавая ей строку кода, который вы хотите проанализировать. Вы также можете использовать cProfile в качестве командной строки, передав ему имя файла Python, который вы хотите профилировать. Результаты профилирования могут быть отсортированы по различным критериям, таким как общее время выполнения, время выполнения на вызов и количество вызовов.import cProfile
def sum_of_numbers():
return sum(range(100000))
cProfile.run('sum_of_numbers()')
В этом примере мы профилируем функцию
sum_of_numbers, которая суммирует числа от 0 до 100000.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😱1
Ещё одна задачка с собеседований Microsoft.
Лиса охотится за уткой, и последняя приземляется в центр идеально круглого пруда.
Лиса не может плавать, а утка не может взлететь с воды. Чтобы утка могла сбежать, ей нужно добраться до берега и взлететь. Однако лиса в четыре раза быстрее утки.
Может ли утка добраться до края пруда и улететь, не будучи съеденной? Если да, то каким образом?
Предупреждаю, что тут мало логики, нужна еще и математика.
p.s. ответ дам скоро...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
За время, которое утка преодолеет радиус пруда r, лиса может пробежать 4r. При этом для того, чтобы оказаться на противоположном берегу, лисе нужно пройти всего половину окружности Pi*r, что меньше 4r, ведь Pi = 3.14…
Как же утка может максимально усложнить жизнь лисе? Если она начнёт просто плавать вдоль берега, лиса просто будет бегать за уткой по окружности пруда, и утка останется в ловушке.
Утка может начать двигаться на расстоянии r/4 от центра пруда. Тогда время, за которое утка и лиса совершают полный круг движения, будет равным. После этого утке стоит уменьшить радиус круга, по которому она движется, на малую величину (допустим, дельта). Тогда лиса будет отставать.
Когда утка обгонит лису на 180 градусов, ей придется преодолеть расстояние 3r/(4 + дельта), чтобы достичь края пруда. За это время лиса должна пройти половину окружности пруда.
Лисе потребуется больше времени, чтобы достичь противоположного края пруда, чем утке. Утка сможет доплыть до берега и улететь.
Ключевой вопрос, на который надо ответить — действительно ли длина дуги Лисы более чем в 4 раза превышает длину спирали Утки.
Лиса движется с постоянной максимальной скоростью вокруг озера.
Длина дуги = 4ut, где u — скорость Утки, t — прошедшее время
Угол в радианах, на который она сместилась = lambda=4ut/pi
Получается треугольник со сторонами r (радиус пруда), ut (смещение утки) и углом pi-lambda.
Угол alpha (между вертикальной линией и направлением от Утки к Лисе) = arcsos[(ut+rcos lambda) / sqrt (r^2 + u^2t^2+2utcos lambda)]
Отсюда можно подсчитать радиальную скорость Утки по направлению к краю пруда
ur=(ut+r cos (4t/pi)) / sqrt (r^2+u^2t^2 + 2t cos (4t/pi))
Понятно, что радиально Утка должна проплыть расстояние r, таким образом интеграл по t от ur = r.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Python Hub - сборище Питонистов
Картинка к последнему решению
👍3😱1
Первым шагом является установка модуля 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. В этом случае вы должны проверять статус ответа перед записью файла.
Вот пример кода, который скачивает реальный pdf файл с сайта:
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
👍7
👍5
Что выведет код выше?
Anonymous Quiz
18%
puu
3%
"12300"
10%
('1', '2', '3', '0', '0')
5%
('1', '2', '300')
10%
('1', '2', ('3', '0', '0'))
5%
12300
6%
1 2 3 0 0
15%
default
13%
Error
16%
Не знаю
👍4
Решение задач на кодварсе еще актуально???
Если да, то накиньтесь на видос с лайками и комментами🧑💻 😍
https://www.youtube.com/watch?v=s5ZX-dREpKU
Если да, то накиньтесь на видос с лайками и комментами
https://www.youtube.com/watch?v=s5ZX-dREpKU
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Простые задачи на PYTHON уровня Junior | CODEWARS | Рекурсия, циклы, алгоритмы
В этом видео мы порешаем простые задачи на языке пайтон уровня Джуниор (Junior). Задачи мы будем брать с сайта codewars.
Подписывайся на наш телеграм канал! 👨💻
https://t.me/pythonhub001
И вступай в чат чат 👨💻
https://t.me/pythonhub_chat
Полезные ссылки:…
Подписывайся на наш телеграм канал! 👨💻
https://t.me/pythonhub001
И вступай в чат чат 👨💻
https://t.me/pythonhub_chat
Полезные ссылки:…
👍7
Сегодня я хочу поделиться с вами интересной задачей, которую можно решить с помощью Python - подсчетом количества выходных дней за определенный период времени. Это может быть полезно для расчета времени на отдых, планирования рабочего графика или просто для интереса.
Python имеет встроенный модуль datetime, который предоставляет инструменты для работы с датами и временем. С его помощью можно легко получить текущую дату и время, добавить или вычесть дни, месяцы или годы, а также определить день недели для любой даты.
Создадим функцию, которая принимает на вход две даты и возвращает количество выходных дней между ними. В Python выходные дни - это суббота и воскресенье, которым соответствуют числа 5 и 6 в методе weekday(). Ниже представлен код функции:
import datetime
def count_weekends(start_date, end_date):
total_days = (end_date - start_date).days
weekend_days = 0
for day in range(total_days):
temp_date = start_date + datetime.timedelta(days=day)
if temp_date.weekday() >= 5:
weekend_days += 1
return weekend_days
Теперь, когда функция готова, можно использовать её для подсчета выходных за любой период времени. Например, можно подсчитать, сколько выходных дней будет в следующем году, или сколько выходных было в прошлом месяце.
start_date = datetime.date(2022, 1, 1)
end_date = datetime.date(2023, 1, 1)
print(count_weekends(start_date, end_date))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Первый шаг в создании автообновления страницы - использование библиотеки 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
👍3
Python Hub - сборище Питонистов
Что выведет код выше?
1 строка: тут используется распаковка значений. Про это был пост:
в переменную а попадет первый символ, в b - второй, а в с все остальные
В результате будет a = '1', b = '2', c = ('3', '0', '0')
2 строка: Тут используется оператор match-case. Пост по нему тоже был:
в матч мы передаем содержимое переменных а, b и все елементы (!) из c. (
3 строка: тут вся перлесть конструкции match-case: первый аргумент - это переменная '_', то есть мы получаем первый аргумент без проверки. Потом мы проверяем второй аргумент чтобы был равен 2. А третий - чтобы был равен "300". Данный кейс не выполнится по ряду причин:
1. вторая проверка на 2 не пройдет - в переменной у нас строка с символом "2", а не число (int).
2. следующая проверка тоже не пройдет, логично что там не будет "300"
3. Кол-во передаваемых аргументов не совпадает с кол-во проверок.
5 строка: тут все проще - мы ничего не проверяем, а просто получаем все аргументы в переменную default. Именно этот кейс и сработает.
6 строка: Вывод переменной default.
Вывод: ('1', '2', '3', '0', '0')
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Pyppeteer - это библиотека Python для автоматизации браузера Chromium с помощью Puppeteer JavaScript API. Это мощный инструмент для веб-скрейпинга, тестирования и автоматизации веб-браузера.
Установка Pyppeteer проста и прямолинейна. Все, что вам нужно, это Python 3.6 или выше. Установите Pyppeteer, используя pip:
pip install pyppeteer. В процессе установки Pyppeteer скачает последнюю версию Chromium.Pyppeteer предлагает богатый набор функций для автоматизации веб-браузера. Вы можете автоматизировать ввод данных, клики по ссылкам, скачивание файлов и многое другое.
Одним из самых распространенных применений Pyppeteer является создание снимков веб-страниц. Все, что вам нужно сделать, это создать экземпляр браузера, открыть новую страницу, перейти на URL и сделать снимок.
import asyncio
from pyppeteer import launch
async def take_screenshot(url, save_path):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.screenshot({'path': save_path})
await browser.close()
url = '<https://www.example.com>'
save_path = 'example.png'
asyncio.get_event_loop().run_until_complete(take_screenshot(url, save_path))
Pyppeteer также может быть использован для автоматического тестирования веб-приложений, включая взаимодействие с JavaScript и AJAX.
import asyncio
from pyppeteer import launch
async def test_website(url):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.click('#myButton')
await page.waitForSelector('#myResult')
result = await page.evaluate('document.querySelector("#myResult").innerText')
await browser.close()
return result
url = '<https://www.example.com>'
asyncio.get_event_loop().run_until_complete(test_website(url))
Ссылка на либу
https://pypi.org/project/pyppeteer/
https://pypi.org/project/pyppeteer/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выдаст код выше?
Anonymous Quiz
50%
3 1 2
12%
3 6
10%
[1, 2, 1, 2, 1, 2]
10%
[1, 2][1, 2][1, 2]
11%
Error
7%
Не знаю 😔
👍5🤯1