Подсчитайте, сколько раз строка начинается с другой подстроки - PullRequest
0 голосов
/ 09 февраля 2020

Попытка выяснить много раз строковые существа с определенной строкой.

Если пользователь вводит количество строк, я хочу вернуть количество раз, которое начинается с "foo". Я хочу, чтобы программа завершилась, если пользователь вводит пустое пространство ""

   foohi
   nothingfoo
   fooboo
   example

ответ равен 2

Я начал свою попытку, но не знаю, откуда go отсюда

answer = []
print("please enter string: ", end="")
s = input()

Ответы [ 3 ]

1 голос
/ 09 февраля 2020

Я не знаю, как установить EOF на \n, но если вы нажмете CTRL-D, чтение с stdin остановится:

>>> import sys
>>> i = sys.stdin.readlines()
foohi
nothingfoo
fooboo
example
>>>

Количество строк, начинающихся с foo:

>>> sum(s.startswith("foo") for s in i)
2
0 голосов
/ 09 февраля 2020

Вы можете использовать встроенную python split, чтобы разбить строку на список слов, и метод startswith, чтобы найти слова, начинающиеся с foo.

def count_foo() -> int:

    while True:      
        print("please enter string: ")
        s = input().strip()

        if s == "":
            break

        else:
            # counter
            answer = 0

            # split the string to make a list of individual words
            words = s.split()

            # iterate through the list and find words 
            # that starts with foo
            for word in words:
                if word.startswith('foo'):
                    answer += 1

            print(answer)

if __name__ == "__main__":
    answer = count_foo()
* 1006. * Теперь, когда появится подсказка, добавьте вашу строку:
foohi nothingfoo fooboo example

Это выведет:

2

Если вы просто нажмете enter, не вводя ничего в подсказку ввода, оно выйдет из л oop.

0 голосов
/ 09 февраля 2020

Вы ниже кода:

ls= ['foohi',
'nothingfoo',
'fooboo',
'example']
i=0
print("please enter string: ", end="")
s = input()
for l in ls:
    if l.startswith(s):
        i=i+1
print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...