Python:为什么我的代码以所有CAPS结尾?

时间:2018-08-13 13:11:47

标签: python python-3.x

我是python的新手,因此我正在上在线课程。我的问题是,当我尝试创建代码以大写其他所有字母时,都会将我的所有代码都大写。如果您知道出了什么问题,请告诉我。

def myfunc(*args):

    new_string = ''
    x = 0

    while x < len(args):
        if x % 2 == 0:
            new_string += args[x].upper() 
        else:
            new_string += args[x].lower()
        break
    return new_string

我的输入是:

myfunc('hello world')

,输出为:

  

“ HELLO WORLD”

1 个答案:

答案 0 :(得分:1)

以下是我会做的。 (使用注意:如果一个单词以大写字母结尾,那么如果下一个单词由单个空格分隔,则将从大写字母开始。)

def myfunc(word):
    new_string = ''

    for i, char in enumerate(word):
        if char == ' ':
            continue
        if i % 2 == 0:
            new_string += char.upper()
        else:
            new_string += char.lower()
    return new_string

注意:

我替换了*args参数,并使其变为word,以使您更清楚地了解需要传递给函数的内容,并确保仅传递1个字符串。我省略了字符串类型的验证/检查。

在循环中计算位置时,请使用enumerate()将元组返回为(索引,项目)。就像您的变量x一样,我将其命名为i

通常使用参数'i'代替x来保持计数,尽管这只是样式。

遍历字符串以获取其各个字符。尽管使用带有计数器的while循环是可行的,但是for循环更干净,并且可以自动返回正确的项目,而无需使用计数器从字符串中手动对其进行索引。

我添加了第一个if语句来忽略空格字符,但是我认为此功能不是必需的。