Ved-форум поддержки
Программирование => Python => Тема начата: DigitalMag от Февраля 16, 2019, 10:03:20 am
-
Собственно сабж.
s = ''
for a in range(128):
if chr(a).isdigit():
s+=chr(a)
print (s)
Если isdigit заменить на isdecimal, будет тот же самый результат. В чем разница между ними?
-
isdigit() - для строк в кодировке ascii.
isdecimal() - для строк в кодировке unicode.
Т.к. в питоне, начиная с 3-ей версии, строки по умолчанию хранятся в юникоде, то isdecimal будет работать правильней, ибо он будет охватывать весь спектр кодов юникода, а isdigit - гарантированно только в диапазоне 0-127
Во втором питоне для типа str предпочтительней isdigit