int(digits) == 123456
, что является истинным значением.Так что conv_d = digits != None
.Поскольку digits
не равно None
, conv_d
установлено в true.
Возможно, вы хотели это:
conv_d = int(digits) if digits is not None else None
Помните, что строка, содержащая что-то, не являющееся числом, вызоветисключение, хотя!Если вы предпочитаете 0 или Нет для этих значений, напишите небольшую функцию:
def toint(s):
try:
return int(s)
except (ValueError, TypeError):
return None # or 0