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