我遇到格式类型错误,但我不知道为什么会这样


#35
name1 = "eric"
age1 = 10
name2 = "jay"
age2 = 13
print('name:',name1,'age:','%d','n'+'name:',name2,'age:','%d' % (age1,age2))

我得到了一个错误,这是:

TypeError: not all arguments converted during string formatting

我可以问一下为什么会发生这个错误吗?

您已经将几个不同的字符串传递给print方法,它们不是一个字符串,所以最后一个是不正确的:一个占位符用于两个值

'%d' % (age1,age2)

为每个值使用一个字符串和一个占位符

print('name:%s  age:%dnname:%s age:%d' % (name1, age1, name2, age2))

或者将它们全部作为print的参数传递(注意在每个参数之间加一个空格)

print('name:', name1, 'age:', age1, 'n' + 'name:', name2, 'age:', age2)

尽量使用f-strings,这样更容易使用,例如:

print(f'name: {name1}  age: %d, n name: {name2} age: %d ' % (age1, age2))

相关内容

最新更新