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

如何用Python正则表达式判断输入是否含整数并输出指定结果

问题分析与修复方案

先说说你这段代码里的几个核心问题:

  • 如果输入字符串里没有整数,re.search(r'\d+', yourString)会返回None,这时候调用.group()会直接抛出AttributeError,程序直接崩溃,根本走不到后续的判断逻辑
  • 就算成功匹配到数字,number是一个字符串(比如"123"),你拿它和布尔值True比较,结果永远是False,完全不符合你的判断需求

下面是两种修复后的实现方案,你可以根据需求选择:

方案一:用正则表达式正确判断

import re
your_string = input()
# 先捕获匹配结果,再判断是否存在
match_result = re.search(r'\d+', your_string)
if match_result:
    print("Correct")
else:
    print("Incorrect")

解释:

  • re.search()找到匹配时会返回一个匹配对象,找不到则返回None;在Python里None属于假值,非空的匹配对象属于真值,直接用if match_result:就能判断是否存在整数
  • 不需要调用.group(),因为我们只需要确认「是否存在」,不需要提取具体的数字内容

方案二:不用正则,遍历字符判断

如果不想依赖正则表达式,也可以直接遍历字符串的每个字符来检查:

your_string = input()
# 检查是否有任意一个字符是数字
has_integer = any(char.isdigit() for char in your_string)
print("Correct" if has_integer else "Incorrect")

解释:

  • char.isdigit()会判断单个字符是否为数字字符
  • any()函数会遍历传入的迭代器,只要其中有一个元素为真就返回True,刚好满足我们「只要包含整数就判定正确」的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:16:47