Python:无法切片字符串

1 投票
4 回答
904 浏览
提问于 2025-04-18 06:49

我正在用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'

撰写回答