在进行字符串格式化时报错
# 通过列表索引设置参数
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('默认格式化'))
当然我的代码比较简单,需要根据自己的代码做出相对应的调整