Python:无法切片字符串
我正在用Python写一个程序,用户需要输入一个名字或单词。这个程序的功能是把这个单词的第一个字母剪掉,然后把它放到单词的最后面,并在最后加上两个字母“py”。
举个例子:如果输入的值是“Shashank”,我得到的结果是“shashankspy”,但我想要的结果是“hashankspy”。
我写的代码是这样的:
pyg = 'ay'
original = raw_input('Enter a word:')
if len(original) > 0 and original.isalpha():
print original
word = original.lower()
first = word[0]
new_word = word + first + pyg
new_word[1:]
else:
print 'empty'
我没有得到想要的结果。请帮帮我!
4 个回答
0
你也可以这样做,添加
new_word = new_word[1:len(new_word)]
pyg = 'ay'
original = raw_input('Enter a word:')
if len(original) > 0 and original.isalpha():
print original
word = original.lower()
first = word[0]
new_word = word + first + pyg
new_word = new_word[1:len(new_word)]
else:
print 'empty'
0
一旦你输入了空格,original.isalpha() 就会返回假,因为空格不是字母A到Z中的任何一个。
2
你需要从这个词中取出一部分,使用 [1:]
:
new_word = word[1:] + first + pyg
另外,不用检查长度是否大于零,直接检查它是否为空就可以了:
if original and original.isalpha():
示例:
>>> def make_new_word(s):
... pyg = 'py'
... if s and s.isalpha():
... word = s.lower()
... first = word[0]
... new_word = word[1:] + first + pyg
... return new_word
... else:
... return 'empty'
...
>>> original = raw_input('Enter a word: ')
Enter a word: Shashank
>>> make_new_word(original)
'hashankspy'
2
你犯了一个简单的错误,可以这样来解决:
new_word = new_word[1:len(new_word)]
pyg = 'ay'
original = raw_input('Enter a word:')
if len(original) > 0 and original.isalpha():
print original
word = original.lower()
first = word[0]
new_word = word + first + pyg
new_word = new_word[1:len(new_word)]
else:
print 'empty'