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

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

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

https://t.me/pythonhub_chat - чат
Download Telegram
Что хранится в файле settings Django?


➡️ DEBUG - параметр, указывающий, включен ли режим отладки. При установке значения True включается режим отладки, который выводит дополнительную информацию об ошибках.

➡️ DATABASES - раздел, отвечающий за настройку базы данных. В этом разделе можно указать тип базы данных, адрес сервера, порт, имя базы данных и другие параметры.

➡️ INSTALLED_APPS - список установленных приложений. В этом разделе указываются все приложения, которые будут использоваться в вашем веб-приложении.

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

➡️ TEMPLATES - раздел, отвечающий за настройку шаблонов.

Это лишь некоторые из наиболее важных параметров, которые могут быть заданы в файле 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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Python Hub - сборище Питонистов
▶️ Задача: Число N по одной Дано натуральное число N. Выведите все его цифры по одной, в обратном порядке, разделяя их пробелами или новыми строками. *(усложнение) При решении этой задачи нельзя использовать строки, списки, массивы, циклы. Разрешена только…
▶️ Разберем задачу

Поступил только 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
Что выдаст код выше?
Anonymous Quiz
17%
-0.19
9%
0.19
43%
0.0
19%
Error
13%
Не знаю
👍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, так как целой части нет, а дробной не останется.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какой тип будет выведен в коде выше?
Anonymous Quiz
19%
class
37%
function
21%
NoneType
2%
int
16%
Будет ошибка
5%
Не знаю
👍3
Что такое GitLab?


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

➡️Управление версиями

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

➡️Совместная работа

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

➡️Непрерывная интеграция и доставка

GitLab также предоставляет инструменты для непрерывной интеграции и доставки (CI/CD), что позволяет автоматизировать процесс сборки, тестирования и развертывания кода. Это ускоряет процесс разработки и повышает качество кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

У нас есть класс a и функция a. Функция была создана позже, поэтому переменная была переопределена на функцию.

Но! В строке b = a(), мы присваиваем в переменную то, что функция вернет. А вернет она None.

Соответственно, ответ: NoneType
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что выдаст код выше?
Anonymous Quiz
2%
30
45%
327
4%
3b
45%
Error
4%
Не знаю
👍4🤣1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Говорим, что теперь тип данный str будем именовать еще и как a.
Дальше заводим переменную b со значением 27.

Ну и вывод a(3) + a(b) —> str(3) + str(b) —> '3' + '27' —> '327'

При сложении строк, они склеиваются.
Ответ: 327
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Что выдаст код выше?
Anonymous Quiz
18%
int
29%
class A
27%
0
20%
Error
6%
Не знаю
👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Унаследовали в класс A класс int.

Далее создали объект, в который ничего не передали.
Если бы мы передали туда какое-то число, то на выходе получили бы это число.

Но так как ничего не передали —> получили 0.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Отрисовка виджетов Tkinter методами .place() и .pack()


➡️ Метод pack()

Метод pack() используется для организации виджетов в блоках перед размещением их в родительском виджете. Когда виджеты упакованы, они автоматически изменяют размеры, чтобы поместиться в доступном пространстве. Метод pack() принимает несколько параметров, таких как side, fill, expand и anchor, которые можно использовать для управления позиционированием виджетов.

Вот пример использования метода pack() для позиционирования виджета кнопки:

import tkinter as tk

root = tk.Tk()

button = tk.Button(root, text="Нажми меня!")
button.pack(side="left", fill="both", expand=True, padx=10, pady=10)

root.mainloop()


В приведенном выше примере мы создаем виджет кнопки и упаковываем его слева в родительском виджете. Мы также устанавливаем параметры fill на both и expand на True, чтобы позволить виджету заполнить доступное пространство. Опции padx и pady добавляют отступы к виджету.

➡️ Метод place()

Метод place() используется для позиционирования виджетов в конкретных координатах внутри родительского виджета. В отличие от pack(), метод place() не автоматически изменяет размеры виджетов, что может усложнить создание отзывчивых макетов. Метод place() принимает несколько параметров, таких как x, y, width, height и anchor, которые можно использовать для управления позиционированием виджетов.

Вот пример использования метода place() для позиционирования виджета метки:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Привет, мир!")
label.place(x=50, y=50)

root.mainloop()


В приведенном выше примере мы создаем виджет метки и размещаем его в координатах (50, 50) внутри родительского виджета.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4