Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Мы кладем в переменные a и b разные классы. Хоть и называются они одинаково, но у нас происходит пересоздание/переопределение. Если мы проверим через данные через команду id(a) , id(b) —> получим разные id'шники. Это абсолютно разные сущности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Оператор "is" в Python сравнивает идентичность объектов, а не их эквивалентность. Это означает, что он проверяет, указывают ли две переменные на один и тот же объект в памяти. Если два объекта имеют одинаковое значение, это не обязательно означает, что они идентичны. Они могут быть разными объектами в памяти.
Вот примеры использования оператора "is" в Python:
x = [1, 2, 3]
y = x
print(x is y) # True
В этом примере мы создали список "x" и присвоили его переменной "y". Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "True", потому что "x" и "y" указывают на один и тот же объект в памяти.
x = [1, 2, 3]
y = [1, 2, 3]
print(x is y) # False
В этом примере мы создали два разных списка "x" и "y", которые содержат одинаковые значения. Затем мы использовали оператор "is", чтобы проверить, указывают ли "x" и "y" на один и тот же объект в памяти. Результатом является "False", потому что "x" и "y" являются разными объектами в памяти, даже если они содержат одинаковые значения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Есть список a. Далее мы создаем переменную b - копию списка а.
Копия позволяет создать другой объект, но с тем же наполнением.
Проверка через is проверяет указывают ли переменные на один и тот же объект.
Ответ: нет —> False
Копия позволяет создать другой объект, но с тем же наполнением.
Проверка через is проверяет указывают ли переменные на один и тот же объект.
Ответ: нет —> False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что выдаст код выше?
Anonymous Quiz
40%
[None, None, None]
23%
[0, 1, 2, 3]
23%
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3]]
9%
Error
5%
Не знаю
👍3
Важно, чтобы было картинкой и на русском. Может кому-то будет интересно и полезно.
Если у вас тоже есть roadmap, то поделитесь в комментариях🥹
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🤝1
Python Hub - сборище Питонистов
*новая картинка
Разбор 👨💻
Мы создаем пустой список b.
Далее мы пробегаемся циклом по числам от 0 до 2, добавляя их в список b, а результаты, которые возвращает функция append() кладем в список a.
Порядочные люди знают, что append() ничего не возвращает —> возвращает None. Таким образом, ответом будет являться список из 3-ех None —> [None, None, None]
p.s. там даже случайно в других вариках была допущена ошибка. Список генерирует 3 элемента, а там списки, где доходит до 4-ех.
Далее мы пробегаемся циклом по числам от 0 до 2, добавляя их в список b, а результаты, которые возвращает функция append() кладем в список a.
Порядочные люди знают, что append() ничего не возвращает —> возвращает None. Таким образом, ответом будет являться список из 3-ех None —> [None, None, None]
p.s. там даже случайно в других вариках была допущена ошибка. Список генерирует 3 элемента, а там списки, где доходит до 4-ех.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Число N по одной
Дано натуральное число N. Выведите все его цифры по одной, в обратном порядке, разделяя их пробелами или новыми строками.
*(усложнение)
При решении этой задачи нельзя использовать строки, списки, массивы, циклы. Разрешена только рекурсия и целочисленная арифметика. Использовать операцию получения остатка от деления, и операцию целочисленного деления.
Ответы пишите в комментарии или присылайте в предложку!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👍4❤1
Что выдаст код выше?
Anonymous Quiz
20%
False False
15%
True True
30%
True False
33%
False True
0%
Error
3%
Не знаю
👍3
Это лишь некоторые из наиболее важных параметров, которые могут быть заданы в файле settings.py.
Настройки редактируются в процессе написания программы в зависимости от потребностей проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
В одном из постов говорилось о том, что метод append() ничего не возвращает.
Поэтому сравнение в принте можно переписать —> not None == None
None == None ? Да! —> True. НО!
У нас же есть not. not True —> False
Ответ: False
Поэтому сравнение в принте можно переписать —> not None == None
None == None ? Да! —> True. НО!
У нас же есть not. not True —> False
Ответ: False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Сразу отметим, что метод sort() сортирует исходный список и возвращает None.
Функция sorted() возвращает отсортированный список.
Получается, что на 3-й строке в b будет занесено None, а список a отсортируется.
Далее, в 4-й строке мы занесем отсортированный список в переменную c. (результат же возвращается)
Ну и теперь в принте осталось проверить:
[1, 2, 3, 10] == None , [1, 2, 3, 10] == [1, 2, 3, 10]
False, True
Функция sorted() возвращает отсортированный список.
Получается, что на 3-й строке в b будет занесено None, а список a отсортируется.
Далее, в 4-й строке мы занесем отсортированный список в переменную c. (результат же возвращается)
Ну и теперь в принте осталось проверить:
[1, 2, 3, 10] == None , [1, 2, 3, 10] == [1, 2, 3, 10]
False, True
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Python Hub - сборище Питонистов
Поступил только 1 ответ, поэтому начнем рассмотрение с него.
Создание анонимной функции s(), в которую требуется передать число.
s = lambda x: '' if not x else str(x%10)+'\n'+s(x//10) Теперь давайте представим это в виде обычной функции для наглядности:
def s(x): # создаем функцию
if not x: #проверяем, что x != 0 <-- not 0 <-- not False <-- True
return '' # возвращаем пустой текст
else:
return str(x % 10) + '\n' + s(x // 10) #переводим остаток от деления на 10 в строку, прибавляем переход на новую строку, прибавляем вызов функции s (рекурсия), куда передаем число, деля его целочисленно на 10 --> обрубаем последнюю цифру, так как остаток уже достал нам ее
Суть заключается в том, что мы можем брать последнюю цифру числа при помощи остатка от деления на 10 ( x%10), а потом обрубать эту последнюю цифру при помощи целочисленного деления ( x//10).Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
👍4🤡4
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Все мы знаем, что round() округляет число до n знаков после точки.
Но что будет, если мы округлим до -n?
Он будет округлять целую часть, оставив в дробной .0
Вот наглядный пример:
value = 123456
print(round(value, -1))
# 123460
print(round(value, -2))
# 123500
print(round(value, -3))
# 123000
print(round(value, -4))
# 120000
В нашем случае получим 0.0, так как целой части нет, а дробной не останется.
Но что будет, если мы округлим до -n?
Он будет округлять целую часть, оставив в дробной .0
Вот наглядный пример:
value = 123456
print(round(value, -1))
# 123460
print(round(value, -2))
# 123500
print(round(value, -3))
# 123000
print(round(value, -4))
# 120000
В нашем случае получим 0.0, так как целой части нет, а дробной не останется.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2