Ir ao conteúdo

Python como faço para retornar as "cores do meio" pelo codigo de cores em resistor?


Ir à solução Resolvido por Swalls,

Posts recomendados

Postado

<#primeira cores
    for i in valores[0]:
        if i.isnumeric():
            sequenciadecores.append(algarismos.get(i))>
 

 

 

Gostaria de que me retornasse as cores Dourada,Amarela e Rosa que seriam as cores do multiplicador porém eu não sei como fazer isso(eu sou iniciante ent tô aprendendo), e eu preciso de entregar esse trabalho até domingo,alguém poderia me ajudar?

tabela.png

Postado

@kaillany como não entendi a lógica dessa "função/objeto", se for só para retornar as cores que você quer, acho que assim funciona:

cores_adr = [IEC60062(codigo)[-2] for codigo in ("1- 10","2.70M 0.01","13m 0.02")]


cores_adr é o namespace da lista que você quer. teste usando print(cores_adr)

 

se não for isso que você quer, você precisa detalhar mais o assunto que está lidando, qual modulo está usando, e postar seu código comentado.

  • Curtir 1
Postado

@Swalls

#DICIONARIOS
algarismos = {"-" : "Nenhuma",
    "-" : "Rosa",
    "-" : "Prata",
    "-" : "Dourada",
    "0" : "Preta",
    "1" : "Marrom",
    "2" : "Vermelha",
    "3" : "Laranja",
    "4" : "Amarela",
    "5" : "Verde",
    "6" : "Azul",
    "7" : "Violeta",
    "8" : "Cinza",
    "9" : "Branca"}
   
multiplicadores = {"-" : "Nenhuma",
    "10**-3" : "Rosa",
    "10**-2" : "Prata",
    "10**-1" : "Dourada",
    "1" : "Preta",
    "10" : "Marrom",
    "10**2" : "Vermelha",
    "10**3" : "Laranja",
    "10**4" : "Amarela",
    "10**5" : "Verde",
    "10**6" : "Azul",
    "10**7" : "Violeta",
    "10**8" : "Cinza",
    "10**9" : "Branca"}
   
tolerancia = {"20" : "Nenhuma",
    "-" : "Rosa",
    "10" : "Prata",
    "5" : "Dourada",
    "-" : "Preta",
    "1" : "Marrom",
    "2" : "Vermelha",
    "0.05" : "Laranja",
    "0.02" : "Amarela",
    "0.5" : "Verde",
    "0.25" : "Azul",
    "0.1" : "Violeta",
    "0.01" : "Cinza",
    "-" : "Branca"}

#FUNÇÃO E SEPARAÇÃO DE ALAGRISMO
def IEC60062(resis):
    sequenciadecores = []
    global algarismos
    global multiplicadores
    global tolerancia
    valores = resis.split()
    valores.append(valores[0][-1])
    valores[0] = valores[0][0:-1]
    if valores[0] == '1':
        valores[0] = '1.0'

    if valores[2] == 'm':
        valores[2] = '10**-3'
    elif valores[2] == '-':
        valores[2] = '1'
    elif valores[2] == 'K':
        valores[2] = '10**3'
    elif valores[2] == 'M':
        valores[2] = '10**6'
    else:
        valores[2] = '10**9'
     
#PRIMEIRAS CORES
    for i in valores[0]:
        if i.isnumeric():
            sequenciadecores.append(algarismos.get(i))
     
#valor de tolerancia == ultima cor
    sequenciadecores.append(tolerancia.get(valores[1]))

    return sequenciadecores

#TESTES
print(IEC60062('1- 10'))
print(IEC60062('2.70M 0.01'))
print(IEC60062('13m 0.02'))

 

quero me retorne as cores multiplicador, que são o 10**-3, 10**4....

  • Solução
Postado

aparentemente a cor rosa não está incluída nas cores padrão utilizadas para codificação de resistores. Algumas fontes mencionam a cor rosa como uma cor adicional, mas ela não é amplamente utilizada ou reconhecida.

achei um exemplo do que você quer na internet, está muito mais avançado mas já que a politica do forum é não dar a resposta final aos estudantes, então é com você decifrar:
 

class ResistorColorCoder:
    color_codes = {"0": "preto", "1": "marrom", "2": "vermelho", "3": "laranja", "4": "amarelo",
                   "5": "verde", "6": "azul", "7": "violeta", "8": "cinza", "9": "branco"}

    multiplier_codes = {"nΩ": -9, "µΩ": -6, "mΩ": -3, "Ω": 0, "kΩ": 3, "MΩ": 6, "GΩ": 9}
    tolerance_codes = {"0.01": "ouro", "0.02": "prata"}

    @staticmethod
    def resistance_value(resistor_string):
        resistor_value, tolerance = (resistor_string.replace(" ", "").split("±"))[:-1]

        resistance = int(float(resistor_value[:-1]) * 10 ** ResistorColorCoder.multiplier_codes[resistor_value[-1:]])
        first_two_digits, last_two_digits = [
            ''.join(map(str, [i for i in digits]))
            for digits in [resistance // 100, resistance % 100]
        ]

        colors = [ResistorColorCoder.color_codes[d] for d in first_two_digits + last_two_digits]
        colors.append(ResistorColorCoder.tolerance_codes[tolerance[:-1]])
        return colors

# Exemplo de uso
resistor_string = "2.70mΩ ±0.01%"
colors = ResistorColorCoder.resistance_value(resistor_string)

 

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!