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

Python字符串长度测量代码异常求助:输入数字错误计算长度

问题分析与修复方案

原代码核心问题

  1. input()返回值特性误解:Python中input()函数无论输入数字还是字符,返回结果永远是字符串类型,所以你用type(Names) == str做判断,结果永远为True,导致逻辑完全颠倒——输入字符串时反而提示错误,输入数字时根本走不到计算长度的分支(且原逻辑本身和需求相反)。
  2. 逻辑判断完全反转:你的需求是「测量字符串长度,输入整数/浮点数时提示无法计算」,但原代码的判断逻辑是「如果是字符串就提示错误,否则计算长度」,完全搞反了。

修复后的代码

def str_length(s):
    return len(s)

user_input = input("Enter = ")

# 判断输入是否为整数或浮点数
is_number = False
# 先尝试转换为整数
try:
    int(user_input)
    is_number = True
except ValueError:
    # 整数转换失败,尝试转换为浮点数
    try:
        float(user_input)
        is_number = True
    except ValueError:
        # 两次转换都失败,说明是普通字符串
        pass

if is_number:
    print("Sorry, integers don't have length")
else:
    print(str_length(user_input))

代码说明

  • 重命名了函数和变量,让语义更清晰(原函数名Names_to_length不符合通用命名规范,改为str_length)。
  • 通过两次try-except判断输入是否可被解析为整数或浮点数:如果可以,说明用户输入的是数字,提示错误;如果不行,说明是普通字符串,调用函数计算长度。
  • 修复了原代码的逻辑颠倒问题,完全匹配你的需求:输入数字时提示无法计算长度,输入字符串时返回长度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:19:22