为什么在 % 样式的打印格式中使用算术表达式会出现 TypeError?
Why is it a TypeError to use an arithmetic expression in %-style print formatting?
我尝试使用两种方法输入一个浮点数并输出一个简单的结果:
t = float(input())
print('{:.2f}'.format(1.0 - 0.95 ** t))
print('%.2f' % 1.0 - 0.95 ** t)
第一种方法有效,但第二种方法出现类型错误:
unsupported operand type(s) for -: 'str' and 'float'.
这有什么问题吗?
这一行:print('%.2f' % 1.0 - 0.95 ** t)
Python 试图先做 '%.2f' % 1.0
,然后从结果中减去 0.95 ** t
。这是个问题,因为第一项是字符串,第二项是浮点数。
使用括号控制运算顺序。该行应该是:
print('%.2f' % (1.0 - 0.95 ** t))
我尝试使用两种方法输入一个浮点数并输出一个简单的结果:
t = float(input())
print('{:.2f}'.format(1.0 - 0.95 ** t))
print('%.2f' % 1.0 - 0.95 ** t)
第一种方法有效,但第二种方法出现类型错误:
unsupported operand type(s) for -: 'str' and 'float'.
这有什么问题吗?
这一行:print('%.2f' % 1.0 - 0.95 ** t)
Python 试图先做 '%.2f' % 1.0
,然后从结果中减去 0.95 ** t
。这是个问题,因为第一项是字符串,第二项是浮点数。
使用括号控制运算顺序。该行应该是:
print('%.2f' % (1.0 - 0.95 ** t))