迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Python 错误 TypeError: 'in <string>' requires string as left operand, not int

作者:迹忆客 最近更新:2022/08/04 浏览次数:

当我们将 in 运算符与整数和字符串一起使用时,会出现 Python “TypeError: 'in ' requires string as left operand, not int”。 要解决该错误,请将整数括在引号中,例如 '5' in my_str

下面是产生该错误的代码

my_str = '13579'

result = 13 in my_str

# ⛔️ TypeError: 'in <string>' requires string as left operand, not int
print(result)

错误结果如下

python typeerror in requires string

我们使用 in 运算符检查导致错误的字符串中是否包含整数。

为了解决这个错误,我们必须将整数括在引号中以使其成为字符串。

my_str = '13579'

result = '13' in my_str
print(result)  # 👉️ True


if '13' in my_str:
    # 👇️ this runs
    print('13 包含在字符串中')
else:
    print('13 不包含在字符串中')

将整数括在引号中可以解决错误,因为当右侧的值是字符串时,左侧的值也必须是字符串。

如果我们将 int 存储在变量中,请在使用 in 运算符之前使用 str() 类将其转换为字符串。

my_str = '13579'

my_int = 13

result = str(my_int) in my_str
print(result)  # 👉️ True


if str(my_int) in my_str:
    # 👇️ this runs
    print('13 包含在字符串中')
else:
    print('13 不包含在字符串中')

str() 类可用于将对象(例如 int)转换为字符串。

一旦左侧和右侧的值属于同一类型,错误就解决了。

in 运算符测试成员资格。 例如,如果 x in s 的成员,则 x in s 的计算结果为 True,否则计算结果为 False。

my_str = 'num is 13579'

print('5' in my_str)  # 👉️ True
print('0' in my_str)  # 👉️ False

上面程序运行结果如下

python in operator

如果我们需要检查子字符串是否不在字符串中,请改用 not in 运算符。

my_str = 'num is 13579'

print('5' not in my_str)  # 👉️ False
print('0' not in my_str)  # 👉️ True

x not in s 返回 x in s 的否定。

所有内置序列和集合类型都支持 innot in 运算符。

请注意,空字符串始终被视为任何其他字符串的子字符串。

my_str = '13579'

print('' in my_str)  # 👉️ True

本站文章均为原创或翻译,转载请发邮件至 1244347461@qq.com 进行申请,未经许可,禁止转载。经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便