Я разместил комментарии в приведенном ниже коде. условие «if» никогда не выполнялось, поэтому переменная num
никогда не инициализировалась.
if re.match(r'[0-9,.]+$', v): # this if condition never got true
num = v # the initialization never executed
также было бы неплохо проверить «re.match ()» документацию . \
Почему условие if никогда не выполнялось, потому что в вашем коде вы никогда не включали '$' внутри класса символов.
if re.match(r'[0-9,.]+$', v): # the $ should be inside [0-9,.,$]
num = v
'$' это обычно метасимвол, но внутри класса символов он лишен своей особой природы . Я пробовал использовать свою строку.
import re
String = "0,1,2,3,4,5,6,7,8,9,.,$"
if re.match(r"[0-9,.,$]", String):# $ should be inside character class
print("matched") # this print statement executes output is `matched`
else:
print("not matched")
Вывод моего кода напечатает matched