如何从句子提取单词并检测是否包含0-10范围内的数字
Python数字检测功能代码修正
原代码问题点
- 核心判断逻辑错误:
if numbers in ss1的作用是判断完整的numbers列表是否为拆分后句子的子元素,并非判断是否存在任意一个0-10的数字,与需求完全不符 - 输出内容不符合预期:存在拼写错误,文本表述也和要求的输出不一致
- 兼容缺陷:如果数字和标点符号绑定(例如输入内容为
I am 10.),split()拆分后得到的元素为10.,无法匹配预设的10字符串,会出现漏判
基础修正版(改动最小,适配示例场景)
sentence1 = input("Enter any sentence (it may include numbers): ") numbers = ["1","2","3","4","5","6","7","8","9","10","0"] ss1 = sentence1.split() # 用any()判断是否存在任意一个目标数字 has_target = any(num in ss1 for num in numbers) if has_target: print("There are numbers between 0 and 10 in this sentence") else: print("There are no numbers in the sentence")
优化兼容版(适配数字带标点的场景)
import re sentence1 = input("Enter any sentence (it may include numbers): ") # 提取所有连续数字字符 extracted_nums = re.findall(r'\d+', sentence1) # 转换为整数判断是否在0-10区间 has_target = any(0 <= int(num) <= 10 for num in extracted_nums) if has_target: print("There are numbers between 0 and 10 in this sentence") else: print("There are no numbers in the sentence")
内容的提问来源于stack exchange,提问作者Arnav_8
相关产品推荐
相关产品推荐

