如何确定字符串是否可以是Python中的整数。例如:如果我编写名为位()和非数字()的函数。字符串必须是数字(1-9)或字母。
str1 = '4582'
str1.digit() == True
str2 = '458dfr'
str2.digit() == False
str3 = 'abcd'
str3.nondigit() == True
str4 = '258edcx'
str4.nondigit() == False发布于 2014-04-22 17:08:11
str对象有一个isdigit方法来完成您的任务之一。从更广泛的角度来看,最好尝试一下,看看:
def digit(s):
try:
int(s)
return True
except ValueError:
return False例如," 1234 ".isdigit()是False (有空格),但是python可以将它转换为int,所以我的digit函数是True。
发布于 2014-04-22 17:07:51
这里面有个积木。
'4582'.isdigit() == True
'458dfr'.isdigit() == False“引擎盖下”看起来可能很像:
def isdigit(self):
return all(ch in "0123456789" for ch in self)也就是说,如果您试图将它用作int,只需使用它作为int。
data = "123456"
try:
data = int(data)
except ValueError:
# handle this if your data is not a number永远不要测试某件东西是否能够被转换,然后尝试转换它。这不仅适用于int强制转换,也适用于在打开文件之前检查文件是否存在。它创建了一个争用条件,如果在检查时可以将data转换为一个数字,但是在转换为int之前,另一个线程接管并更改它,则会得到一个错误。类似地,对于文件,如果您检查该文件是否存在,但在打开它之前某些东西会删除它,那么您就是SOL。
相反,做你想做的事情,并“请求宽恕”,如果它导致一个错误。我是请求宽恕比请求许可容易。
发布于 2014-04-22 17:11:50
使用.isdigit()作为一个内置的方式来实现这一点。
>>> string = 'hello'
>>> num = '98'
>>> string.isdigit()
False
>>> num.isdigit()
True
>>> 您还可以创建自己的函数:
>>> def digit(num):
... try:
... int(num)
... return True
... except ValueError:
... return False
...
>>> digit('45')
True
>>> digit('hello')
False
>>> https://stackoverflow.com/questions/23225950
复制相似问题