Мне интересно, почему следующая переменная рассматривается как число?
a = 1_000_000
print (a)
1000000
Не должен ли print(a)
вернуть 1_000_000
?
Мне интересно, почему следующая переменная рассматривается как число?
a = 1_000_000
print (a)
1000000
Не должен ли print(a)
вернуть 1_000_000
?
В Python 3.6 (и PEP-515) появилась новая удобная запись для больших чисел, которая позволяет разделять группы цифр в числовом литерале, чтобы их было легче читать.
Примеры использования:
a = 1_00_00 # you do not need to group digits by 3!
b = 0xbad_c0ffee # you can make fun with hex digit notation
c = 0b0101_01010101010_0100 # works with binary notation
f = 1_000_00.0
print(a,b,c,f)
10000
50159747054
174756
100000,0
print(int('1_000_000'))
print(int('0xbad_c0ffee', 16))
print(int('0b0101_01010101010_0100',2))
print(float('1_000_00.0'))
1000000
50159747054
174756
100000,0
A = 1__000 # SyntaxError: invalid token
Python позволяет вам ставить подчеркивания в числах для удобства. Они используются для разделения групп чисел, очень похоже на запятые в непрограммировании. Подчеркивания в цифрах полностью игнорируются, как и комментарии. Итак, это:
x = 1_000_000
интерпретируется так же, как это:
x = 1000000
Тем не менее, вы не можете поставить два подчеркивания рядом друг с другом, как это:
x = 1__000__000 #SyntaxError
В англоязычных странах запятые обычно используются в качестве разделителей тысяч, а во многих других странах точки используются в качестве разделителей тысяч. Учитывая разные соглашения и тот факт, что запятые и точки используются в Python для других целей, было решено использовать подчеркивания в качестве разделителей.