3

私はプログラミングの初心者で、オンライン コースで 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)

ただし、3行目で次のようになりました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)

3 行目で : が返さTypeError: decoding str is not supportedれたので、そのように組み合わせることができないようです。これを処理するためのヒントはありますか?

4

10 に答える 10

12

これを試して:

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

要するに、python には素晴らしい文字列スライス構文があります。あなたはそれで魔法をすることができます。

于 2013-06-18T21:49:32.593 に答える
2

楽しみのために:

>>> temp = "abcde"
>>> temp2 = list(temp)
>>> temp2[0],temp2[-1]=temp2[-1],temp2[0]
>>> temp = ''.join(temp2)
>>> temp
'ebcda'
于 2013-06-18T22:01:34.403 に答える
1

これも同様にtemp = 'x'機能します。

temp[-1] + temp[1:-1] + temp[0] if temp[1:-1] else temp[::-1]
于 2013-06-19T01:26:37.187 に答える
0
word = input()
wordLength = len(word)
print(word[wordLength-1]+word[1:wordLength-1]+word[wordLength-wordLength])
于 2016-06-29T06:11:29.570 に答える
-1

次の操作を簡単に実行できます。

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

終わり!

于 2013-06-18T21:54:05.037 に答える