+ 2
Проверка телефонных номеров. (Checking phone numbers)
Девятая задача по python(The ninth python task). Прохожу 4 из 5 тестов(I pass 4 out of 5 tests). Что делать?(What to do?) Вот код(Here is the code): import re str = input() pattern = r"\A(1|8|9)[0-9]+" match = re.match(pattern, str) if match: print("Valid") else: print("Invalid") Проблема решена(The problem has been resolved). Поскольку длина телефонного номера известна, код будет так(Since the length of the phone number is known, the code will look like this): import re str = input() pattern = r"\A(1|8|9)[0-9]+" if len(str)==8: match = re.match(pattern, str) if match: print("Valid") else: print("Invalid") else: print("Invalid")
8 Réponses
+ 3
Алексей, не учитывается, что в строке может быть что-то ещё после паттерна. Добавить символы начала и конца строки - и всё работает.
+ 1
Не пойму почему закрытые тесты не проходят. Открытые проходят а закрытые нет. Проверку длинны номера вроде тоже поставил.
Вот код :
import re
pattern = input()
if re.match("1",pattern[0] ) or re.match( "8", pattern[0] ) or re.match("9",pattern[0]) and len(pattern)==8:
print("Valide")
else :
print ("Invalide")
+ 1
Как по мне это решение очень короткое и совпадает всему тому чему учит приложение, зачем проверять длину если можно просто один символ из этих взять и 7 символов цифр?
Скрытые тесты может не пройти из за наличия там букв например
pattern = r"[189]([0-9]{7}$)"
if re.match(pattern,input()):
print("Valid")
else:
print("Invalid")
0
Муслим Биногеров тут нужно использовать "сырые" строки формирования. То есть не "8" а r"8"
0
Спасибо большое, понял.
0
В чем проблема, понять не могу:
a = str(input())
b = r"(1|8|9){1}[0-9]{7}"
if re.match(b, a):
print("Valid")
else:
print("Invalid")
0
У меня вот так получилось, громоздко, но все скрытые задания были пройдены.
Я сначала по размеру сортировал а потом уже по начальной цифре.
Вот код :
import re
pattern = input()
if len(pattern)==8:
if re.match("1",pattern[0] ) or re.match( "8", pattern[0] ) or re.match("9",pattern[0]):
print("Valid")
else :
print ("Invalid")
else: print ("Invalid")
0
# Я решил так
import re
#введите код сюда
inpt = input()
pattern = r"[1,8,9](\d{7}$)"
if re.search(pattern, inpt):
print("Valid")
else:
print("Invalid")