use*_*537 1 python validation int startswith
我试图看一个字符串(它必须是一个字符串)是否是一个数字.
到目前为止,我正在使用,isdigit()但显然isdigit没有考虑负数.
如果我这样做isdigit(a),a = -1我会得到假.
如果我这样做isdigit(a),a = 1我就会变成现实.
到目前为止,我有,
def rotationKeyValidated(rotationKeyStr):
if rotationKeyStr.startswith('-') and rotationKeyStr[1:].isdigit():
int(rotationKeyStr)
return rotationKeyStr.isdigit()
Run Code Online (Sandbox Code Playgroud)
我试图看看它是否以负号开头,其余的是一个数字那么好......我不知道因为我不想使用多个return语句.
您可以使用try/except块并尝试将字符串转换为整数:
def rotationKeyValidated(rotationKeyStr):
try:
int(rotationKeyStr)
except ValueError:
return False
return True
Run Code Online (Sandbox Code Playgroud)
这种编码风格包含Python的EAFP原理,并且是大多数Python程序员的首选.它也非常强大,处理任何可以转换成的字符串int.
由于您的赋值只需要一个return语句,因此您可以添加一个else:块和一个标志:
def rotationKeyValidated(rotationKeyStr):
try:
int(rotationKeyStr)
except ValueError:
flag = False
else:
flag = True
return flag
Run Code Online (Sandbox Code Playgroud)
该else:如果块将只执行try:块执行而不产生错误.
好吧,既然你必须使用str.isdigit,你总是可以这样做:
def rotationKeyValidated(rotationKeyStr):
if rotationKeyStr.startswith('-'):
rotationKeyStr = rotationKeyStr[1:]
return rotationKeyStr.isdigit()
Run Code Online (Sandbox Code Playgroud)
if语句检查字符串是否以字符串开头,如果是-,则删除该字符.在那之后,我们可以安全地返回结果str.isdigit.
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |