判断Python输入是否是整数,字符,或浮点数

Python中定义了string的一些内建方法,可以判断字符串的组成元素。

 

string.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返

回 True,否则返回 False

string.isalpha()

如果 string 至少有一个字符并且所有字符都是字母则返回 True,

否则返回 False

string.isdecimal()

如果 string 只包含十进制数字则返回 True 否则返回 False.

string.isdigit()

如果 string 只包含数字则返回 True 否则返回 False.

string.islower()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

string.isnumeric()

如果 string 中只包含数字字符,则返回 True,否则返回 False

string.isspace()

如果 string 中只包含空格,则返回 True,否则返回 False.

string.istitle()

如果 string 是标题化的(见 title())则返回 True,否则返回 False

string.isupper()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

但是对于浮点数来说并没有对应的方法,可以尝试通过异常处理来判断:

str = raw_input("please input the number:")

try:
    f = float(str)
except ValueError:    
    print("input is not a float!")

 

另外还可通过正则表达式来判断:

import re         #引用re正则模块
float_number = str(input("Please input the number:"))

value = re.compile(r'^[-+]?[0-9]+\.[0-9]+$')       # 定义正则表达式
result = value.match(float_number)
if result:
    print "Number is a float."
else:
    print "Number is not a float."

 

^[-+]?[0-9]+\.[0-9]+$  

^表示以后面这个字符开头,也就是以[-+]开头,[-+]表示字符-或者+之一,?表示0个或1个,也就是说符号-和+是可选的。

[0-9]表示0到9的一个数字,+表示1个或多个,也就是整数部分一个或多个数字。

\.表示的是小数点,\是转义字符因为.是特殊符号,所以需要转义。

小数部分同理,$表示字符串以前面的字符结尾,即小数部分一个或多个数字,并以数字结尾。

posted on 2017-08-07 15:23  swee632  阅读(28088)  评论(0编辑  收藏  举报

导航