【发布时间】:2020-04-29 06:00:43
【问题描述】:
我想使用 *args 输入名称并将字符的偶数更改为大写,将奇数字符更改为小写。例如,Myname -> MyNaMe
我使用以下代码进行操作。但它将所有字符输出为大写。 (如果我在 myfunc1(x) 下添加任何随机变量,则它工作正常。)
使用 *args :
def myfunc1(*args):
result=''
for i in range(0,len(args)):
if i%2==0:
result+=args[i].upper()
else:
result+=args[i].lower()
print(result)
myfunc1('My Name') # prints "MY NAME"
使用随机变量:
def myfunc1(my_string):
result=''
for i in range(0,len(my_string)):
if i%2==0:
result+=my_string[i].upper()
else:
result+=my_string[i].lower()
print(result)
myfunc1('Myname') # prints MyNaMe
【问题讨论】:
-
*args 可以是参数列表。您正在发送一个参数“我的名字”。它可以比“我的名字”、“你的名字”更多。因此,当您执行 args[i] 时,您只会得到每个 args,在本例中为“我的名字”。你需要应用你在另一个循环中应用的逻辑。
-
为什么你使用
*args并将string传递给你的函数?myfunc1('My Name', 'str1', 'str2')这是*args的用法
标签: python python-3.x uppercase lowercase