На вход копируются строки вместе столбиком:
abcd
----------
efg
----------
Не получается печатать длину каждой строки, печатается только длина первой.
for x in input().splitlines():
print(len(x))
На вход копируются строки вместе столбиком:
abcd
----------
efg
----------
Не получается печатать длину каждой строки, печатается только длина первой.
for x in input().splitlines():
print(len(x))
import fileinput
for line in fileinput.input():
print(len(line) - 1) # Длина вез знака '\n'
Для ввода строк используется метод input() вставленного модуля fileinput.
Строки читаются до тех пор, пока ввод не окончится признаком конца файла (Ctrl+D).
Когда вы хотите окончить ввод простым нажатием на клавишу Enter, прибавите код для теста ввода строки с длиной 1 (только знака конца строки: \n):
import fileinput
for line in fileinput.input():
if len(line) == 1:
break
print(len(line) - 1)
len(line) - line.endswith('\n')
– jfs
Jun 27 '18 at 14:18
input вызывается и читает один раз (до перевода строки). Если вызывать input в цикле, то получится что-то похожее. Но лучше используйте sys.stdin
править– gil9red Jun 26 '18 at 10:43abcd efg, но в тексте вопросаabcd----------efg----------что из этого истинно? А по поводу вашей проблемы, скорее всего когда вы вставляете текст в input, то в него попадает первая строкаabcd\n, потому что она первая заканчивается на\n. Почему бы вам данные для программы не брать из файлика? – gil9red Jun 26 '18 at 10:56Inputне очень подходит, предлагаю из файлика вытаскивать. Показать? – gil9red Jun 26 '18 at 11:07