我是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/