валидатор длины номера питона

1

Я пытаюсь написать python script, который проверяет, является ли входной номер необходимой длиной, например, номер входа должен быть: 1234567890. script должен проверить, что он действительно 10 цифр. Я не мог найти никаких примеров этого.

Проверенное число берется из файла.

Теги:
string

4 ответа

3

Если это взято из файла, то это строка.

>>> len('1234567890') == 10
True
  • 0
    И это также работает в случае, когда разрешены начальные нули для заполнения до 10 цифр - часто в случае, когда «число» является идентификатором банковского счета или подобным. Если 0123456789 является допустимым значением, то это работает там, где нет целочисленной математики.
2

Один из способов сделать это - использовать регулярные выражения:

In [1]: import re

In [2]: s = '1234567890'

In [3]: re.match(r'^\d{10}$', s)
Out[3]: <_sre.SRE_Match object at 0x184f238>

In [4]: re.match(r'^\d{10}$', '99999')

Вышеупомянутое регулярное выражение гарантирует, что строка состоит из десяти десятичных цифр и ничего больше. В этом примере re.match возвращает объект соответствия, если проверка проходит или None в противном случае.

  • 0
    Я, вероятно, сделал бы это сам, но мне интересно, было бы излишне использовать регулярные выражения для этого, особенно если бы мы могли сделать это, используя комбинацию len() и isnumeric() .
1

Math - если вам нужен int anyway:

10**10 <= int('12334567890') < 10**11
0
if len( str( int( input_variable) ) ) != 10:
     fire_milton(burn_this_place_down=True)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню