# Почему в Python строка очистки работает вручную, но создание точно такой же функции не работает? - PullRequest
0 голосов
/ 16 апреля 2019

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

Вопрос: Почему в Python такой же код не работает в функции, но он работает, когда вы кодируете тот же самый код вручную?

Вот код:

    #A variable
    x = "apples and oranges!"

    #Making a variable messed up strings
    x = "-".join(x)
    x = str(x.split("-"))


    #Creating automatic function for cleaning messed up strings
    def clnStr(x):
        y = x
        y = y.replace("'", "")
        y = y.replace(",", "")
        y = y.replace("[", "")
        y = y.replace("]", "")
        y = y.replace(",", "")
        y = y.replace(" ", "")
    clnStr(x)
    print(x)



    #Cleaning up string variable manually
    y = x
    y = y.replace("'", "")
    y = y.replace(",", "")
    y = y.replace("[", "")
    y = y.replace("]", "")
    y = y.replace(",", "")
    y = y.replace(" ", "")
    print(y)

# Repairing string variable
for i, index in enumerate(y): #Getting a list of indexes of a string variable
    print(i, index)

y = y[0:6] + " " + y[6:9] + " " + y[9:]
print(y)


#cannot repair 'x' variable with same method because the function does not work as it should.

1 Ответ

3 голосов
/ 16 апреля 2019

Вы ничего не возвращаете из функции clnStr. Попробуйте:

def clnStr(x):
    y = x
    y = y.replace("'", "")
    y = y.replace(",", "")
    y = y.replace("[", "")
    y = y.replace("]", "")
    y = y.replace(",", "")
    y = y.replace(" ", "")
    return y

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