学习 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)如果,例如stringToIntis 'mystring', aValueError将被提出。
为了避免ValueErrors,只要您不制作生成器表达式,请使用 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)