检查字符串是整数还是浮点数

新手上路,请多包涵

所以我正在创建一个程序来显示数字系统,但是我在第一个障碍上遇到了问题。该程序将从用户那里获取一个数字,然后在整个程序中使用该数字来解释几个计算机科学概念。

在解释我的第一部分数字系统时,程序会说明它是什么类型的数字。我通过将字符串转换为浮点数来做到这一点。如果浮点数后面只有“.0”,那么它会将其转换为整数。

目前我正在使用这段代码

while CorrectNumber == False:
try:
    Number = float(NumberString) - 0
    print (Number)
except:
    print ("Error! Not a number!")

这很有用,因为它显示用户是否输入了数字。但是我不确定现在如何检查小数点后的值以检查我是否应该将其转换为整数。有小费吗?

原文由 user6470150 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 416
2 个回答

如果字符串可转换为整数,则它应该仅为数字。应该注意的是,正如@cwallenpoole 所说,由于“-”字符,这种方法不适用于负输入。你可以这样做:

 if NumberString.isdigit():
    Number = int(NumberString)
else:
    Number = float(NumberString)

如果您已经将 Number 确认为浮点数,则始终可以使用 is_integer (适用于负数):

 if Number.is_integer():
    Number = int(Number)

原文由 francisco sollima 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是检查方法,

 a = '10'
if a.isdigit():
   print "Yes it is Integer"
elif a.replace('.','',1).isdigit() and a.count('.') < 2:
   print "Its Float"
else:
   print "Its is Neither Integer Nor Float! Something else"

原文由 Mohideen bin Mohammed 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题