Не работает последний if при проверки длины конечного результата
def phone_number(number):
allowed_characters = '+()-1234567890'
symvols = ['-', '(', ')']
for num in range(len(number)):
if number[num] not in allowed_characters: # Check allowed char
return 'Not correct'
#########
if number[0] == '8': # replase 8 with +7
number = '+7' + number[1::]
elif number[0] == '+' and number[1] == '7': # checking where the number starts.
print(number)
else:
print(number)
#######
if number[0] != '+': # Check правильность +
return 'Not correct'
########
for char in number: # Check () and del
if char not in symvols:
number = list(number)
step = 0
if number[2 + step] == '(':
del number[2 + step]
step -= 1
if number[6 + step] == ')':
del number[6 + step]
step -= 1
if number[10 + step] == '-':
del number[10 + step]
step -= 1
if ((13 + step) < len(number)) and (number[13 + step] == '-'):
del number[13 + step]
elif number [8] == '-' or number[10] == '-':
del number[8]
del number[10]
return ''.join(number)
if len(number[1::]) != 11: !!!!! Вот эта часть
return 'Not correct'
else:
return number
print(phone_number(input('Введите номер:')))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
if number[1::] != 11:
У вас же в number строка, срез от строки - это тоже строка. При сравнении строки с числом на равенство результат всегда будет False, а на неравенство - True. Видимо, нужно сравнивать со строкой, а не с числом, хотя логику вашего кода сложно понять, но по крайней мере это сравнение уже не будет давать константный результат:
if number[1::] != '11':