где я должен использовать инструкцию возврата - PullRequest
0 голосов
/ 12 мая 2019

Мой код работает правильно, но он не проверен как True или False.Мой вопрос был: «Напишите функцию replace (s, old, new), которая заменяет все вхождения old на new в строке s»

Я попытался return вместо print, но затем результат «None»

def replace(s, old, new):
    ss = s.split(old)
    js = new.join(ss)
    print(js)

replace("Mississippi", "i", "I") == "MIssIssIppI"


expected result would be True or False.

Ответы [ 3 ]

0 голосов
/ 12 мая 2019

Просто замените print() на это, например:

def replace(s, old, new):
    ss = s.split(old)
    js = new.join(ss)
    return js

Тогда вы можете просто напечатать результат сравнения с:

print(replace("Mississippi", "i", "I") == "MIssIssIppI")

Выход:

True
0 голосов
/ 12 мая 2019
def replace(s, old, new):
    ss = s.split(old)
    js = new.join(ss)
    return js

print(replace("Mississippi", "i", "I") == "MIssIssIppI")

Это прекрасно работает после добавления оператора return и печати при вызове сравнения.

0 голосов
/ 12 мая 2019

return возвращает результат, но вы должны назначить его переменной, чтобы использовать его (или использовать весь вызов функции напрямую).Так что если вы измените print(js) на return js и выполните print(replace("Mississippi", "i", "I")), вы должны получить MIssIssIppI

Если вместо этого вы наберете

output = replace("Mississippi", "i", "I")
if output ==  "MIssIssIppI":
   print('True')
else:
   print('False')

#OR

print(output == 'MIssIssIppI') #simpler way

, вы получите желаемые результаты.

return позволяет вам присвоить результат функции как переменную и делать с ней все, что вам угодно.

replace("Mississippi", "i", "I") ничего не печатает (если вы измените оператор print наоператор возврата), но он возвращает свой результат, но вы ничего не делаете с ним.

...