Как обработать телефонный номер python
Мучаюсь и не понимаю, к делу. Есть код который должен вывести какой оператор у номера телефона
phone = '0501177711'
if int(phone[0]) == 0:
if int(phone[1:3]) == 67 or 68 or 96 or 97 or 98:
operator = 'Киевстар'
elif int(phone[1:3]) == 50 or 66 or 95 or 99:
operator = 'Vodafone'
elif int(phone[1:3]) == 63 or 73 or 93:
operator = 'Lifecell'
Ответ: Киевстар, хотя должно выбить водафон и так уже полтора часа сижу. В чём проблема может быть? Я пробовал и str и int приравнивать но не выходит
Ответы (2 шт):
Автор решения: headswillroll
→ Ссылка
@Kowl так ты пишешь одно условие: int(phone[1:3]) == 67, а дальше одни or идут, так же нельзя делать, ты по сути строишь условия типа ЧИСЛО ИЛИ ЧИСЛО. Ты пиши тогда int(phone[1:3]) == 67 or int(phone[1:3]) == 96. Но лучше вообще просто сделать так: if int(phone[1:3]) in (67, 68, 96, 97, 98)
upd: Можно писать и так, по идее, должно быть быстрее:
if phone.startswith(('67', '68', '96'), 1, 3)
Автор решения: Сергей
→ Ссылка
У вас первое же условие всегда True. Так как там:
int(phone[1:3]) == 67 или 68==True (и т.д).