Expressões numéricas
Publicado por Lucas 28/10/2006
[ Hits: 24.936 ]
Homepage: http://lucasnogueira.wordpress.com
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!'.
# -*- 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!"
Inteligência artificial com Python e Shell Script
Jogo da forca criado em Python
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Novo problema! Erro durante a atualização! (6)
Linux Mint não conecta Wi-Fi sem fio (1)
Tenho um problama de quebra de pacote e não descobri como resolver [RE... (2)
driver do repositorio debian nao atende o requisito minimo (7)
Como atribuir corretamente o CNES final baseado nas regras de certific... (3)