Одна вещь, которая мне очень нравится работать в Python в блокноте jupyter, это то, что я могу использовать некоторые символы Юникода для именования своих переменных. Например, чтобы использовать греческие буквы, я набираю \alpha
, за которым следует tab, и я получаю α
.
. Я столкнулся с неожиданным поведением при использовании жирного шрифта T, \bfT
, за которым следует tab, которыйрезультаты в ?
.
Эксперимент следующий. Внутри ячейки (под управлением Python 3) введите:
T = 1
? = 2
print(T) # prints 2
К моему удивлению, вторая строка переназначает переменную T
, но я ожидаю, что она будет отличаться от ?
. Может кто-нибудь объяснить, в чем подвох с использованием Unicode?
Не знаю, помогает ли это, но в качестве другого эксперимента я вижу, что те же два символа, что и строки, на самом деле разные
'T'.encode('utf8'), '?'.encode('utf8') # (b'T', b'\xf0\x9d\x90\x93')
Как ноутбук обрабатывает мои имена переменных?