You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python输出8列数据列表时报unsupported format string错误如何解决

报错原因
  • 循环内print的format参数错误传入了nombre_empleado、cedula、horastrabajadas三个完整列表,而非当前索引n对应的单个元素。Python字符串格式化无法直接按指定的长度格式处理列表对象,因此抛出该错误。
  • 额外问题:你定义了empleadonum作为员工ID,但输出第一列用了从0开始计数的n,和表头的ID定义不匹配。
修复方案

修改循环内format的参数,给三个列表增加索引[n]取对应位置的单个元素,同时调整列宽避免长内容折行、给数值增加保留两位小数的格式优化输出效果,修正后代码如下:

empleadonum =[1,2,3,4,5,6,7,8,9,10]
nombre_empleado = ['Juan Medina', 'Lucho Espino', 'Jose Alejandro', 'Sebastian Sandoval', 'Maria Rodriguez', 'Jacky Zamora', 'Ernesto Dominguez', 'Nahuel Damitra', 'Maria ALejandra', 'Arnaldo Moreno']
cedula =  ['7-711-2153', '123123123', '23231231', '2132123', '2326566', '123655', '56567244', '12312312', '8779898', '1231231']
horastrabajadas =  [25.0, 20.0, 20.1, 30.2, 56.3, 21.3, 20.2, 40.1, 21.0, 21.0]
pagoporhora = 7.5
salariobruto = 0.0
segurosocial = 0.0
n=0
print( "{:<10} {:<20} {:<15} {:<18} {:<15} {:<15} {:<18} {:<15}" .format ('ID','Nombre', 'Cédula', 'Horas trabajadas', 'Pago por hora', 'Salario bruto', 'Total deducciones', 'Sueldo por pagar'))
while n < 10:
    salariobruto =horastrabajadas[n]*8.1
    segurosocial = salariobruto*0.0975
    seguroeducativo = salariobruto * 0.0125
    impuestorenta = salariobruto * 0.10
    totaldeducciones = segurosocial + seguroeducativo + impuestorenta
    salariofinal = salariobruto - totaldeducciones
    print("{:<10} {:<20} {:<15} {:<18} {:<15} {:<15.2f} {:<18.2f} {:<15.2f}".format(empleadonum[n], nombre_empleado[n], cedula[n], horastrabajadas[n], pagoporhora, salariobruto, totaldeducciones, salariofinal))
    n=n+1
print("gracias")

内容的提问来源于stack exchange,提问作者Preguntador simple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:36:02