Expressões numéricas

Publicado por Lucas 28/10/2006

[ Hits: 24.850 ]

Homepage: http://lucasnogueira.wordpress.com

Download mathexpr_checker.py




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!'.

  



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!"

Scripts recomendados

Lista Encadeada em Python

Calculando IMC Python

Cronômetro com interface gráfico utilizando a biblioteca Tkinter

Singleton

Combinações de letras, números e muito mais


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts