学习 Python 有点卡住。
我正在尝试将变量设置为 equalint(stringToInt)
或者如果字符串为空,则设置为None
.
我尝试这样做,variable = int(stringToInt) or None
但如果字符串为空,它将出错,而不是仅将其设置为无。
你知道解决这个问题的任何方法吗?
学习 Python 有点卡住。
我正在尝试将变量设置为 equalint(stringToInt)
或者如果字符串为空,则设置为None
.
我尝试这样做,variable = int(stringToInt) or None
但如果字符串为空,它将出错,而不是仅将其设置为无。
你知道解决这个问题的任何方法吗?
如果你想要一个像你尝试过的单线,那就去吧:
variable = int(stringToInt) if stringToInt else None
仅当不为空且为“数字”时才分配variable
给。int(stringToInt)
如果,例如stringToInt
is 'mystring'
, aValueError
将被提出。
为了避免ValueError
s,只要您不制作生成器表达式,请使用 try-except:
try:
variable = int(stringToInt)
except ValueError:
variable = None
我认为这是最清晰的方法:
variable = int(stringToInt) if stringToInt.isdigit() else None
使用它生成异常的事实:
try:
variable = int(stringToInt)
except ValueError:
variable = None
variable
这具有绑定到None
其他常见错误的令人愉快的副作用:stringToInt='ZZTop'
例如。
以下是一些选项:
捕获异常并处理它:
try:
variable = int(stringToInt)
except ValueError, e:
variable = None
这并不是那么特别,请考虑一下:
variable = None
if not stringToInt.isdigit():
variable = int(stringtoInt)
这会将 stringToInt 解析为 int 如果它是有效的,如果它是 '' 或 None 则返回原始值
variable = stringToInt and int(stringToInt)