#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))