Нужно создать алгоритм выведения на экран середины введенной с клавиатуры строки на языке 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 шт):

Автор решения: 4500zenja

Пусть 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])
→ Ссылка
Автор решения: Stanislav Volodarskiy

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
→ Ссылка