Java人移动到Python。Python语法:如何检查一个值(字符串)是一个字符串还是一个数字,然后执行一些操作
我想检查一个字符串是字符串还是数字,然后做一些事情。我得到此语法错误
if value.isdigit() == True
do something
else:
if value.isdigit == False
do something.
Java人移动到Python。Python语法:如何检查一个值(字符串)是一个字符串还是一个数字,然后执行一些操作
我想检查一个字符串是字符串还是数字,然后做一些事情。我得到此语法错误
if value.isdigit() == True
do something
else:
if value.isdigit == False
do something.
沟槽嵌套if
语句和显式布尔比较。此外,请不要忘记使用value.isdigit()
而不是value.isdigit
,并确保在if ...
的末尾包含冒号。
if value.isdigit():
# only digits
else:
# not only digits
我删除了显式的布尔值和事情的工作。谢谢@gyre和所有的答案。 – Raghu
我不知道你的错误是什么,但你错过了两个if语句后的冒号。如果你想检查字符串是否是字母或数字,你可以使用代表字母数字的.isalnum
方法。
if value.isalnum():
# do stuff
else:
# if it contains stuff not alphanumeric
其他方法包括isalpha
,isdigit
,isdecimal
,isidenitifier
,islower
,还有更多...
一个字符串总是一个字符串。 –
@ juanpa.arrivillaga哈哈现在听起来很愚蠢,只是根据标题 – abccd
正如在评论中提到有人说,在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
。只有例外(我相信):它不会接受二进制,八进制或十六进制文字(0b1001
,0o77
,0xff
)如果你想允许那些你需要特殊情况。
或者,如果您是正则表达式向导,则有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'>
最新错误? – zengr
这工作正常: 'if value.isdigit():print(“A digit”)else:print(“不是一个数字”)' – zengr
一个字符串总是一个字符串,而不是一个数字。你不需要任何代码来检查。如果你想检查你是否可以在一个字符串上调用'int'或'float'来产生一个int或者float,只要调用它并且捕获这个异常,如果事实证明你不能。 (这在Python中是正常的。)'isdigit'不会告诉你你需要知道什么;例如,它拒绝''''标志。 – user2357112