Pular para o conteúdo

Expressões numéricas

Checa expressões numéricas, verifica as chaves, colchetes, parênteses da expressão e operadores matemáticos.

Se em algum lugar da expressão o programa encontrar um erro do tipo, {1-[4*(2-3)-7]/10], observe que abre-se a chave, mas não tem fecha-chaves, no lugar tem um fecha-colchete, o programa acusa 'Expressão Incorreta!'.
Lucas _luks
Hits: 25.368 Categoria: Python Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Checa expressões numéricas, verifica as chaves, colchetes, parênteses da expressão e operadores matemáticos.

Se em algum lugar da expressão o programa encontrar um erro do tipo, {1-[4*(2-3)-7]/10], observe que abre-se a chave, mas não tem fecha-chaves, no lugar tem um fecha-colchete, o programa acusa 'Expressão Incorreta!'.
Download mathexpr_checker.py Enviar nova versão

Esconder código-fonte

# -*- coding: cp1252 -*-
import string

has_chv=False
has_key=False
has_par=False 
has_fchv=False
has_fkey=False
has_fpar=False 


error_operators=['!','#','$','%','&','\ ' ,':',';','<','>','?','@']

expr_true=True

expr=raw_input('Digite uma expressão numérica para ser checada:\n Ex: 1-{2+[9*1(1-3)-5]/4}. OBS: Testes aritméticos não serão feitos\n')

for k in range(len(expr)): # detecta controladores ( '{','[','('  e seus inversos e detecta equações)
    if expr[k] == '{':
        has_chv=True
    elif expr[k] == '[':
        has_key=True
    elif expr[k] == '(':
        has_par=True
    elif expr[k] == '}':
        has_fchv=True
    elif expr[k] == ']':
        has_fkey = True
    elif expr[k] == ')':
        has_fpar = True
    elif expr[k] == '=':
        print '= -> equações não são permitidas'
        expr_true=False

    for x in string.ascii_letters: #detecta vars ou icogn
        if expr[k] == x:
            print expr[k]+' -> icógnitas ou variáveis não são permitidas'
            expr_true=False

    for w in error_operators: #detecta operadores invalidos
        if expr[k] == w:
            print expr[k]+' -> operador inválido'
            expr_true=False

if has_chv == True and has_fchv == False: #sintaxe de expressão checker {
    print '}? -> expressão em aberto'
    expr_true=False
    
if has_key == True and has_fkey == False: #sintaxe de expressão checker [
    print ']? -> expressão em aberto'
    expr_true=False

if has_par == True and has_fpar == False: #sintaxe de expressão checker (
    print ')? -> expressão em aberto'
    expr_true=False

if expr_true == True: #correct checker
    print "Expressão correta!"

Python, GKT e Konachan.com

Jogo da forca criado em Python

Meu programa de Matematica

Lista Encadeada em Python

Programa para calcular a média e a nota trimestral

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.