【问题标题】:Check if the character is the VERY LAST one in my string? [duplicate]检查该字符是否是我的字符串中的最后一个字符? [复制]
【发布时间】:2016-03-16 07:32:04
【问题描述】:

对不起,如果这是重复的,但我还没有找到任何明确的答案。

基本上,我的程序应该像这样大写一个字符串:

'some words'

变成这样:

'Some Words'

这是我的代码:

mystring = "some words"
copy_of_mystring = ""
word = ""

for i in mystring:
    if i==" ":
        for j in range(1):

            #capitalize if my word has more than 1 letter
            if len(word) > 1:
                word=str.upper(word[0]) + word[1:]

            #capitalize if word has only 1 letter
            elif len(word)==1:
                word=str.upper(word[0])

            copy_of_mystring += word + " "
        word = ""
    else:
        word += i
print(copy_of_mystring)

所以基本上我的第一个循环将i 添加到word 直到i 是一个空格。

然后我的第二个循环将开始并大写word并将其添加到copy_of_mystring,这部分正在工作。

这就是我的问题出现的时候。当我的第一个循环“构建”我的最后一个单词时,它当然不会在它之后找到任何空格,所以我的问题来自这种情况:

if i==" ":

我试过这个:

if i==" " or i==mystring[-1]:

但是,在几个字符与最后一个字符相同的字符串中,例如'morgana',它会以这样的方式结束

'Morg N'

那么,有没有办法检查我的角色 i 是否是 mystring 中的最后一个?

P.S:很抱歉,如果这听起来像是一个非常基本的错误,但我仍在学习我们可以用字符串做的所有事情。

【问题讨论】:

  • 我认为 my_string.title() 就足够了...
  • 你也可以将空格上的字符串拆分成一个数组,数组中每个字符串的第一个数字大写,然后用空格重新连接数组的元素(将数组重组成一个字符串)。
  • 退出循环时,word 将包含最后处理的单词。只需大写即可。
  • 我不明白你为什么要检查最后一个。你只关心单词的第一个字母
  • 因为我只在下一个字符是空格时才将word 大写,但对于最后一个字符则不起作用,因为它后面没有空格。

标签: python python-3.x


【解决方案1】:

Python 字符串已经通过 title() 方法支持这一点。

>>> 'some words'.title()
'Some Words'

【讨论】:

  • 这显然是一个家庭作业
猜你喜欢
  • 2020-07-15
  • 2013-01-06
  • 1970-01-01
  • 2018-10-15
  • 2023-03-28
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多