我是编程新手,从在线课程学习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
,所以我似乎无法将它们组合起来。有关处理此事的任何提示吗?
答案 0 :(得分:10)
试试这个:
>>> temp = "abcde"
>>> temp[1:-1]
'bcd'
>>> temp[-1:] + temp[1:-1] + temp[:1]
'ebcda'
>>>
简而言之,python具有华丽的字符串切片语法。你可以用它做魔术。
答案 1 :(得分:2)
这也适用于temp = 'x'
。
temp[-1] + temp[1:-1] + temp[0] if temp[1:-1] else temp[::-1]
答案 2 :(得分:1)
只是为了好玩:
>>> temp = "abcde"
>>> temp2 = list(temp)
>>> temp2[0],temp2[-1]=temp2[-1],temp2[0]
>>> temp = ''.join(temp2)
>>> temp
'ebcda'
答案 3 :(得分:1)
python中的字符串是不可变的,所以你不能简单地这样做:
mystr[0] = mystr[-1]
要交换字符串中的字母,您可以将其变为list
,然后只需更改列表的顺序:
mystr = "abcde"
mylist = list(mystr)
store = mylist[0], mylist[-1]
mylist[0] = store[1]
mylist[-1] = store[0]
print ''.join(mylist)
打印:
ebcda
答案 4 :(得分:0)
word = input()
wordLength = len(word)
print(word[wordLength-1]+word[1:wordLength-1]+word[wordLength-wordLength])
答案 5 :(得分:0)
我偶然发现了这个问题,在看完答案之后,我发现这可能是最简单的方法:
mystring= input(cantastif)
print(mystring[-1]+mystring[1:8]+mystring[0])
我故意使用了一个例子,因为我觉得它更容易理解
答案 6 :(得分:0)
both = Foo.objects.all().annotate(Count("bar1__value")
).annotate(Count("bar2__value", distinct=True))
这是我的菜鸟脑子想出的。
答案 7 :(得分:0)
def front_back(word):
word_list = list(word)
keep_in_mind = word_list[0], word_list[-1]
word_list[0] = keep_in_mind[1]
word_list[-1] = keep_in_mind[0]
return (''.join(word_list))
print(front_back('a'))
答案 8 :(得分:-1)
您可以执行以下操作:
myString = input()
newString = (myString[1:len(myString)-1])
print(myString[len(myString)-1]+newString+myString[0])
完成!