只能将 str(不是“numpy.int64”)连接到 str
Can only concatenate str (not “numpy.int64”) to str
当我们尝试连接字符串和 numpy int 时,会出现 Python“TypeError: Can only concatenate str (not “numpy.int64”) to str”。要解决该错误,请将 numpy int 转换为字符串,例如str(my_numpy_int)
连接字符串。
下面是错误如何发生的示例。
import numpy as np str_1 = 'it costs: ' num_1 = np.power(10, 3, dtype=np.int64) # ⛔️ TypeError: can only concatenate str (not "numpy.int64") to str result = str_1 + num_1
左侧和右侧的值需要是兼容的类型。
解决错误的一种方法是将 numpy int 转换为字符串。
import numpy as np str_1 = 'it costs: ' num_1 = np.power(10, 3, dtype=np.int64) # 👇️ convert to str result = str_1 + str(num_1) print(result) # 👉️ 'it costs: 1000'
我们将 numpy 整数传递给str()
类,并在连接两个字符串之前将其转换为字符串。
如果您有一个包含在字符串和整数中的数字,则需要将字符串转换为整数(或浮点数)以将两个数字相加。
import numpy as np str_1 = '500' num_1 = np.power(10, 3, dtype=np.int64) result = int(str_1) + num_1 print(result) # 👉️ 1500
我们将字符串传递给int()
类以将其转换为整数。请注意,float()
如果需要将字符串转换为浮点数,也可以使用该类。
input()
内置函数,则用户输入的所有值都会转换为字符串(甚至是数值)。使用加法 (+) 运算符连接字符串的替代方法是使用
格式化字符串文字。
import numpy as np str_1 = 'it costs' num_1 = np.power(10, 3, dtype=np.int64) result = f'{str_1} {num_1} usd' print(result) # 👉️ 'it costs 1000 usd'
f
.Make sure to wrap expressions in curly braces – {expression}
.
If you aren’t sure what type a variable stores, use the built-in type()
class.
import numpy as np str_1 = 'it costs' print(type(str_1)) # 👉️ <class 'str'> print(isinstance(str_1, str)) # 👉️ True num_1 = np.power(10, 3, dtype=np.int64) print(type(num_1)) # 👉️ <class 'numpy.int64'> print(isinstance(num_1, np.int64)) # 👉️ True
The type class returns
the type of an object.
The isinstance
function returns True
if the passed in object is an instance or a subclass of
the passed in class.
Conclusion #
The Python “TypeError: Can only concatenate str (not “numpy.int64″) to str”
occurs when we try to concatenate a string and a numpy int. To solve the error,
convert the numpy int to a string, e.g. str(my_numpy_int)
to concatenate the
strings.