我是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')


输出为:


  '你好,世界'

最佳答案

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

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语句以忽略空格字符,但我认为此功能不是必需的。

关于python - Python:为什么我的代码以所有CAPS结尾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51823203/

10-12 21:08
查看更多