проблемы с преобразованием некоторой части строки в int python - PullRequest
0 голосов
/ 08 ноября 2018

У меня проблема с преобразованием строки в int. Я хочу добавить длину строки в начало (я могу использовать только 2 цифры) а затем узнать длину строки, используя начало строки (2 цифры) если длина строки меньше 10, то добавьте 0 перед длиной я пытался сделать это

command = "0"+str(len(command))+command

но это не работает, но я не знаю почему, потому что

command = "04EXIT"
int(command[0:2]) 

напечатает 4 и

int("04") также напечатает 4, поэтому я не знаю, почему это не работает

спасибо всем помощникам

1 Ответ

0 голосов
/ 08 ноября 2018

Вы объединяете strings и ints. В Python (и для людей) 4 == 04 == 004 == 0004 == .... С другой стороны, строка - это последовательность символов. В вашем случае символ «0», за которым следует символ «4». Это отличается от одного символа «4». Когда вы конвертируете '04' в int, Python говорит, что это то же самое, что и 4. Поскольку 4 является более простым способом представления этого целого числа, чем 04, Python отображает 4.

Также вы можете использовать спецификаторы формата Python для получения вашей команды:

command = 'hi'
command = "%02d" % len(command) + command  # '02hi'

или преобразовать в строку и использовать zfill:

command = str(len(command)).zfill(2) + command  # '02hi'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...