3
respostas

DICIONARIOS

Boa tarde.. tenho que transformar o meu código que foi feito em listas, em dicionários.. como eu faço isso?

listaDeCores   =[]
lstModelo      =[]
lstCor         =[]
lstNumeracao   =[]
lstQtd         =[]
lstValor       =[]

def cadastro():
        print(20 * "-")
        print("Cadastro do tênis")
        print(20 * "-")

        modelo     = validarModelo()
        numeracao  = validarNumeracao()
        quantidade = validarQtd()
        valor      = validarValor()
        cor        = validarCor()

        lstModelo.append(modelo)
        lstCor.append(cor)
        lstNumeracao.append(numeracao)
        lstQtd.append(quantidade)
        lstValor.append(valor)

def validarModelo():
    print("Digite um dos modelos correspondente a esses: ",listaDeModelos)
    while True:
        modelo = input("Qual o modelo? ")
        if modelo.upper() in listaDeModelos:
            return modelo.upper()
        print("Você deve digitar um dos modelos correspondente a esses: ",listaDeModelos)


def validarNumeracao():
    while True:
        numeracao = input("Qual a Numeração? : ")
        if int(numeracao) >= 22 and int(numeracao) <= 46:
            return numeracao 
        print("Você deve digitar uma Numeração entre 22 e 46")


def validarQtd():
    while True:
        quantidade = input("Qual a Quantidade de Pares? ")
        if int(quantidade) > 0:
            return quantidade
        print("Quantidade não pode ser menor ou igual a zero")

def validarValor():
    while True:
        valor = input("Qual o valor? R$:  ")
        if int(valor) > 0:
            return valor
        print("O valor deve ser maior que zero.")

def validarCor():
    while True:
        cor = input ("Qual a cor? ")
        if cor in listaDeCores:
             return cor
        print("Cor não cadastrada.")
        resp = input("Quer cadastrar essa nova cor? s/n: ")
        if resp == 's':
             listaDeCores.append(cor)
             print("Cor cadastrada com sucesso!")
def relatorio():
    total = 0
    for i in range(len(lstModelo)):
        print(lstModelo[i],lstNumeracao[i],lstQtd[i],lstValor[i],lstCor[i])
        total = total + float(lstValor[i])
    print (30 * "-")
    print("O Valor Total em R$: ", total)

def venda():
    modelo = input("Qual o modelo? ")
    numeracao = input("Qual a Numeração? ")
    cor = input ("Qual a cor? ")
    quantidade = input("Quantos pares? ")

    for x in range(len(lstModelo)):
        if lstModelo[x]    == modelo and    \
            lstNumeracao[x] == numeracao and \
            lstCor[x]       == cor:
            if quantidade <= lstQtd[x]:
                print("Produto escolhido", modelo, numeracao, cor)
                print("Quantidade de pares", quantidade)
                print("Preço total",float(lstValor[x]) * int(quantidade))
                confirmar = input("Confirmar venda? sim ou nao ")
                if confirmar == 'sim':
                    lstQtd[x] = str(int(lstQtd[x]) - int(quantidade))
                    print("Vendido.")
                else:
                    print("Venda cancelada")

def atualizarPrecos():
    modelo = input("Qual o modelo? ")
    numeracao = input("Qual a Numeração?  ")
    cor = input ("Qual a cor? ")
    quantidade = input("Quantos pares? ")

    for x in range(len(lstModelo)):
        if lstModelo[x] == modelo and   \
            lstNumeracao[x] == numeracao and \
            lstCor[x] == cor:
                print("Modelo: ",lstModelo[x])
                index = lstModelo[x].index(modelo)
                novoPreço = input("Novo preço é: ")
                lstValor[index] = novoPreço

def cadastroCores():
    cores = input("Cadastre uma cor:")
    listaDeCores.append(cores)
    print(listaDeCores)

import os
import sys
lista=[]
def arquivo():
        arq = open('dados.txt', 'w')
        for x in range(len(lstModelo)):
                arq.writelines(lstModelo[x])
                arq.writelines(',')
                arq.writelines(',')
                arq.writelines(lstNumeracao[x])
                arq.writelines(',')
                arq.writelines(lstCor[x])
                arq.writelines(',')
                arq.writelines(lstQtd[x])
                arq.writelines(',')
                arq.writelines(lstValor[x])
                arq.writelines('\n')
3 respostas

Naiara,

Todos os tipos de dados no Python como: strings, listas e tuplas — são coleções sequenciais. Isto significa que os itens na coleção estão ordenados da esquerda para a direita e eles usam números inteiros como índices para acessar os valores que eles contêm.

Dicionário é um tipo diferente de coleção. Ele é um tipo de mapeamento nativo do Python. Um mapa é uma coleção associativa desordenada. A associação, ou mapeamento, é feita a partir de uma chave, que pode ser qualquer tipo imutável, para um valor, que pode ser qualquer objeto de dados do Python.

Como exemplo, vamos criar um dicionário para traduzir palavras em inglês para Espanhol. Para este dicionário, as chaves são strings.

Uma maneira de criar um dicionário é começar com o dicionário vazio e adicionar pares chave-valor. O dicionário vazio é denotado {}

eng2sp = {}

eng2sp['one'] = 'uno'

eng2sp['two'] = 'dos'

eng2sp['three'] = 'tres'

A primeira atribuição cria um dicionário chamado eng2sp. As outras atribuições adicionam novos pares chave-valor para o dicionário. O lado esquerdo define o dicionário e a chave a ser associada. O lado direito define o valor a ser associado a essa chave. Nós podemos imprimir o valor atual do dicionário da maneira usual. Os pares chave-valor do dicionário são separados por vírgulas. cada par contém uma chave e um valor separado por dois pontos.

A ordem dos pares pode não ser a que você esperava. O Python usa algoritmos complexos, projetados para acesso muito rápido, para determinar onde os pares chave-valor são armazenadas em um dicionário. Para os nossos propósitos, podemos pensar que esta ordenação é imprevisível.

Outra maneira de criar um dicionário é fornecer uma lista de pares chave-valor usando a mesma sintaxe que a saída anterior. Como isso vc pode fazer as alterações no seu código para usar essa nova estrutura de dados.

Eu não faço ideia de como formular isso dentro do meu código :/ Por ser o usuário que informa oque quer, para formação da lista... eu não sei como implementar isso.

Naiara,

Esse script é um projeto do curso ou é pessoal!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software