Нужно создать алгоритм выведения на экран середины введенной с клавиатуры строки на языке Python
Нужно создать такой алгоритм, чтобы при введении слова через клавиатуру подсчитывалось количество знаков и проверялось чётное или не чётное число, а после на основе этого вырезалась середина слова. Если четное число должно выводиться два средних символа, если нечетное один символ.
Это мой код, который я пытался писать:
str_1 = input("Input str_1:")
len(str_1)
if len(str_1) % 2 == 0:
print(len(str_1) // 2 - 1)
else:
print(len(str_1) // 2)
Ответы (2 шт):
Пусть length = len(str_1) — длина строки, тогда middle = length // 2 — индекс одного из средних символов. Если сама строка имеет нечётное количество символов, то middle — искомый индекс, иначе нужно ещё учесть предудщий символ (т.к. полученный нами middle ВСЕГДА обозначает индекс второго среднего символа).
Для вывода двух средних символов можно воспользоваться срезом [middle-1:middle+1], который выведет символы с индексами от middle-1 до middle+1 не включая (т.е. только str_1[middle-1] и str_1[middle]), для одного символа — просто str_1[middle].
str_1 = input("Input str_1:")
length = len(str_1)
middle = length // 2
if length % 2 == 0:
print(str_1[middle-1:middle+1])
else:
print(str_1[middle])
i == j если n нечётное. i + 1 == j если n чётное. s[i:j + 1] вырезает из строки кусочек с началом в i и с концом в j:
s = input() # abdc abcde
n = len(s) # 4 5
i = (n - 1) // 2 # 1 2
j = n // 2 # 2 2
print(s[i:j + 1]) # bd c
$ echo abcd | python mid.py bc $ echo abcde | python mid.py c