Issue
I am brand new to programming, learning Python3 from an online course. This exercise asks me to write a program which reads a string using input()
, and outputs the same string but with the first and last character exchanged (example: Fairy becomes yairF). There is likely a simpler way to do this with more advanced functions, however, for the purposes of this exercise, I am supposed to write the program using only classes, substrings and indices. Here is what I have now:
myString = input()
newString = (myString[1:len(myString)-1])
print(myString[len(myString)-1],newString,myString[0])
Using the example of input 'Fairy', this outputs 'y air F', which is not what I'm looking for. I also tried
myString = input()
newString = (myString[1:len(myString)-1])
newString[0] = myString[len(myString)-1]
newString[len(newString)-1] = myString[0]
print(newString)
However, line three gave me: TypeError: 'str' object does not support item assignment
. So I'm guessing I can't assign new values to places in an index. My other approach, below, also gave me an error:
myString = input()
newString = (myString[1:len(myString)-1])
lastString = str(myString[len(myString)-1],newString,myString[0])
print(lastString)
Line three gave me: TypeError: decoding str is not supported
, so it seems that I can't combine them that way. Any tips on handling this?
Solution
Try this:
>>> temp = "abcde"
>>> temp[1:-1]
'bcd'
>>> temp[-1:] + temp[1:-1] + temp[:1]
'ebcda'
>>>
In short, python has magnificent string slicing syntax. You can do magic with it.
Answered By - ducin
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.