只能将 str(不是“numpy.float64”)连接到 str

只能将 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)连接字符串。

typeerror 只能将 str 而不是 numpy float64 连接到 str

下面是错误如何发生的示例。

主程序
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)连接字符串。