Рубрики
Без рубрики

Случайные хитрости Python для Случайные настроения ✨.

Если вы использовали Python в течение довольно продолжительности, вы уже можете быть знакомы со всеми, или большинство … Теги с Python, начинающими, трюками.

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

Это также будет включать фрагменты, поэтому вы можете просто открыть интерактивную оболочку Python и начать вместе с примерами.

✨ Давайте начнем с чего-то маленького и один лайнер

Одной из основных концепций кода является максимально написать как можно меньше кода и сделать код как можно более многоразовым. Функции – это один из способов, да – один пример, которые каждый дает при разговоре о воспроизведении. Давайте сберем на одну ступеньку. Скажем, вы хотите список в Python длины 5 со всеми элементами как 1. Написать это как lst = [1, 1, 1, 1, 1] будет способ пойти, верно? Но не так … Повторяясь, и мы отвлекаем от повторного использования, о которых говорится? Хорошие новости, мы можем сократить наши усилия здесь. Мы можем написать это как: lst = [1]*5 Это также следует для строк. Если вы хотите, например, чтобы скрыть номер телефона и показать только последние 3 цифры номера пользователю, вы можете сделать что-то вроде:

number = '1234567890'
hidden_number = "x"*7 + number[-3:]
'xxxxxxx890'

✨ обратная строка/список в щелчке

Если вы пойдете из C/C ++, вы, вероятно, я бы явно помню итерацию от последнего элемента и копируя его на новую переменную для получения обратной строки/массива. С Python вы можете:

a = [1, 2, 3, 4, 5]
a[::-1]
[5, 4, 3, 2, 1]

✨ еще не только если брать брат, но и для брат или сестра

еще это то, что все учебные покрытия условными. Это тот же старый Если это, то это; еще это Отказ Но знаете ли вы, что мы можем использовать еще С нашим другом любимым членом семьи – для ? Вот как это происходит. Ты помнишь время, когда вы бы Перерыв Из цикла, когда вы что-то нашли, или условие удовлетворено, и вы будете использовать флаг прямо до того, как вы получили цикл, чтобы код после того, как код после того, как сердечник знаешь, что вы ударили перерыв В частности, и это был не обычный конец цикла? Использование для ... Элсе Устраняет использование флагов с более простым синтаксисом.

a = [1, 3, 5, 7, 9]
b = [1, 3, 2, 5, 7, 9]

for i in a:
    if i % 2 == 0:
        print("list contains even elements")
        break
else:
    print("list has no even elements")

>>> list has no even elements

for i in b:
    if i % 2 == 0:
        print("list contains even elements")
        break
else:
    print("list has no even elements")

>>> list contains even elements

✨ revelio

Предположим, у вас есть объект Python, это может быть что-то – функции/модули/словари, и его можно создавать или получать через API или сторонний код. Часто мы должны знать список атрибутов и методов, которые доступны на объекте. Вместо того, чтобы смотреть на код, мы можем просто перечислить те, кто использует Dir Отказ

class Example:
    name = "example"
    ex_id = 1
    def ex_print(self):
        print("example instance")

>>> ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'ex_id', 'ex_print', 'name']

Вышеуказанный список – это список атрибутов и методов объекта без значений. Обратите внимание на ex_id , Ex_Print , имя В списке – это может прийти очень удобно при работе с объектами и знать, какие методы/атрибуты доступны на них.

✨ Передача атрибутов функции для неизвестного

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

Если вы работали с Django Orm, вы бы знали, что Фильтр () Принимает кучу значений фильтра. Для тех, кто новый для этого: В Django базы данных сделаны проще с комплектным соотношением объектов. Это также облегчает запрос базы данных для определенных записей. Предположим, у нас есть таблица пользователей, которые могут быть сотрудниками или нет, и принадлежат к определенному отделению Организации. Короче говоря, мы хотим функцию, которая выбирает записи на основе различных комбинаций фильтра и рассчитывает их точки рейтинга для планов по выгод Организации. Один из способов сделать это, чтобы получить записи отдельно для каждой комбинации фильтра, которые нам нужны, а затем рассчитайте точки ранжирования, или другой будет выполнять фильтрацию внутри функции. Мы пойдем со последним вариантом для этой статьи. Давайте посмотрим более подробно:

Для фильтрации синтаксис идет

records = UserTable.objects.filter(is_staff=, department=)```
{% endraw %}


Instead of saying {% raw %}`department=None`{% endraw %} (which would search for None values) when not wanting o filter on the department, we could just not pass the department to the filter - it's optional! But we do need only one instruction that would handle all the combinations and cases. Maybe an example would help:
{% raw %}

```python
args1 = {'is_staff': True}
args2 = {'is_staff': True, 'department': 'Mgmt'}
args3 = {'department': 'Ops'}

Пусть это будут 3 фильтра, которые вы хотите выполнить, но у вас есть общая функция, где вы хотите пройти значения фильтрации:

def get_ranking(args):
   members = UserTable.objects.filter(**args)
   for member in  members:
        # do something
        pass

С этим нам не нужно беспокоиться о звонке get_ranking () с разными наборами аргументов. Мы можем:

rankings = get_ranking(args1)
rankings = get_ranking(args2)
rankings = get_ranking(args3) 

Вот что функция на самом деле распаковывает:

members = UserTable.objects.filter(**args)
members = UserTable.objects.filter(is_staff=True)    # with args1
members = UserTable.objects.filter(is_staff=True, department='Mgmt')    # with args2
members = UserTable.objects.filter(department='Ops')    # with args3

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

Оригинал: “https://dev.to/veedhee/random-python-tricks-for-random-moods-4g82”