You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中'@' and '.' in 'heykidgmail.com'判断返回True

问题原因分析

你的判断语句逻辑出错是因为对Python的运算符优先级和and运算规则理解有误:

  • 首先,Python中in运算符的优先级高于and运算符,你写的'@' and '.' in wrds_indexed并不会被解析为「同时包含@和.」,实际运算顺序等价于:
    ('@') and ('.' in wrds_indexed)
    
  • 其次,Python中非空字符串的布尔值为True,因此'@'的判断结果恒为真,and运算会直接返回第二个表达式'.' in wrds_indexed的结果。也就是说你的判断条件实际只检查了字符串是否包含.,完全没有校验@是否存在,所以不含@但包含.的heykidgmail.com也会被判定为符合条件。
修复方案

将判断条件改为明确校验两个字符是否都存在即可:

if ('@' in wrds_indexed and '.' in wrds_indexed) and (len(wrds_indexed) > 13):

修改后运行代码的输出为:

['heykidhello@gmail.com']

符合预期结果。

内容的提问来源于stack exchange,提问作者Jishnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:54:04