Нужно считать строку до точки и подсчитать кол-во слов в строке
Не понимаю где проблема в коде. Пытаюсь считать строку до точки в данном коде:
s = 'Тестовая. Строка'
_str = ''
for i in range(len(s)):
while s[i] != '.':
_str += s[i]
print(_str)
Но ничего не выводит, прошу расписать чуть подробнее -- почему?
PS задачей запрещено использовать конструкцию if
Ответы (2 шт):
Автор решения: Alioshca Z
→ Ссылка
Цикл while у вас выполняется всегда. Можно поменять на такое решение:
s = 'Тестовая. Строка'
_str = ''
for i in range(len(s)):
if s[i] != '.':
_str += s[i]
else:
break
print(_str)
Для цикла while:
s = 'Тестовая. Строка'
_str = ''
counter = 0
while s[counter] != '.':
_str += s[counter]
counter += 1
print(_str)
Автор решения: MaxU
→ Ссылка
s = "Первая тестовая строка. Вторая строка."
res = len(s.partition(".")[0].split())
print(res)
>>> 3
пошагово:
s.partition(".") - разделит строку на три части: подстрока до первого встретившегося разделителя, сам разделитель (".") и оставшаяся после разделителя часть строки:
In [9]: s.partition(".")
Out[9]: ('Первая тестовая строка', '.', ' Вторая строка.')
выберем подстроку до первого разделителя:
In [10]: s.partition(".")[0]
Out[10]: 'Первая тестовая строка'
.split() - разобъет строку на слова
In [11]: s.partition(".")[0].split()
Out[11]: ['Первая', 'тестовая', 'строка']