任务是:
Given a string, return a new string where the first and last chars have been exchanged.
def front_back(str):
if len(str)<=0:
return str
else:
front=str[0]
back=str[-1]
new = str.replace(str[0], back)
print new
new_2=new.replace(new[-1], front)
print new_2
front_back("code")
首先,从不调用变量
str
。为什么?因为这是Python字符串的类的名称。如果你用同一个名字,那么你就失去了它。我使用txt
。你知道吗您的长度测试是合理的,但下限可以增加(一个字符将是愚蠢的)。你知道吗
但是使用
str.replace()
是不可行的。为什么?好吧,它可以在你的测试用例中工作,但只是因为每个字符都是唯一的。str.replace()
替换指定字符串的每一次出现。因此,如果第一个或最后一个字符在其他地方重复,那么这也会改变。你知道吗您可以使用切片,其中第一个(最左侧)字符是0(零)。也可以使用负数从右侧索引,因此-1是最后一个(最右侧)字符。字符的范围从开始到最后一个字符之后。所以
[1:-1]
从第二个字符转到最后一个字符。你知道吗我在函数中使用
return
,因为这是处理文本的正常方式,这是在您的问题中要求的。你知道吗字符串文本可以切片和添加:
p.S.
str
是python中的内置代码,因此将其用作变量名是个坏主意。你知道吗它不起作用,因为
.replace()
将替换该字符的所有出现,而不一定只替换第一个和最后一个下面是一个用第一部分、正文部分和最后一部分构造字符串的解决方案
相关问题 更多 >
编程相关推荐