为什么空白输入会在python中打印if语句

时间:2018-06-27 11:34:48

标签: python-3.x if-statement

s1 = input("enter 1st string: ")
s2 = input("enter 2nd string: ")

if s2 in s1:
    print("found")
else:
    print("not found")

简单地说,我想说是否我给s1提供了一些输入,而没有给s2提供任何输入,然后按Enter,此代码的输出显示为“找到” 这是错误的,因为在我的字符串s1中没有空格,那么为什么会发生呢?以及如何纠正?

2 个答案:

答案 0 :(得分:2)

每个字符串都包含空字符串,因此'' in 'anything'始终为True

答案 1 :(得分:1)

每个字符串始终包含空字符串。

i = 'anything'.count('')

print(i)
# 9

如您所见,在每个字母之间以及字符串前后,都有“空字符串”。

在您的示例中,可以确保这样输入一个非空字符串:

while(True):
    s1 = input("enter 1st string: ")
    if s1 != '':
        break

while(True):
    s2 = input("enter 2nd string: ")
    if s2 != '':
        break

if s2 in s1:
    print("found")
else:
    print("not found")

还请注意:

s  = '' + 'a' + '' + 'n'+ '' + 'y' + '' + 't' + '' + 'h' + '' + 'i' + '' + 'n' + '' + 'g' + ''

print(s == 'anything')
# True
print(s.count('')
# 9

添加更多的空字符串没有任何效果。

s += ''
print(s.count('')
# 9