文字列に対して 3 つの関数を定義してテストする方法について助けが必要です。これらのガイドラインに従ってください。これは水曜日の私の試験の復習であり、私のすべての構文エラーが戻ってくるため、正しい解決策を本当に望んでいます.
以下に示す要件に従って、3 つの例すべてのコードを作成する必要があります。
文字列メソッドのみを使用せずlen
に機能し、文字列操作+
、*
、インデックス付けスライス、および==
文字列または文字の比較を行います。
関数ではrepl
、accumulator パターンを使用して新しい文字列を作成します。
例
この
ends
関数は文字列を引数として取ります。文字列が 2 文字以上の場合、指定された文字列の最初と最後の文字で構成される文字列を返します。それ以外の場合は、指定された文字列を返します。>>> ends("ab") 'ab' >>> ends("abc") 'ac' >>> ends("a long sentence") 'ae' >>> ends("") '' >>> ends("*") '*'
この
butends
関数は文字列引数を取ります。文字列に 2 つ以上の文字が含まれる場合、文字列の最初と最後の文字を除くすべての文字で構成される文字列を返します。それ以外の場合は、指定された文字列を返します。>>> butends("abcde") 'bcd' >>> butends("abc") 'b' >>> butends("a long sentence") ' long sentenc' >>> butends("") '' >>> butends("a") 'a'
repl 関数は次の 3 つの引数を取ります。
old
は単一の文字です。new
0 文字以上の文字列です。s
任意の文字列です。
s に出現するすべての old を new に置き換えることによって形成された新しい文字列を返すことを私は知っています。
>>> repl('a', 'A', 'fast faces react snappily') 'fAst fAces reAct snAppily' >>> repl('*', '+++', 'a*b = c*d') 'a+++b = c+++d' >>> repl(' ', '\n', 'Practice every day.') 'Practice\nevery\nday.' >>> print(repl(' ', '\n', 'Practice every day.')) Practice every day. >>> repl(",", ":", "a,b,cde,fghi") 'a:b:cde:fghi'
パート3でこれまでに持っているものは次のとおりです。
def repl(old, new, s):
newStr = ""
for ch in s:
if ch != old:
newStr = newStr + ch
else:
newStr = newStr + new
return newStr
上記のコードは正しい文字を置き換えません。どこで間違ったのかわかりません。