Преобразование строк Python в Int [duplicate]

Вы не даете нам язык, но если ваш аромат регулярного выражения поддерживает , посмотрите за утверждение , это то, что вам нужно:

.*(?

(? является отрицательное утверждение lookbehind, которое гарантирует, что до конца строки (или строки с модификатором m) нет символа «a».

См. здесь здесь в Regexr

Вы также можете легко распространить это на другие символы, так как это проверка на строку и не является символьным классом.

.*(?

Это будет соответствовать тому, что не заканчивается с «ab», см. его в Regexr

3
задан Dan1676 21 November 2012 в 19:57
поделиться

3 ответа

Концепция ведущих нулей - это концепция отображения, а не числовая. Вы можете поместить бесконечное число ведущих нулей на число без изменения его значения. Поскольку это не числовая концепция, она не сохраняется с номером.

Вы должны решить, сколько нулей вам нужно, когда вы конвертируете число в строку. Вы можете сохранить это число отдельно, если хотите.

11
ответ дан Mark Ransom 26 August 2018 в 01:20
поделиться

Хотя приведенные выше комментарии верны относительно 1, 01 и 001, все они совпадают с INT, это может быть очень полезно при временном моделировании или последовательном создании фильма для поддержания ведущих нулей. Я делаю это часто, чтобы обеспечить, чтобы видеоклипы были в правильном порядке. Легкий способ сделать это - использовать zfill. zfill гарантирует, что str-версия номера - это, по крайней мере, количество символов, которые вы ему рассказываете, и делает это, заполняя левую часть строки «число» нулями.

>>> x = int(1)    
>>> NewStringVariable = str(x).zfill(3)    
>>> print NewStringVariable    
001    
>>> NewStringVariable = str(x).zfill(5)    
>>> print NewStringVariable    
00001
12
ответ дан Bhargav Rao 26 August 2018 в 01:20
поделиться

Я получал строки с датами, такие как hhmmss, которые пересекали последовательную линию от моего Arduino.

, так что предположим, что я получил s = "122041"; это 12:20:41, однако 9am будет 090000.

Оператор print "%d" % (s) вызывает ошибку времени выполнения, потому что 9 не является восьмеричным числом и, следовательно, является незаконным символом.

Чтобы устранить эту проблему:

print "%06d" % (int(s))

Надеюсь, что помогает

0
ответ дан Martin Tournoij 26 August 2018 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: