Python 为什么这段代码不起作用?

Python 为什么这段代码不起作用?,python,function,Python,Function,我是python新手,这应该是一个简单的函数练习 我写了这个函数,它应该把索引为偶数的字符串的每个字符都放在大写字母中,但它不起作用 当我写了一个非常类似的(但不是函数)时,它起了作用。为什么? 代码1: 输出:AbCdEfG 代码2: Output:'ABCDEFG'我认为这可能是个错误,但是现在您正在传递args def func(*args) 请注意参数前的星号。在你的程序中这样做会给我们 ('abcdefg',) 因此,去掉这个,您可以轻松地遍历字符串 h = 'abcdefg'

我是python新手,这应该是一个简单的函数练习

我写了这个函数,它应该把索引为偶数的字符串的每个字符都放在大写字母中,但它不起作用

当我写了一个非常类似的(但不是函数)时,它起了作用。为什么?

代码1:
输出:AbCdEfG

代码2:
Output:'ABCDEFG'

我认为这可能是个错误,但是现在您正在传递
args

def func(*args)
请注意参数前的星号。在你的程序中这样做会给我们

('abcdefg',)
因此,去掉这个,您可以轻松地遍历字符串

h = 'abcdefg'

def func_test(a):
    f = ''
    
    for stuff in a:
        if a.index(stuff) % 2 == 0:
            f = f + stuff.upper()
        else:
            f = f + stuff.lower()
    return f

print(func_test(h))
传统在线创建

x = lambda a: ''.join([let.upper() if count % 2 == 0 else let for count,let in enumerate(a)])
print(x('abcdefg'))
输出

AbCdEfG

正是这样,我本应该更加认真地回顾一下。非常感谢你!用你自己的话来说,如果你写了
def func_test(*a):
,你打算把
*
的目的是什么?
x = lambda a: ''.join([let.upper() if count % 2 == 0 else let for count,let in enumerate(a)])
print(x('abcdefg'))
AbCdEfG