Ir ao conteúdo
  • Cadastre-se

Python TypeError: 'int' object is not


Ir à solução Resolvido por Midori,

Posts recomendados

arredondamento = [[[1, 7, 3, 0.2], [0.14, 1, 0.33, 0.11], [0.33, 3, 1, 0.14], [5, 9, 7, 1]], [[1, 5, 0.2, 0.2], [0.2, 1, 0.11, 0.11], [5, 9, 1, 1], [5, 9, 1, 1]], [[1, 0.2, 7, 0.33], [5, 1, 9, 3], [0.14, 0.11, 1, 0.14], [3, 0.33, 7, 1]], [[1, 9, 3, 3], [0.11, 1, 0.14, 0.11], [0.33, 7, 1, 0.33], [0.33, 9, 3, 1]]]
somatoria = []
posit = -1
posit2 = -1
posit3 = -1
som = 0
for e_ in range(4):
    somato = []
    posit += 1
    somatoria.append(somato)
    for e__ in range(4):
      soma = []
      posit2 += 1
      posit3 = -1  
      somato.append(som)
      som = 0
      for e___ in range(4):
        posit3 += 1
        som += arredondamento[posit][posit2][posit3]
print(somatoria)

som += arredondamento[posit][posit2][posit3]
TypeError: 'int' object is not subscriptable

este erro acima é apresentado quando eu tento rodar o meu código, alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

@Denis Bopp

import os
linhas = []
colunas = []
valores_colunas = []
qtdColuna = int(input('DIGITE O NÚMERO DE COLUNAS DA SUA TABELA: '))
qtdLinha  = int(input('DIGITE O NÚMERO DE LINHAS  DA SUA TABELA: '))
os.system('cls')
for coluna in range(qtdColuna):
  print("COLUNA ",coluna +1)
  nom_coluna = str(input("NOME DESSA COLUNA: ") )
  colunas.append(nom_coluna)
for linha in range(qtdLinha):
  print("LINHA ",linha +1)  
  nom_linha = str(input("NOME DESSA LINHA: ") )
  linhas.append(nom_linha)
for coluna in range(qtdColuna):
  vet_coluna = []
  for linha in range(qtdLinha):
    print("ARMAZENAR VALOR EM", colunas[coluna], '&', linhas[linha])
    val = int(input(": ") )
    vet_coluna.append(val)
  valores_colunas.append( vet_coluna )
os.system('cls')
#MAIOR E MENOR PARA CADA COLUNA DA MATRIZ
menor = []
maior = []
maiores = []
menores = []
n = -1
p = -1
for position_n in range(qtdColuna):
    n += 1
    for maimen in range(qtdLinha):
        p += 1
        for p in range(qtdColuna):
            if p == 0:
                maior = menor = valores_colunas[n][p]
            else:
                if valores_colunas[n][p] > maior:
                    maior = valores_colunas[n][p] 
                if valores_colunas[n][p] < menor:
                    menor = valores_colunas[n][p]
    maiores.append(maior)
    menores.append(menor) 
#CONTADOR PARA AS DIFERENÇAS DAS LINHAS DAS COLUNAS DA MATRIZ  
difer = []  
n1 = -1
p1 = -1    
for coluna in range(qtdColuna): 
  difer_arrayzin = []
  n1 += 1 
  p1 = -1
  difer.append(difer_arrayzin)
  for linha in range(qtdLinha):
    p2 = -1
    p1 += 1
    for coluna_ in range(qtdColuna):
        p2 += 1
        min_difer = valores_colunas[n1][p1] - valores_colunas[n1][p2]
        difer_arrayzin.append(min_difer)
#APLICA A REGRA DE TRÊS NAS DIFERENÇAS
regra_min = 0
position_x = -1
position_y = -1
var_rg = -1
regra_de_tres = []
for coluna in range(qtdColuna):
    rgt = []
    position_x += 1
    position_y = -1
    var_rg += 1
    regra_de_tres.append(rgt)
    for linha in range(qtdLinha):
        for coluna_ in range(qtdColuna):
            position_y += 1
            regra_min = difer[position_x][position_y] * 9 / (maiores[var_rg] - menores[var_rg])
            rgt.append(regra_min)
