почему пустой ввод печатать оператор if в python - PullRequest
0 голосов
/ 27 июня 2018
s1 = input("enter 1st string: ")
s2 = input("enter 2nd string: ")

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

просто я хочу сказать, если я дам какой-то ввод s1 и ничего не дам в качестве ввода s2 и нажму enter, вывод этого кода выведите «found» что неправильно, потому что в моей строке s1 нет пробела, так почему же это происходит? и как это исправить?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Каждая строка всегда содержит пустую строку.

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
0 голосов
/ 27 июня 2018

Каждая строка содержит пустую строку, поэтому '' in 'anything' всегда True.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...