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

统计指定范围内仅含6或仅含8的数字数量 Python代码问题求解

代码问题排查

你现有的代码存在以下几处错误:

  • 遍历对象使用错误:for循环遍历的变量是x(范围内的每个数字),但你的判断逻辑全部针对参数a(范围上限),完全没有用到遍历到的数字
  • 语法逻辑错误:6 and 8 in a的写法不符合Python逻辑规则,实际会先判断6的布尔值(恒为True),仅剩下8 in a的判断,完全无法实现「同时存在6和8」的判断逻辑
  • 类型使用错误:in运算符不能直接判断单个数字是否存在于整数中,需要先将数字转为字符串,判断字符是否存在于字符串中
  • 逻辑缺失:没有过滤包含6/8之外其他数字的情况,例如16这类带其他数字的数值会被误统计
  • return位置错误:return语句写在for循环内部,第一次循环执行完就会直接返回结果,无法完成全范围遍历
  • 范围逻辑问题:range(a)生成的是0到a-1的整数,如果你需要统计1到a范围内的数值,需要改为range(1, a+1)
修正后可用代码
def countnums(a):
    count = 0
    # 遍历1到a的所有整数
    for num in range(1, a + 1):
        num_str = str(num)
        # 判断是否仅包含6 或 仅包含8
        only_6 = all(char == '6' for char in num_str)
        only_8 = all(char == '8' for char in num_str)
        if only_6 or only_8:
            count += 1
    return count

# 测试调用,输出4,对应符合要求的数字:6、8、66、88
print(countnums(88))
相关基础学习建议

重点巩固以下Python基础知识点即可避免类似问题:

  • Python缩进规则:Python依靠缩进区分代码块,函数体、循环体、判断分支下的代码都需要正确缩进
  • 流程控制语法:for循环的执行逻辑、return语句的作用范围
  • 运算符规范:逻辑运算符and/or的正确写法、in运算符的适用场景
  • 基础数据类型操作:整数与字符串的类型转换、字符串遍历方法、all()/any()内置函数的用法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:06