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

Python实现输入整数检测与字符串长度统计功能问题求助

问题根因

Python的input()函数的所有返回值默认都是字符串类型,哪怕输入内容是纯数字,拿到的也是字符串格式的变量,所以你原有逻辑中用type()判断变量类型是否为int/float的分支永远不会触发。
你需要判断的是字符串的内容是否符合整数格式,而非变量本身的类型。

修复方案

直接调用字符串自带的isdigit()方法,该方法会自动判断字符串是否全部由数字字符组成,返回布尔值即可满足你的需求。
同时注意你原代码中的函数名string_lenght属于拼写笔误,正确拼写为string_length,不影响运行但建议修正。

修复后代码

def string_length(mystring):
       return len(mystring)

# 主程序
mystring = input("Type a word: ")
if mystring.isdigit():
    print("Sorry, you typed an integer")
else:
    print("The word you typed has", string_length(mystring), "characters")

可选扩展(兼容负整数判断)

如果你需要兼容带负号的整数(比如输入-123也判定为整数),可以修改判断逻辑为:

# 首字符是负号且剩余内容全为数字,或者整个内容全为数字,都判定为整数
if (mystring.startswith('-') and mystring[1:].isdigit()) or mystring.isdigit():
    print("Sorry, you typed an integer")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:48:02