首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码wars : python的标题案例

代码wars : python的标题案例
EN

Stack Overflow用户
提问于 2016-09-30 18:00:17
回答 2查看 1.2K关注 0票数 2
代码语言:javascript
复制
def title_case(title, minor_words = 0):
    title = title.lower().split(" ")
    title_change = []
    temp = []
    if minor_words != 0 :
        minor_words = minor_words.lower().split(" ")
        for i in range(len(title)):
            if (i != 0 and title[i] not in minor_words) or (i == 0 and title[i] in minor_words):
                temp = list(title[i].lower())
                temp[0] = temp[0].upper()
                title_change.append("".join(temp))
            else:
                title_change.append(title[i])
            temp = []
    else:
        for i in range(len(title)):
            temp = list(title[i])
            temp[0] = temp[0].upper()
            title_change.append("".join(temp))
            temp = []
    return " ".join(title_change)

你好,这是我的python代码。这是一个问题:如果字符串中的每个单词都是(a)大写的(即只有单词的第一个字母是大写的)或(b)被认为是例外,并且被完全放在小写,则字符串被认为是大写的,除非它是大写的第一个单词。

编写一个函数,将字符串转换为标题大小写,给出一个可选的异常列表(较小的单词)。次要单词的列表将作为一个字符串给出,每个单词由一个空格分隔。您的函数应该忽略次要单词字符串的情况--即使小单词字符串的大小写发生了更改,它也应该以相同的方式运行。

我试图不使用大写()来执行this.It,似乎我的代码在我的计算机上运行得很好,但是代码大战只是提示"IndexError: list索引超出范围“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-30 18:13:05

如果title有前导或尾随空格或两个连续空格(如"foo bar" ),代码就会中断。它还会在空字符串上中断。这是因为任何一种标题上的title.lower().split(" ")都会给您一个空字符串,作为您的“单词”之一,然后temp[0]将在稍后导致一个IndexError

您可以通过使用没有参数的split()来避免这个问题。它将在任意组合的任何类型的空格上拆分。多个空格将被视为一个空格,而前导或尾随空格将被忽略。当调用split时,空字符串将变为空列表,而不是包含一个空字符串的列表。

票数 2
EN

Stack Overflow用户

发布于 2016-09-30 18:20:41

作为@Blckknght解释的补充,这里有一个很有启发性的控制台会话,它将逐步了解变量所发生的情况。

代码语言:javascript
复制
>>> title = ''
>>> title = title.lower().split(' ')
>>> title
['']
>>> temp = list(title[0])
>>> temp
[]
>>> temp[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

我在其他输入(非空白)上尝试了您的解决方案,它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39797434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档