Я хочу взять четную струну и поменять переднюю половину струны и заднюю половину струны. Я хочу иметь возможность сделать то же самое с нечетным числом, но сохранить среднюю букву строки одинаковой. Я закодировал четное число, но я получаю целочисленный вывод вместо новой строки

def split_and_join (my_string):
    a = len('my_string')
    if (a % 2) == 0:
        first_half  = a[:len(a)//2]
        second_half = a[len(a)//2:]
        modified_string = join.s(second_half, first_half)
    else:
        print(a)
        
if __name__ == '__main__':
    my_string = input("Enter string:")
    print((split_and_join)(my_string))
0
Kay 4 Окт 2022 в 21:13

3 ответа

Попробуй это;

def split_and_join(my_string):
    a = len(my_string)
    if (a % 2) == 0:
        first_half  = my_string[:a//2]
        second_half = my_string[a//2:]
        modified_string = second_half + first_half
        return modified_string
    else:
        first_half  = my_string[:a//2]
        second_half = my_string[a//2+1:]
        modified_string = second_half + my_string[a//2] + first_half
        return modified_string
        
if __name__ == '__main__':
    my_string = input("Enter string:")
    print((split_and_join)(my_string))

# If input; "sachin" then code's output: "hinsac"
# If input; "kohli" then code's output: "lihko"
0
Sachin Kohli 4 Окт 2022 в 21:27

Сделать это можно так:

def split_and_join(my_string):
    e = (_len := len(my_string)) // 2
    return my_string[e:] + my_string[:e] if _len % 2 == 0 else my_string[e+1:] + my_string[e] + my_string[:e]

print(split_and_join('abcd'))
print(split_and_join('abcde'))

Вывод:

cdab
decab
0
OldBill 4 Окт 2022 в 21:50

Вот решение:

def split_and_join (my_string):
    a = len(my_string)
    first_half  = my_string[:a//2]
    second_half = my_string[a//2:]
    modified_string = f"{second_half}{first_half}"
    print(modified_string)

        
if __name__ == '__main__':
    my_string = input("Enter string:")
    split_and_join(my_string)
-1
hassan oubrahim 4 Окт 2022 в 21:40
К сожалению, это не работает для строк нечетной длины.
 – 
OldBill
4 Окт 2022 в 21:52