只能将 str(不是“numpy.float64”)连接到 str
Can only concatenate str (not “numpy.float64”) to str
Python“TypeError: can only concatenate str (not “numpy.float64”) to str”发生在我们尝试连接字符串和 numpy 浮点数时。要解决该错误,请将 numpy 浮点数转换为字符串,例如str(my_float)
连接字符串。
下面是错误如何发生的示例。
主程序
import numpy as np my_float = np.power(13.3, 3, dtype=np.float64) # ⛔️ TypeError: can only concatenate str (not "numpy.float64") to str result = 'It costs: ' + my_float
我们尝试使用加法 (+) 运算符连接字符串和导致错误的 numpy 浮点数。
左侧和右侧的值需要是兼容的类型。
解决错误的一种方法是将 numpy 浮点数转换为字符串。
主程序
import numpy as np my_float = np.power(13.3, 3, dtype=np.float64) result = 'It costs: ' + str(my_float) print(result) # 👉 It costs: 2352.637
我们将 numpy 浮点数传递给str()
类,并在连接两个字符串之前将其转换为字符串。
如果您有一个包含在字符串和浮点数中的数字,则需要将字符串转换为浮点数(或整数)以将两个数字相加。
主程序
import numpy as np my_float = np.power(13.3, 3, dtype=np.float64) result = float('10.3') + my_float # 👇️ or use np.float64 # result = np.float64('10.3') + my_float print(result) # 👉 2362.9370000000004
我们将字符串传递给float()
类以将其转换为浮点数。请注意,int()
如果需要将字符串转换为整数,也可以使用该类。
重要提示:如果您使用
input()
内置函数,则用户输入的所有值都会转换为字符串(甚至是数值)。使用加法 (+) 运算符连接字符串的替代方法是使用
格式化字符串文字。
主程序
import numpy as np str_1 = 'it costs: ' num_1 = np.power(13.3, 3, dtype=np.float64) result = f'{str_1} {num_1} usd' print(result) # 👉️ 'it costs: 2352.637 usd'
格式化字符串文字 (f-strings) 让我们通过在字符串前加上
f
.确保将表达式括在大括号 –{expression}
中。
如果不确定变量存储的类型,请使用内置type()
类。
主程序
import numpy as np str_1 = 'it costs: ' print(type(str_1)) # 👉️ <class 'str'> print(isinstance(str_1, str)) # 👉️ True num_1 = np.power(13.3, 3, dtype=np.float64) print(type(num_1)) # 👉️ <class 'numpy.float64'> print(isinstance(num_1, np.float64)) # 👉️ True
类型类返回对象的类型。
如果传入的对象是传入类的实例或子类,则isinstance
函数返回。True
结论#
Python“TypeError: can only concatenate str (not “numpy.float64”) to str”发生在我们尝试连接字符串和 numpy 浮点数时。要解决该错误,请将 numpy 浮点数转换为字符串,例如str(my_float)
连接字符串。