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

Пять ++ крутых фрагментов Python, которые будут взорвать ваш разум (часть – 1)

Введение Python является одним из самых популярных в мире и запрограммировании по требованию … Теги с Python, начинающими, CodeNewie, программированием.

Python является одним из самых популярных в мире языков программирования в мире. Это по многим причинам:

  • Легко учить
  • Универсальный
  • Огромный ассортимент модулей и библиотек

Я почти пользуюсь питоном ежедневно. По пути я поднял несколько умных, но полезных трюков и советов, которые наверняка заставит вас подумать.

Здесь я поделился 5+ из них 😉

>>> (False == False) in [False] # makes sense
False
>>> False == (False in [False]) # makes sense
False
>>> False == False in [False] # now what?

Первые два имеет смысл, но что подумать, третий будет печать?

Даже если вы даете или делаете это в противном случае в обоих случаях, вы получите ответ как «ложь», но это неправильно. Почему?

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

Если A, B, C, …, Y, Z – выражения и OP1, OP2, …, OPN являются операторами сравнения, затем OP1 B OP2 C … y Opn z эквивалентно OP1 B и B OP2 C и … y opn. z.

Поэтому третье выражение будет оценивать как (False) и (false в [false]) Который выходит Правда Отказ

Чтобы узнать больше об этом, отправляйтесь к этому СВЯЗЬ

for x in range(7):
    if x == 6:
        print(x)
print(x)

Первое утверждение печати кажется довольно легко, верно? Это просто будет печатать 6 из-за того, что, если мы поставили. Но как насчет второго оператора печати?

Должен ли он не бросить ошибку, так как вариабельная «X» теперь не имеет значения, и X никогда не определялась за пределами объема для петли …

Но на самом деле это снова напечатает «6». Это связано с тем, что в Python для петель используют массу, в которой они существуют и оставьте их определенную переменную петля позади.

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

У простых слов Python не имеет блоков, в отличие от C/C ++ или Java. Единственный навес в Python – это функция . Если вы объявите переменную в функции, вы можете использовать ее в любом месте внутри него, не имея никаких проблем.

Если вы энтузиасты JavaScript, то для вас есть что-то еще 😉.

Если вы переведете этот код в JavaScript, он сначала будет напечатать «6», а затем «7».

Причина этого – это способ, которым мы итерация в Python. Набор значений, которые переменяют «X», будут явно определяться перед запуском «для цикла». Что не так с JavaScript.

def func(default_arg=[]):
    default_arg.append("python")
    return default_arg

print(func())
print(func())
print(func())

Как вы думаете, что будет выходом вышеуказанного кода? Это очень интуитивно понятно, что мы получим:

['python']
['python']
['python']

Но опять же это не так. Аргумент по умолчанию является мультиремным объектом, таким как «Список» в нашем случае, Python создает его, когда вы определяете функцию, а не каждый раз, когда вы призываете его.

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

Таким образом, правильный выход будет:

['Python']
['python', 'python']
['python', 'python', 'python']

ПРИМЕЧАНИЕ. Когда мы явно пройдем [] на «Func» в качестве аргумента, значение по умолчанию для переменной default_arg не будет использоваться, поэтому функция вернутся как ожидалось, a.e [‘python’] [«Питон»] [«Питон»].

Чтобы узнать больше о мультипных/неизменных объектах в Python, проверьте это СВЯЗЬ

def func():
    try:
        return 'from_try'
    finally:
        return 'from_finally'

print(func()) #What will get printed?

Если вы внимательно посмотрите на вышеуказанный код, вы увидите оператор возврата внутри блока «попробуйте». Согласно этому, он должен напечатать «из_три» в качестве вывода.

Но Python Docs штат:

Когда вернуть ** BREAK ** или ** Продолжить ** Заявление выполняется в Shree Suite A TRY … Наконец-то выясните, что предложение окончательно выполняется «на выходе».

Возвращаемое значение функции определяется выполнением последнего оператора возврата. Поскольку флажок окончательно выполняется, оператор возврата, выполняемое в точке Наконец, всегда будет выполнен последним. Следовательно, правильный выход будет from_finally Отказ

>>> a = 256
>>> b = 256
>>> a is b
True

>>> a = 257
>>> b = 257
>>> a is b
>>> ?

С первого верно, второй должен также быть правдой. не так ли?

Ну нет. Правильный ответ – Ложь Отказ Причина 256 – это существующий объект, но 257 нет.

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

Согласно документам Python:

Текущая реализация сохраняет массив целочисленных объектов для всех целых чисел от -5 до 256, когда вы создаете INT в этом диапазоне, вы просто вернетесь ссылкой на существующий объект.

Вот почему, когда вы присваиваете A & B до 257, генерируются две разные ссылки и «IS» проверяет, если оба операнда относятся к тому же объекту, который не соответствует действительности в этом случае.

Так что это были 5 прохладных причудливых питонов. Я надеюсь, что вам их понравились и надеюсь, что наклон чего-то нового. Но так как заголовок содержит « Пять ++ Фрагменты Python “, у меня есть одна дополнительная часть для вас, которые я уверен, вам понравится 👇

Вы знаете, что вы можете использовать Emojis в вашем коде Python?

Да, Это верно

>>import emoji
>>print(emoji.emojize('Python is amazing :thumbs_up:'))
Python is amazing 👍

Вот твой Emoji Cheat Lists Отказ Идите и попробуйте это …

Если вам понравилось эти советы и трюки, подумайте о том, чтобы следовать за мной на Twitter потому что это где я больше всего активно разделяю такие трюки Python вместе с другими темами, такими как Docker, Kubernetes, структура данных и алгоритмы данных

Если вам нравится то, что вы читаете здесь, и хотите показать поддержку, подумайте о покупке мне кофе ☕

Оригинал: “https://dev.to/apoorvtyagi/five-cool-python-snippets-that-will-blow-your-mind-hfe”