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

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

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

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

主程序
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'
Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with 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.

main.py
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.