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
相关产品推荐
相关产品推荐

