несколько условий в операторе if с использованием 'и' - PullRequest
0 голосов
/ 01 июля 2018

Постановка проблемы: IP-адреса следующих форм считаются специальными локальными адресами: 10. *. * * и 192,168. * * Звезды могут обозначать любые значения от 0 до 255. Напишите программу, которая просит пользователя ввести IP-адрес и распечатывает, находится ли он в одной из этих двух форм

Мой код:

s=input('Enter the IP address :')
if s[0]==1 and s[1]==0 and s[2]=='.':
    print('It is a special IP address')
elif s[0]==1 and s[1]==9 and s[2]==2 and s[3]=='.' and s[4]==1 and s[5]==6 
and s[6]==8:
    print('It is a special IP address')
else:
    print('It is an ordinary IP address')    

startwith () - хороший вариант для решения этой проблемы. Тем не менее, я не могу понять, почему приведенный выше код всегда дает вывод как «Это обычный IP-адрес» независимо от того, что ввод.

  • Line (5) => и s [6] == 8 - это просто и расширение оператора elif.

1 Ответ

0 голосов
/ 01 июля 2018

Подпись строки вернет строку, а не int, как вы сравниваете ее с. Вы должны использовать строковые литералы в ваших условиях:

s=input('Enter the IP address :')
if s[0]=='1' and s[1]=='0' and s[2]=='.':
    print('It is a special IP address')
elif s[0]=='1' and s[1]=='9' and s[2]=='2' and s[3]=='.' and s[4]=='1' and s[5]=='6' and s[6]=='8':
    print('It is a special IP address')
else:
    print('It is an ordinary IP address')    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...