Форум сайта python.su
Здравствуйте,
подскажите, пожалуйста, с решением
условие:
Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.
пример:
Hi - iH
решение
s = input() x = len(s) l1 = x - x // 2 print(s[l1:] + s[:l1])
Отредактировано crazyma66ot (Ноя. 14, 2016 21:54:47)
Офлайн
целочисленное деление
//
s = '1234567' h = sum(divmod(len(s), 2)) s[h:] + s[:h]
Отредактировано izekia (Ноя. 14, 2016 22:06:02)
Офлайн
izekiaошибка? вроде при проверке сошлось с тестовым заданием
целочисленное деление
Офлайн
crazyma66otвсе правильно
ошибка? вроде при проверке сошлось с тестовым заданием
Офлайн
izekiaда, потом перерешалось.
Офлайн
если это типа олимпиадных задачек, то там либо должны быть явно указаны имена файлов, либо стдин/стдоут
Офлайн
izekiaэто домашняя задачка, имена файлов не указаны, условие полностью приведено в первом топике, но сказано, что решение принимается только через ввод-вывод файла
если это типа олимпиадных задачек, то там либо должны быть явно указаны имена файлов, либо стдин/стдоут
Офлайн
from contextlib import ExitStack with ExitStack() as stack: fin = stack.enter_context(open('input.txt', 'r', encoding='utf8')) fout = stack.enter_context(open('output.txt', 'w', encoding='utf8')) while True: s = fin.readline()[:-1] if not s: break x = len(s) l1 = x - x // 2 print(s[l1:] + s[:l1], file=fout)
with open('input.txt', 'w', encoding='utf8') as fout: print('123', file=fout) print('1234', file=fout) print('1', file=fout) print('12345', file=fout) print('123456', file=fout)
with open('output.txt', 'r', encoding='utf8') as fin: print(fin.read())
Офлайн