Я готовил простой пример скрипта Python для своих учеников, и я решил бороться за решение следующей проблемы. Я использую кодировку utf8
, потому что я хочу, чтобы они использовали польские символы, например. Ł, ±, ś. Теперь скрипт должен взять имя от пользователя и напечатать его в прямоугольнике, сделанном из *. Так это то, что я хочу, чтобы показать им:Подсчет символов UTF8 с помощью Python
imie=raw_input('Podaj swoje imię: ') #Give your name
dl=len(imie)
print '*'*(dl + 4)
print '*' + ' '*(dl + 2) + '*'
print '* ' + imie + ' *'
print '*' + ' '*(dl + 2) + '*'
print '*'*(dl + 4)
Вопрос заключается в том, что для названия, такие как Antoś Mąka
, то dl
значение переменной должно быть 11, но 13, так как с и признаки вычисляются как два , Можно ли вызвать функцию len()
, чтобы вычислить ее как 1?
У python 3 нет этих проблем, с которыми вы сталкиваетесь в python2. Все строки являются юникодами в python3, а len работает правильно. – LetzerWille