我正在尝试在tkinter GUI中正确设置程序格式,但是由于某些原因,我收到了错误消息:
product += ('%-10s%-10s%-0s%-0s') % (str(names[i])+ str(addedHours[i]) + str(payOut) + "\n") TypeError: not enough arguments for format string
以下是与该问题相关的代码片段(请注意,名称/小时/薪水和---部分工作正常,而变量产品下的代码却行不通)
def printPayroll(self):
i = 0
product = ""
for y in names:
payOut = float(wage[i]) * float(addedHours[i])
product += ('%-10s%-10s%-0s%-0s') % (str(names[i])+ str(addedHours[i]) + str(payOut) + "\n")
i += 1
self.text.insert(END,("%-10s%-10s%-0s") % ('Name', 'Hours', 'Pay\n'))
self.text.insert(END,("%-10s%-10s%-0s") % ('---','-----','---\n'))
self.text.insert(END, product)
答案 0 :(得分:1)
您收到的错误消息TypeError: not enough arguments for format string
告诉您确切的问题是什么。
考虑以下代码行:
product += ('%-10s%-10s%-0s%-0s') % (str(names[i])+ str(addedHours[i]) + str(payOut) + "\n")
上面的代码在功能上与此相同:
s = str(names[i]) + str(addedHours[i]) + str(payOut) + "\n"
product += ('%-10s%-10s%-0s%-0s') % s
您的格式字符串需要四个参数,但您只给出了一个。简单的解决方案是将每个+
替换为,
:
product += ('%-10s%-10s%-0s%-0s') % (str(names[i]), str(addedHours[i]), str(payOut), "\n")