为什么将一个字符串传递给python函数时输出为两个字符串
我为一个实验创建了一个名为swap的函数。功能如下:为什么将一个字符串传递给python函数时输出为两个字符串,python,Python,我为一个实验创建了一个名为swap的函数。功能如下: def swap(x): return x[-1:] + x[1:-1] + x[0:1] 当我尝试传递字符串“a”时,输出为“aa”。我不知道这是怎么发生的。如果有人知道原因,请提前感谢。您的函数将根据以下内容返回一个新字符串: 字符串的最后一个字母(a) 第一个字母之后但最后一个字母之前的所有内容(在您的案例中为空) 和字符串的第一个字母(a) 因为你的最后一封信是你的第一封信,所以你会收到两次 要正确交换它们,必须测试字符
def swap(x):
return x[-1:] + x[1:-1] + x[0:1]
当我尝试传递字符串“a”时,输出为“aa”。我不知道这是怎么发生的。如果有人知道原因,请提前感谢。您的函数将根据以下内容返回一个新字符串:
- 字符串的最后一个字母(
)a
- 第一个字母之后但最后一个字母之前的所有内容(在您的案例中为空)
- 和字符串的第一个字母(
)a
def swap(x):
if len(x) < 2:
return x
return x[-1] + x[1:-1] + x[0]
def交换(x):
如果len(x)<2:
返回x
返回x[-1]+x[1:-1]+x[0]
既然您知道最后一行x
至少有两个字符长,那么您也不需要对第一个/最后一个字符进行切片,并且可以使用直接元素访问(x[0]
/x[-1]
)。实际上这是可以的
将返回最后一个字符,因为-1从末尾开始x[-1:]
将返回开头的第一个字符x[0:1]
在本例中不算什么,因为您没有第二个字符x[1:-1]
顺便说一句,对于交换,请在函数中使用
return x.reverse()
或return x[::-1]
打印x[-1:]
和x[0:1]
,然后亲自查看。@lescurel-如果交换第一个和最后一个字母,则可以反转整个字符串。这有什么帮助?OP交换第一个字母和最后一个字母,将其他字母留在原位x.reverse()
和x[:-1]
反转整个字符串。。。