Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
🤔 Шапки заключённых

Логическая задача от Google😳.
Четверо заключенных были арестованы, но тюрьма переполнена, и тюремщику некуда их посадить. Он решает дать им головоломку. Если они справятся, то выйдут на свободу, а если не справятся, то будут казнены.

Тюремщик выстроил трех человек в линию. Четвертого он посадил за ширму. Каждому заключённому он дал по одной шапке.

Тюремщик объяснил, что есть две черные и две белые шапочки, и каждый заключенный носит одну из них. При этом каждый из заключенных должен видеть только шапки тех, кто находится перед ним, но не собственные шапки или не шапки тех, кто находится позади. Четвертый человек за ширмой не может видеть шапки других заключённых, а они не видят, какая шапка на его голове. Общаться заключённым тоже нельзя.

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

Как заключённым избежать казни?

Стоит ли кидать логические задачи подобного плана?

p.s. ответ дам скоро...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Python Hub - сборище Питонистов
🤔 Шапки заключённых Логическая задача от Google😳. Четверо заключенных были арестованы, но тюрьма переполнена, и тюремщику некуда их посадить. Он решает дать им головоломку. Если они справятся, то выйдут на свободу, а если не справятся, то будут казнены.…
💡 Решение

Заключенные A и B по сути изолированы. У них нет информации, которая помогла бы им дать ответ. Заключенные C и D понимают это, поэтому решение задачи лежит на них.

Заключенный D видит шляпы заключенных B и C. Если бы у B и C были шляпы одного цвета (например, чёрного), то D догадался бы, что на его голове точно должна быть шляпа другого цвета, то есть белого.

Когда время почти истекло, С понимает, что D не может дать ответ. Это значит, что цвет его шляпы отличается от цвета шляпы B, иначе D сразу ответил бы. Поэтому С делает вывод, что на нём черная шляпа, так как он видит белую шляпу В.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😱1
Картинки из видео, разбираем! ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Если мы указываем в срезе, что мы идем от большего индекса к меньшему, то 3-им параметром должны указать шаг. (по умолчанию он равен 1. А от 2 до 1 с шагом в +1 мы никак не доберемся).
В данном примере мы получим пустоту. (ничего).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
💬 Символ перехода на следующую строку в Python и другие специальные символы


➡️ Символ новой строки в Python

В Python символ новой строки представлен как '\n'. Он используется для обозначения конца строки текста и начала новой. Когда интерпретатор Python встречает символ новой строки в строке, он понимает, что нужно перенести строку и начать новую. Например:

print("Привет\nМир")


Этот код напечатает:

Привет
Мир


Это происходит потому, что символ '\n' сигнализирует интерпретатору о начале новой строки после печати "Привет".

➡️ Другие специальные символы в Python

Помимо символа новой строки, Python также поддерживает различные другие специальные символы, которые часто используются с оператором print для форматирования вывода. Например, символ '\t' представляет собой табуляцию, создающую большое пространство в выводе.

print("Привет\tМир")


Этот код напечатает:

Привет   Мир


➡️ Экранированные последовательности в Python

Экранированные последовательности в Python начинаются с обратной косой черты (\) и следуют за символом, который вы хотите вставить. Python интерпретирует экранированную последовательность как один символ. Помимо '\n', '\t', в Python есть несколько других экранированных последовательностей, таких как \' для одинарной кавычки, \" для двойной кавычки и \\ для самой обратной косой черты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤔 Отмеряем нужное количество воды

Эту задачу могут дать на собеседовании.

Представьте, что у вас есть две пустых бутыли для воды объемом в 3 и 5 галлонов. Как отмерить ровно 4 галлона воды?
Запас воды для решения не ограничен.

Прошлый раз задача вам понравилась!

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

p.s. ответ дам скоро...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Python Hub - сборище Питонистов
🤔 Отмеряем нужное количество воды Эту задачу могут дать на собеседовании. Представьте, что у вас есть две пустых бутыли для воды объемом в 3 и 5 галлонов. Как отмерить ровно 4 галлона воды? Запас воды для решения не ограничен. Прошлый раз задача вам понравилась!…
👍 Было много разных версий, но в каком-то смысле они все схожи.

Можете заглянуть в комменты и почитать их самостоятельно!


Выложу те ответы, которые были в исходниках:

Каждую бутылку наполнить на половину (1.5 и 2.5 литра= 4 литра)....

Шутка, конечно 🤡

Вот реальные варики:


Наполняем бутылку в 5 литров, переливаем воду в 3х-литровую, остается 2 литра. Выливаем воду из 3х-литровой, наливаем туда 2 литра. Набираем еще раз 5и-литровую, доливаем в трехлитровую недостающий литр, и в 5-литровой получается 4 литра.

И понравился еще такой:

Две 3х литровки залить в 5ти литровку останеться 1литр потом эту воду залить в 5ти литровку а затем залить 3литра
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🤡1
Замер скорости выполнения части программы с использованием Python с использованием обычной библиотеки time

Один из самых простых способов измерения времени выполнения кода в Python – использование модуля time. Этот модуль предоставляет функцию time(), которая возвращает текущее время в секундах с момента начала эпохи. Вы можете использовать эту функцию до и после куска кода, скорость выполнения которого вы хотите измерить, а затем вычесть одно значение из другого, чтобы получить общее время выполнения.

Пример использования модуля time:

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
👍4
Использование модуля Timeit в Python с примерами


Модуль timeit в Python используется для измерения времени выполнения вашего кода. У него есть как интерфейс командной строки, так и вызываемый интерфейс. Модуль выполнит оператор определенное количество раз (по умолчанию - один миллион) и затем вернет время, затраченное на выполнение. Вот простой пример:

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 с функциями

Вы также можете использовать модуль timeit для измерения времени выполнения функций. Вот пример:

import timeit
def my_function():
return "-".join(str(n) for n in range(100))
print(timeit.timeit(my_function, number=10000))


В этом примере мы сначала определяем функцию с именем my_function. Затем мы измеряем время выполнения этой функции 10 000 раз и выводим результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Что выведет код выше?
Anonymous Quiz
56%
True
10%
False
9%
None
16%
Error
9%
Не знаю
👍5