Как обработать телефонный номер 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 (и т.д).
→ Ссылка