renix1

Calculadora com multiprocessing (very stupid)

Dec 14th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.35 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3. import multiprocessing as mp
  4.  
  5. def conta(queue):
  6.     print("Resolvendo a conta...")
  7.     def reconhecimento_numeros(entrada):
  8.         if 'x' in entrada or '*' in entrada:
  9.             xis = entrada.find('x') if 'x' in entrada else entrada.find('*')
  10.         elif '+' in entrada:
  11.             xis = entrada.find('+')
  12.         elif '-' in entrada:
  13.             xis = entrada.find('-')
  14.         elif '/' in entrada:
  15.             xis = entrada.find('/')
  16.         pri_num, seg_num = float(entrada[:xis:]), float(entrada[xis+1::])
  17.         return pri_num, seg_num
  18.     conta = queue.get()
  19.     if conta == "vezes":
  20.         entrada = queue.get()
  21.         print('Entrada para conta:', entrada)
  22.         pri_num, seg_num = reconhecimento_numeros(entrada)
  23.         print("O resultado é %.1f\n" % (pri_num*seg_num))
  24.     elif conta == "mais":
  25.         entrada = queue.get()
  26.         print('Entrada para conta:', entrada)
  27.         pri_num, seg_num = reconhecimento_numeros(entrada)
  28.         print("O resultado é %.1f\n" % (pri_num+seg_num))
  29.     elif conta == "menos":
  30.         entrada = queue.get()
  31.         print('Entrada para conta:', entrada)
  32.         pri_num, seg_num = reconhecimento_numeros(entrada)
  33.         print("O resultado é %.1f\n" % (pri_num-seg_num))
  34.     elif conta == "divisão":
  35.         entrada = queue.get()
  36.         print('Entrada para conta:', entrada)
  37.         pri_num, seg_num = reconhecimento_numeros(entrada)
  38.         print("O resultado é %.1f\n" % (pri_num/seg_num))
  39.     else:
  40.         print("Não reconhecemos esta operação aritmética ainda...\nNos desculpe!\n")
  41.  
  42. def mandar_conta(queue, entrada):
  43.     print("Reconhecimento iniciado!")
  44.     print('Entrada:', entrada)
  45.     print("Conta de", end=": ")
  46.     if 'x' in entrada or '*' in entrada:
  47.         print('Vezes\n')
  48.         queue.put('vezes')
  49.     elif '+' in entrada:
  50.         print('Mais\n')
  51.         queue.put('mais')
  52.     elif '-' in entrada:
  53.         print('Menos\n')
  54.         queue.put('menos')
  55.     elif '/' in entrada:
  56.         print('Divisão\n')
  57.         queue.put('divisão')
  58.     queue.put(entrada)
  59.  
  60. if __name__ == '__main__':
  61.     while True:
  62.         queue = mp.Queue()
  63.         c1 = mp.Process(target=conta, args=(queue,))
  64.         c1.daemon = True
  65.         entrada_usuario = input("Digite uma conta: ")
  66.         c1.start()
  67.         mandar_conta(queue, entrada_usuario)
  68.         c1.join()
Advertisement
Add Comment
Please, Sign In to add comment