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

Python判断正整数是否仅含奇数位的代码运行出错,求问题排查

代码问题分析及修正

存在的问题

  • 类型不匹配:代码将入参n转为字符串后拆分出的每一位是字符串类型,用于比对的onlyodd列表存储的是整数类型,类型不一致导致value in onlyodd判断永远为假,函数固定返回False。
  • 逻辑错误+循环提前终止:当前代码仅会校验第一个数位就直接返回结果,不会遍历后续所有数位,且返回逻辑不符合需求:需求要求所有数位均为奇数才返回True,只要存在一个偶数就返回False,现有逻辑会在第一位符合要求时直接返回True,忽略后续数位的偶数情况。

修正后的代码

写法1(逻辑对齐原思路)

def only_odd_digits(n):
    onlyodd = ['1','3','5','7','9']
    for value in str(n):
        if value not in onlyodd:
            return False
    return True

写法2(简洁实现)

def only_odd_digits(n):
    # 逐位转整数判断奇偶,所有位为奇数时返回True
    return all(int(digit) % 2 == 1 for digit in str(n))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:06