tuple index out of range

本文详细介绍了Python中如何使用可变参数以及不同调用方式的影响。通过实例展示了当使用星号(*)传递列表作为参数时,函数接收的是列表元素;而直接传递列表时,函数将整个列表视为单一参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      定义可变参数,仅仅在参数前面加了一个 * 号。在函数内部,参数 params 接收到的是一个tuple。调用该函数时,可以传入任意个参数,包括0个参数。 

def test(*params):
    print("有%d个参数"%len(params))
    print("他们分别是:",params)
    print("第一个参数是:",params[0])

test('hello','world')

nums = ['you', 'love', 'me']
# *nums表示把nums这个list的所有元素作为可变参数传进去
test(*nums)

    输出结果为:

有2个参数
他们分别是: ('hello', 'world')
第一个参数是: hello
有3个参数
他们分别是: ('you', 'love', 'me')
第一个参数是: you

 

若没有将在 nums 前加 * ,则params接受的参数为 (['you', 'love', 'me'], )

def test(*params):
    print("有%d个参数"%len(params))
    print("他们分别是:",params)
    print("第一个参数是:",params[0])

nums = ['you', 'love', 'me']
test(nums)  # 注意,这里直接将列表 nums 作为tuple传入给参数 params

输出结果为:

有1个参数
他们分别是: (['you', 'love', 'me'],)
第一个参数是: ['you', 'love', 'me']

此时,若试着打印第二个参数,则会出现越界错误, tuple index out of range

def test(*params):
    print("有%d个参数"%len(params))
    print("他们分别是:",params)
    print("第二个参数是:",params[1])

nums = ['you', 'love', 'me']
test(nums)

    输出结果为:

有1个参数
他们分别是: (['you', 'love', 'me'],)
----> 4     print("第二个参数是:",params[1])
IndexError: tuple index out of range

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值