Я пытаюсь разобрать уравнения в виде подготовленного текста (например: «0,035 * Vp-31.5»),Python3: Почему list.append ('string') присоединяется к элементу списка, чтобы не перечислить себя?
экстракт десятичных чисел, сохранить их в списке и заменить их на «X» в уравнении. Тогда все вернуть ...
Странный выход: ('0,035 * Vp-31,5', ['0.03531.5'])
Оно должно быть: ('X * Vp -X», ['0,035', '31.5'])
def const(eqNo):
temp = ''
args = []
eq = eq_s[eqNo]
for i in range(len(eq)):
if eq[i].isdigit():
temp+=eq[i]
elif eq[i] == '.':
temp+=eq[i]
elif eq[i].isdigit == False:
if len(temp) != 0:
args.append(temp)
temp = ''
else:
if len(temp) != 0:
args.append(temp)
for j in args:
eq.replace(j,'X',1)
return eq, args
Я не знаю, является ли это вашей единственной проблемой, но для вашего elif нужны некоторые круглые скобки: 'elif eq [i] .isdigit() == False:'. Или, более идиоматично, 'elif not eq [i] .isdigit():'. Или, подумайте об этом, вы уже знаете, что 'isdigit' является ложным, поскольку условие' if' потерпело неудачу, поэтому, я думаю, вы можете удалить условие 'elif' и просто написать' else: ' – Kevin