Python中如何在条件判断中正确校验整数输入?输入整数仍触发非数字提示的问题排查与解决
解决Python整数输入校验的问题
嘿,我来帮你捋清楚这个问题出在哪!
你代码里的核心错误在于:input()函数不管用户输入什么,返回的都是字符串类型——哪怕你输入的是数字123,temperatur1的值也是字符串"123"。而你拿这个字符串直接和type(int)(也就是<class 'int'>这个类型对象)比较,永远都不会相等,所以每次都会触发"Input must be a number!"的提示。
那该怎么修改呢?这里有两种靠谱的方案,推荐用第一种,因为兼容性更强:
方案一:用try-except捕获转换异常(推荐)
这种方法尝试把输入的字符串转成整数,如果转换失败,就说明输入不是有效的整数,抛出异常并提示错误。代码示例:
erste_einheit = "Celsius" # 假设你有这个变量的定义 temperatur1 = input("Temperatur in " + erste_einheit + ": ") try: # 尝试把输入转成整数 temperatur1 = int(temperatur1) # 转换成功,继续后续逻辑 print("输入的整数是:", temperatur1) except ValueError: # 转换失败,提示错误 print("Input must be a number!")
方案二:用字符串的isdigit()方法(适合正整数场景)
如果只需要校验正整数,可以用字符串的isdigit()方法判断,但要注意这种方法无法识别负数(比如"-123"会返回False)。代码示例:
erste_einheit = "Celsius" temperatur1 = input("Temperatur in " + erste_einheit + ": ") if temperatur1.isdigit(): temperatur1 = int(temperatur1) print("输入的整数是:", temperatur1) else: print("Input must be a number!")
简单总结下:别直接拿输入的字符串和类型对象比较,而是通过类型转换尝试或者字符串方法来判断输入是否是有效的整数,这样就能实现正确的校验啦~
内容的提问来源于stack exchange,提问作者Pandorica
相关产品推荐
相关产品推荐

