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