if语句中使用“和”的多个条件

时间:2018-07-01 19:29:36

标签: python if-statement

问题陈述:以下格式的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 :(得分:1)

下标字符串将返回一个字符串,而不是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')