Ola, estou tentando que meu programa avalie 3 variaveis em um arquivo de texto.
As variaveis sao:
X = 0.9
Y = 1.5
Z = 2.0
Consigo ler o arquivo e "printar", mas quando tento avaliar a variavel, como:
if X>1:
print("Variavel X maior que 1")
O programa diz que ela nao foi definida.
Como posso resolver ?
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Como você importou o arquivo externo?
Digamos que estas variáveis foram definidas no arquivo ext.py
então, você deve importar o arquivo escrevendo
import ext
Assim, sempre que for acessar uma variável ou função dentro do arquivo, você deve utilizar ext.
como prefixo. Por exemplo:
ext.X
é utilizado para acesar a variável X
no arquivo ext.py
. Com isso, seu desvio condicional deve ser parecido com
if ext.X > 1:
print("A variavel X é maior que 1")
Qual o resultado de print(X) ?
Veja os tipos de dados do Python primeiramente
REF: Tipos de Dados básicos em C
Números inteiros, float, double são comparados de maniera diferente do que uma String / Texto.
O seu arquivo de texto:
"
X = 0.9
Y = 1.5
Z = 2.0
"
Sendo uma string, voce pode procurar por um texto igual ou semelhante ( if 'procuro' in texto ), buscar pelo indice de alguma letra ou sub-string.
Até aqui OK ?
Já os número são guardados na memoria de maneira diferente! Por isso é necessário converter ( PARSE / CASTING ) para cada valor.
OPÇÂO: Se não quiser fazer isso pode utilizar a biblioteca JSON. Más é necessário respeitar a estrutura do JSON.
Não irei entrar em detalhe sobre de como os números são armazenados.
Nesse caso específico. Corte a string até chegar no número que você quer.
Poderia utilizar os nomes das variáveis como uma chave de um dicionário por exemplo. Existem inumeras maneiras de resolver !
# Lê o arquivo de texto
with open('seuarquivo.txt', 'r') as arquivo:
linhas = arquivo.readlines()
# Inicializa as variáveis
X = 0.0
Y = 0.0
Z = 0.0
# Itera sobre as linhas do arquivo e atribui os valores às variáveis
for linha in linhas:
if linha.startswith('X'):
X = float(linha.split('=')[1].strip())
elif linha.startswith('Y'):
Y = float(linha.split('=')[1].strip())
elif linha.startswith('Z'):
Z = float(linha.split('=')[1].strip())
# Agora você pode usar as variáveis normalmente
if X > 1:
print("Variável X maior que 1")
if Y > 1:
print("Variável Y maior que 1")
if Z > 1:
print("Variável Z maior que 1")
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.