Surge, agora, um problema desse outro acima, se eu digito umaVariavel = ((5+4) /2) + ((5+5) / 3), o python resolve, mas se eu colocar uma string com esta expressão na variável dentro do método float, exemplo, umaVariavel = float(variavelQueContemAExpressaoEmString) dá erro de conversão, erro, ValueError: could not convert string to float: ‘5+4 /2 + 5+5 /3’. Que tipo é este sem aspas, mas em formato de texto?
Que estranho
Provavelmente deve ser a versão do seu Python, essa função com f é digamos “recente”, ou em ultimo caso pode ser um bug no interprete. Desculpa qualquer coisa, muito obrigado caro @Ariadne3512!
Então, esse problema se dá pelo simples fato de "5+4 /2 + 5+5 /3" ser diferente de 5+4 /2 + 5+5 /3, em outras palavras, "5+4 /2 + 5+5 /3" é uma string, e não um número, o Python está vendo que você quer converter uma string com caracteres especiais em float, e isso não tem como, por isso ele lança o erro: ValueError: could not convert string to float: '5+4 /2 + 5+5 /3', basicamente ele está dizendo, não posso converter essa string em float, pois ela não é digito. Agora 5+4 /2 + 5+5 /3, (sem aspas) é uma simples conta matemática que é igual a 13.666667, se "13.666667" é uma string agora sim você pode converter a mesma em float, pois o Python verá que é um digito e realizará a conversão.
Como já dito acima, é uma string com caracteres especiais.
Como resolver?!
Existem duas maneiras, uma mais trabalhosa, mas segura; E outra mais fácil, mas perigosa.
No seu caso, a maneira mais fácil, não vai te trazer nenhum risco, basta você usar a função eval(). Adicione o eval() na conversão para float e problema resolvido, observe:
resultadoExpressao = float(eval(stringExpressão)) #Esta linha resolve seu problema.
Obs.: Cuidado com o uso do eval(), é uma função que poderosa, mas que pode ser muito maléfica, segue os link’s com as referência abaixo: Eval - Documentation Eval really is dangerous