Задача состоит в том, чтобы вставить звездочку (*) между каждой парой четных цифр в заданном входе и вернуть ее в виде строки - PullRequest
1 голос
/ 22 апреля 2020

Что не так с моим кодом? Как напечатать мой вывод в одну строку? Все отлично с этим кодом, за исключением того, что когда я использую print (), он возвращает вывод по отдельности, а когда я использую 'return', вывод - это только первое предложение.

def asterisc_it(n):
    x=str(n)
    for i in range(len(x)-1):
         if int(x[i])%2==0 and int(x[i+1])%2==0:
            print( x[:i+1]+'*'+x[i+1:] )

asterisc_it(9682135)

1 Ответ

1 голос
/ 22 апреля 2020

Ну, я думаю, что вы действительно сделали это, но проблема в том, что вы печатаете результат, а не сохраняете изменения, поэтому я отредактировал ваш код

def asterisc_it(n):
    x=str(n)
    final = ''
    for i in range(len(x)-1):
        if int(x[i])%2==0 and int(x[i+1])%2==0:
            final += x[i]+'*'
        else:
            final += x[i]
    final += x[len(x)-1]
    print(final)

Обратите внимание на несколько вещей:
1. Я добавил final строку, поэтому мы не будем изменять длину x
2. Внутри l oop я заменил print( x[:i+1]+'*'+x[i+1:] ) на final = x[:i+1]+'*', поэтому изменения, внесенные в строку будет сохранен
3. Я добавил оператор else, который добавит к финалу, если он не отвечает на оператор if.
4. после the l oop , добавьте последний di git в строку final
4. И наконец, добавьте print(x), чтобы я получил 1 результат со всеми изменениями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...