IndexError :Replacement index 1 out of range for positional args tuple

IndexError->索引异常

  • 报错代码
    • 异常描述
      • 解决

报错代码

在进行字符串格式化时报错

# 通过列表索引设置参数
my_list = ['单身狗', '20']
print("姓名:{0[0]}, 年龄 {0[1]}".format(my_list))#正常的
print("姓名:{[0]}, 年龄 {[1]}".format(my_list))#异常的

我尝试使用这些语句学习*和**的区别,结果刚刚运行就报错了。

异常描述

发生异常: IndexError
Replacement index 1 out of range for positional args tuple
翻译:
位置参数元组的替换索引 1 超出范围
好像是因为参数数量不对等导致的错误

解决

我采取了format的默认格式化的方式来解决这个问题,代码如下

print("姓名:{}, 年龄 {}".format(*my_list))
#输出结果为:姓名:单身狗, 年龄 20

理由:
单星号(*)的用法–>定义函数时使用:将参数以元组(tuple)的形式导入(收集参数)!
如:

def fun(*args):          #*可以接收任意多个
    print(args)           #此处的args又把接收的任意多个数据放为一个整体:元组中

fun(1,2,3,4)
# 输出为:(1, 2, 3, 4)

既然是元组的索引错误,那就用元组的方式导入,当然这个方法需要借助format的默认格式化方式,format的默认格式化不加位置参数

print('{}'.format('默认格式化'))

当然我的代码比较简单,需要根据自己的代码做出相对应的调整

你可能感兴趣的:(python问题集,python,开发语言)