我需要有关如何在字符串上定义和测试三个函数的帮助。遵循这些准则。这是我周三考试的复习,我真的很想有正确的解决方案,因为我的都带着语法错误回来了。
我需要按照下面列出的要求为所有三个示例提供代码。
在不使用任何字符串方法len
的情况下,仅函数和字符串操作+
、、*
索引切片以及==
用于比较字符串或字符。
在repl
函数中,使用累加器模式来构建新字符串。
例子
该
ends
函数接受一个字符串作为参数;如果字符串有两个或多个字符,则返回一个由给定字符串的第一个和最后一个字符组成的字符串;否则,它返回给定的字符串。>>> ends("ab") 'ab' >>> ends("abc") 'ac' >>> ends("a long sentence") 'ae' >>> ends("") '' >>> ends("*") '*'
该
butends
函数接受一个字符串参数;如果字符串有两个或多个字符,则返回一个字符串,该字符串由字符串的第一个和最后一个字符组成;否则,它返回给定的字符串。>>> butends("abcde") 'bcd' >>> butends("abc") 'b' >>> butends("a long sentence") ' long sentenc' >>> butends("") '' >>> butends("a") 'a'
repl 函数接受三个参数:
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
上面列出的代码不能替换正确的字符我不确定我哪里出错了。