如何在 Python 中交换输入的第一个和最后一个字符

新手上路,请多包涵

我是编程新手,通过在线课程学习 Python3。本练习要求我编写一个程序,该程序使用 input() 读取字符串,并输出相同的字符串,但交换第一个和最后一个字符(示例:Fairy 变为 yairF)。可能有一种更简单的方法可以使用更高级的函数来执行此操作,但是,出于本练习的目的,我应该只使用类、子字符串和索引来编写程序。这是我现在拥有的:

 myString = input()
newString = (myString[1:len(myString)-1])
print(myString[len(myString)-1],newString,myString[0])

使用输入“Fairy”的示例,输出“y air F”,这不是我要找的。我也试过

myString = input()
newString = (myString[1:len(myString)-1])
newString[0] = myString[len(myString)-1]
newString[len(newString)-1] = myString[0]
print(newString)

然而,第三行给了我: TypeError: 'str' object does not support item assignment 。所以我猜我无法为索引中的位置分配新值。下面我的另一种方法也给了我一个错误:

 myString = input()
newString = (myString[1:len(myString)-1])
lastString = str(myString[len(myString)-1],newString,myString[0])
print(lastString)

第三行给了我: TypeError: decoding str is not supported ,所以我似乎不能那样组合它们。关于处理这个的任何提示?

原文由 user2498805 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 711
2 个回答

尝试这个:

 >>> temp = "abcde"
>>> temp[1:-1]
'bcd'
>>> temp[-1:] + temp[1:-1] + temp[:1]
'ebcda'
>>>

简而言之,python 具有出色的字符串切片语法。你可以用它做魔术。

原文由 ducin 发布,翻译遵循 CC BY-SA 3.0 许可协议

纯娱乐:

 >>> temp = "abcde"
>>> temp2 = list(temp)
>>> temp2[0],temp2[-1]=temp2[-1],temp2[0]
>>> temp = ''.join(temp2)
>>> temp
'ebcda'

原文由 Benjamin Toueg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题