Oii Eduardo, tudo bem?
Obrigado por compartilhar seu código no fórum! A estrutura ficou bem organizada — separar as responsabilidades em funções distintas (escolha_computador, jogador, verificar_vencedor e jogar) é exatamente a abordagem certa e deixa o código limpo e fácil de manter.
Uma consideração sobre a lógica das condições em verificar_vencedor: as expressões com and/or sem parênteses explícitos podem gerar leituras inesperadas, pois o and tem precedência maior que o or. No seu caso o resultado está correto, mas vale deixar os agrupamentos mais explícitos para garantir a intenção:
elif (
(usuario == "pedra" and computador == "tesoura") or
(usuario == "papel" and computador == "pedra") or
(usuario == "tesoura" and computador == "papel")
):
Pequena mudança, mas torna a lógica inequívoca para quem ler o código depois.
Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.
Bons estudos!
Sucesso ✨