在接收 raw_input 方法后,判断接收到的字符串是否为数字
例如:
1
2
|
str = raw_input ( "please input the number:" ) if str .isdigit(): |
为 True 表示输入的所有字符都是数字,否则,不是全部为数字
str 为字符串 str.isalnum () 所有字符都是数字或者字母 str.isalpha () 所有字符都是字母 str.isdigit () 所有字符都是数字 str.islower () 所有字符都是小写 str.isupper () 所有字符都是大写 str.istitle () 所有单词都是首字母大写,像标题 str.isspace () 所有字符都是空白字符、 、
、
上述的主要是针对整型的数字,但是对于浮点数来说就不适用了,那么浮点数怎么判断呢,一直在纠结这个问题,为什么非要区分整型和浮点数呢,既然都是参与运算的,全部适用浮点数不是一样吗,在得到结果后,直接转换为 int 型不是一样吗,为什么非要纠结在前期去判断是否整型或者浮点数呢,有了这样的思路,下面就好做了,例如:
我们可以通过异常来判断,异常语法如下:
try: {statements} exception: {Exception Objects} {statements}
str = raw_input("please input the number:")
try: f = float (str) exception ValueError: print ("输入的不是数字!")
还有一种纯粹判断是否为浮点数的方法,使用正则表达式:
1.# 引用 re 正则模块
1
2
3
4
5
6
7
8
9
|
import 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." |
2. 关于这个正则表达式,解释一下:
^[-+]?[0-9]+.[0-9]+$
^ 表示以这个字符开头,也就是以 [-+] 开头,[-+] 表示字符 - 或者 + 之一,
? 表示 0 个或 1 个,也就是说符号是可选的。
同理 [0-9] 表示 0 到 9 的一个数字,+ 表示 1 个或多个,也就是整数部分。
. 表示的是小数点, 是转义字符因为。是特殊符号(匹配任意单个除
之外的字符),
所以需要转义。
小数部分同理,$ 表示字符串以此结尾。
判断输入是否全为数字、字符等
s 为字符串
s.isalnum () 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha () 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit () 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower () 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper () 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle () 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace () 所有字符都是空白字符,为真返回 Ture,否则返回 False。
例如:
1
2
3
|
s = 'I LOVE YOU' s.isupper() True |