1

Тема: Python 3 конфузить [not in][is not]

1 in {1}    # True
1 is  1     # True

4 not in {1}    # True
4 not is  1     # SyntaxError: invalid syntax

4 in not {1}    # SyntaxError: invalid syntax
4 is not  1     # True

Якшо будете творити мову програмуваня, не треба так робити.

2

Re: Python 3 конфузить [not in][is not]

Просто наслідування англійської граматики, де is — дієслово, in — прийменник, а not з'являється після дієслова, але перед прийменником.

Подякували: leofun01, koala2

3

Re: Python 3 конфузить [not in][is not]

Ключові "слова" з двох слів - дійсно збочення, але в C можна навіть unsigned long long int робити, і нічого, всі звикли.

Подякували: leofun011

4

Re: Python 3 конфузить [not in][is not]

koala написав:

Ключові "слова" з двох слів - дійсно збочення, але в C можна навіть unsigned long long int робити, і нічого, всі звикли.

В { C, C++ } це теж не ок. Для того є цілі типи фіксованого розміру (uint64_t). Може під капотом це typedef для того ж unsigned long long int, але то вже проблеми компілера, не мої.

Цікаво, ¿ чи можна в Python зтворити alias'и для таких операторів ?

5

Re: Python 3 конфузить [not in][is not]

Можна, звісно, але синтаксис не дуже буде, на кшталт

object.__isn_t__(other)

чи

object__doesn_t_contain__(other)

До речі, навіть тут послідовність слів навпаки...

Подякували: leofun011