Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Meu código

stock = {
    "Caderno universitário": 50, 

    "Caneta azul": 120, 

    "Borracha branca": 30 
}
print(stock)
product_att = input('Nome do produto a ser atualizado: ')
new_qnt = int(input('Nova quantidade: '))

if product_att in stock:
    stock.update({f'{product_att}': f'{new_qnt}'})
    print('Quantidade atualizada com sucesso!')
else:
    print('Produto não encontrado no estoque.')
print(stock)
1 resposta
solução!

Muito bem, João! Parabéns, a lógica está muito boa!

Algumas sugestões:

Se atente aos padrões de estilo. Aspas simples e aspas duplas não deveriam ser usadas no mesmo código. Ou todos devem ser aspas simples, ou todos aspas duplas.

A sua lógica contém um leve bug nessa linha:

    stock.update({f'{product_att}': f'{new_qnt}'})

Dessa forma, a nova quantidade, que é um inteiro, assim como os outros elementos do estoque, está sendo enviada como uma string para o estoque, então ele receberia '50' ao invés de 50, por exemplo.

Uma forma de corrigir, seria passar as informações diretamente:

    stock.update({product_att: new_qnt})

Ou então, atualizando o atributo diretamente:

    stock[product_att] = new_qnt

Por fim, apenas por curiosidade, essa é mais uma maneira de realizar um update de um dicionário:

    stock = stock | {product_att: new_qnt}

Ou:

    stock |= {product_att: new_qnt}

Última sugestão, muito importante também, com relação à nomenclatura de suas variáveis: Não há problema nenhum em definir o nome das variáveis em inglês, mas é importante que os nomes sejam claros:

new_qnt é descitivo o suficiente, mas, é sempre preferível, escrever new_quantity, pois esses poucos dígitos a mais, deixam mais claro para alguém que está lendo, e não dão quase nenhum trabalho, ainda mais usando IDEs que têm autocomplete.

Agora, product_att não é claro como new_qnt foi.

Se refere a product_attribute? product_attention? product_attenuated? No caso, se refere a algo como product_to_update ou product_updated.

Sempre que possível, não custa nada escrever o nome completo do que aquela variável está se referindo. Deixa o código muito mais claro e fácil de ser lido, algo que é essencial ao trabalhar com outros desenvolvedores.