Python语法:如何检查值(字符串)是字符串还是数字,然后执行某些操作

时间:2017-04-09 00:35:13

标签: python

Java家伙转向Python。

我想检查一个字符串是字符串还是数字,然后再做一些事情。我的语法错误

if value.isdigit() == True
 do something

else:
    if value.isdigit == False
       do something.

3 个答案:

答案 0 :(得分:1)

抛弃嵌套的srand()语句和显式布尔比较。另外,请勿忘记使用if代替value.isdigit(),并确保在value.isdigit末尾添加冒号。

if ...

答案 1 :(得分:0)

我不知道你的错误是什么,但是在两个if语句之后你错过了冒号。如果您想检查字符串是字母还是数字,可以使用.isalnum方法代表字母数字。

if value.isalnum():
    # do stuff
else:
    # if it contains stuff not alphanumeric

其他方法包括isalphaisdigitisdecimalisidenitifierislower等等......

答案 2 :(得分:0)

正如评论中提到的那样,在Python中从马的口中接受它是完全可以接受的:

try:
    complex(x)    # should be the most general
    result = True # Python has no objections
except ValueError:
    result = False

这将识别从-1_000_000(仅限Python3.6 +)到+.24E-2+j的任何内容。唯一的例外(我相信):它不接受二进制,八进制或十六进制文字(0b10010o770xff)如果你想允许那些你需要特殊情况。

或者,如果您是regexp向导,则有re模块。我不是,但这是尝试整数检测器:

import re
int_pattern = re.compile('^[+-]?(?:0|(?:[1-9][0-9]*))$')

int_pattern.match('-13')
# <_sre.SRE_Match object; span=(0, 3), match='-13'>