如何在使用 abs 后添加 str 文本(+ 不支持的操作数类型:"float"和"str")



使用 abs 后我无法添加 str 文本,因为它给了我一个错误。 如何在打印消息的末尾添加"kg"。

这是针对 python 的。

for z in range(1, 4):
if weights_array[z - 1] > new_weights_array[z - 1]:
print(names_array[z - 1],
'Your weight down by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1] + 'kg')))
elif weights_array[z - 1] < new_weights_array[z - 1]:
print(names_array[z - 1],
'Your weight went up by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1] + 'kg')))
else:
print(names_array[z - 1], 'Your weight stayed the same')

'你的体重下降: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1] + 'kg'((( 类型错误:不支持的操作数 + 的类型:"浮点数"和"str">

我希望它在打印语句的末尾添加"kg">

检查括号的位置:

print(names_array[z - 1], 'Your weight down by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1])) + 'kg')

'Your weight went up by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1])) + 'kg')

完整代码:

weights_array = [55,82,75,102]
new_weights_array = [60,79,76,95]
names_array = ['ana', 'john', 'david', 'mark']
for z in range(1, 4):
if weights_array[z - 1] > new_weights_array[z - 1]:
print(names_array[z - 1], 'Your weight down by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1])) + 'kg')
elif weights_array[z - 1] < new_weights_array[z - 1]:
print(names_array[z - 1],
'Your weight went up by: ' + str(abs(weights_array[z - 1] - new_weights_array[z - 1])) + 'kg')
else:
print(names_array[z - 1], 'Your weight stayed the same')

输出:

ana Your weight went up by: 5kg
john Your weight down by: 3kg
david Your weight went up by: 1kg

注意:

我建议以这种方式打印:

print ('{}, Your weight down by: {} kg'.format(names_array[z - 1],abs(weights_array[z - 1] - new_weights_array[z - 1]) ))

基本格式

简单的位置格式可能是最常见的用例。

Old
'%s %s' % ('one', 'two')
New
'{} {}'.format('one', 'two')
Output
one two
Old
'%d %d' % (1, 2)
New
'{} {}'.format(1, 2)
Output
1 2

此页面上的所有示例都可以与 Python 2.7、3.2、3.3、3.4 和 3.5 一起使用,无需任何其他库:

https://pyformat.info/

对于 python 3.6 及更高版本,请使用:

print(f"{names_array[z - 1]}, Your weight down by:  + {abs(weights_array[z - 1] - new_weights_array[z - 1])} kg")

否则,您可以使用 format(( 或 % 运算符:

print("{}, Your weight down by:  + {} kg}".format({names_array[z - 1], abs(weights_array[z - 1] - new_weights_array[z - 1])))

通过"+"进行字符串连接是一种不好的做法。

相关内容

最新更新