#APLICA ARREDONDAMENTO AOS VALORES DA REGRA DE TRÊS
arredondamento = []
position_x2 = -1
position_y2 = -1
var_arre = 0
for arre in range(qtdColuna):
    ard = []
    position_x2 += 1
    position_y2 = -1
    arredondamento.append(ard)
    for arre1 in range(qtdLinha):
        for arre_ in range(qtdColuna):
            position_y2+= 1
            if regra_de_tres[position_x2][position_y2] == 0:
                var_arre = 1
            if regra_de_tres[position_x2][position_y2] == 1:
                var_arre = 1
            if regra_de_tres[position_x2][position_y2] > 1:
                var_arre = 3
            if regra_de_tres[position_x2][position_y2] == 3:
                var_arre = 3
            if regra_de_tres[position_x2][position_y2] > 3:
                var_arre = 5
            if regra_de_tres[position_x2][position_y2] == 5:
                var_arre = 5
            if regra_de_tres[position_x2][position_y2] > 5:
                var_arre = 7
            if regra_de_tres[position_x2][position_y2] == 7:
                var_arre = 7
            if regra_de_tres[position_x2][position_y2] > 7: 
                var_arre = 9
            if regra_de_tres[position_x2][position_y2] == 9:
                var_arre = 9
            if regra_de_tres[position_x2][position_y2] < -1:
                var_arre = 0.33
            if regra_de_tres[position_x2][position_y2] == -3:
                var_arre = 0.33
            if regra_de_tres[position_x2][position_y2] < -3:
                var_arre = 0.20
            if regra_de_tres[position_x2][position_y2] == -5:
                var_arre = 0.20
            if regra_de_tres[position_x2][position_y2] < -5:
                var_arre = 0.14
            if regra_de_tres[position_x2][position_y2] == -7:
                var_arre = 0.14
            if regra_de_tres[position_x2][position_y2] < -7: 
                var_arre = 0.11
            if regra_de_tres[position_x2][position_y2] == -9:
                var_arre = 0.11
            ard.append(var_arre) 
array = []
pos1 = -1
for array___ in range(qtdColuna):
    pos1 += 1
    pos2 = -1
    test = []
    for array_ in range(qtdLinha):
        tes = []       
        for array__ in range(qtdColuna):
            pos2 += 1
            bidimensional = arredondamento[pos1][pos2]
            tes.append(bidimensional)
        test.append(tes)
    array.append(test)       
print(array)
arredondamento = [[[1, 7, 3, 0.2], [0.14, 1, 0.33, 0.11], [0.33, 3, 1, 0.14], [5, 9, 7, 1]], [[1, 5, 0.2, 0.2], [0.2, 1, 0.11, 0.11], [5, 9, 1, 1], [5, 9, 1, 1]], [[1, 0.2, 7, 0.33], [5, 1, 9, 3], [0.14, 0.11, 1, 0.14], [3, 0.33, 7, 1]], [[1, 9, 3, 3], [0.11, 1, 0.14, 0.11], [0.33, 7, 1, 0.33], [0.33, 9, 3, 1]]]
somatoria = []
posit = -1
posit2 = -1
posit3 = -1
som = 0
for e_ in range(qtdColuna):
    somato = []
    posit += 1
    somatoria.append(somato)
    for e__ in range(qtdLinha):
      soma = []
      posit2 += 1
      posit3 = -1  
      somato.append(som)
      som = 0
      for e___ in range(qtdColuna):
        posit3 += 1
        som += arredondamento[posit][posit2][posit3]
print(somatoria)

Na realidade esse é o meu código completo, fiz a lista de arredondamento ser armazenada desse jeito para facilitar o cálculo do vetor futuramente

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!