Advertisement
DomMisterSoja

(otmizado)Confia no Pai(Deus),Pai é bom demais

Sep 27th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.75 KB | None | 0 0
  1. import random
  2. from time import sleep
  3.  
  4. def proc(n):
  5.     arquivo = open('iris.dat', 'r')
  6.     geral = []
  7.     ivirgi = []
  8.     ivers = []
  9.     iset = []
  10.     global porcentagem
  11.     global cporcent
  12.     global k
  13.     for i in arquivo:
  14.         info = i.split(',')
  15.         contagem = 0
  16.         x = []
  17.         dist = []
  18.         for i in info:
  19.             if contagem <= 3:
  20.                 i = float(i)
  21.                 x.append(i)
  22.                 if contagem == 3:
  23.                     for j in range(4):
  24.                         n=(usuario[j]-x[j])**2
  25.                         dist.append(n)
  26.                     n1=0
  27.                     n2=0
  28.                     for x in dist:
  29.                         n1+=x
  30.                     n2=n1**(1/2)
  31.                     geral.append(n2)
  32.             if contagem == 4:
  33.                 if (i == 'Iris-virginica\n'):
  34.                     ivirgi.append(n2)
  35.                 elif (i == 'Iris-setosa\n'):
  36.                     iset.append(n2)
  37.                 elif (i == 'Iris-versicolor\n'):
  38.                     ivers.append(n2)
  39.             contagem += 1
  40.     geral = sorted(geral)
  41.     ivirgi = sorted(ivirgi)
  42.     ivers = sorted(ivers)
  43.     iset = sorted(iset)
  44.     SIvirg = 0
  45.     SIvers = 0
  46.     SIset = 0
  47.  
  48.     while(k-1 >= len(geral)):
  49.         print('k extrapola o o número de amostras')
  50.         k=int(input('Valores de k na checagem\n'))
  51.  
  52.     for i in range(k):
  53.         if geral[i] in ivirgi:
  54.             SIvirg += 1
  55.         elif geral[i] in ivers:
  56.               SIvers += 1
  57.         elif geral[i] in iset:
  58.             SIset += 1
  59.     check2=[]
  60.     if SIvirg >= SIvers:
  61.         if SIvirg>=SIset:
  62.             check2.append('Iris-virginica\n')
  63.     if SIvers >= SIvirg:
  64.         if SIvers>= SIset:
  65.             check2.append('Iris-versicolor\n')
  66.     if SIset >= SIvirg:
  67.         if SIset>=SIvers:
  68.             check2.append('Iris-setosa\n')
  69.  
  70.     provacheck=[]
  71.     provacheck.append(random.choice(check2))
  72.     if escolha <= 2:
  73.         print('Os dados da flor inserida, mostram que ela é :',random.choice(provacheck))
  74.     if escolha==3:
  75.         if usuario[4] in provacheck:
  76.             porcentagem+=1
  77.         cporcent += 1
  78.     arquivo.close()
  79.  
  80. escolha = 0
  81. while(escolha!=4):
  82.     k=0
  83.     print('1-Usuario da informações em um única linha\n2-Usuario  da informações de cada vez\n3-Calibragem\n4-Sair\n')
  84.     escolha=int(input('Digite a opção\n'))
  85.  
  86.     if(escolha==1):
  87.         usuario = []
  88.         x=input('Insira as informações da flor\n')
  89.         x=x.split(',')
  90.         k=int(input('Valores de k na checagem\n'))
  91.         for i in x:
  92.             a=float(i)
  93.             usuario.append(a)
  94.         proc(k)
  95.     if(escolha==2):
  96.         usuario = []
  97.         k=int(input('Valores de k na checagem\n'))
  98.         for i in range(4):
  99.             a = float(input('Insira os dados\n'))
  100.             usuario.append(a)
  101.         proc(k)
  102.     if(escolha==3):
  103.         porcentagem = 0
  104.         cporcent = 0
  105.         tamanho=0
  106.         nome=input('diga o nome do arquivo\n')
  107.         arquivo1 = open(nome,'r')
  108.         k=int(input('Valores de k na checagem\n'))
  109.         for i in arquivo1:
  110.             info = i.split(',')
  111.             contagem = 0
  112.             usuario = []
  113.             tamanho+=1
  114.             for i in info:
  115.                 if contagem <= 3:
  116.                     i = float(i)
  117.                     usuario.append(i)
  118.                 if contagem == 4:
  119.                     usuario.append(i)
  120.                     proc(k)
  121.                 contagem += 1
  122.         if tamanho==cporcent:
  123.             porcent = porcentagem * 100 / cporcent
  124.             print(f'A taxa de acerto foi de {porcent}%')
  125.         arquivo1.close()
  126.     if(escolha==4):
  127.         sleep(1)
  128.         print('O programa será encerrado, até a proxima.')
  129.         sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement