Expressões numéricas
Publicado por Lucas 28/10/2006
[ Hits: 25.140 ]
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
Cronômetro com interface gráfico utilizando a biblioteca Tkinter
Botnet em Python sem segredos!
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









