1
I need to make a menu in the console in Python, but the same should be triggered by letters and not numbers, for example:
def menu():
print('''
MENU:
[C] - Cadastrar novo voto
[R] - Ver Resultado
[S] - Sair
''')
str(input('Escolha uma opção: '))
So when the person type c
on the keyboard she accesses register new vote. I can do through numbers but the exercise asks it to be this way.
This is the code of the program I made:
def menu():
print('''
MENU:
[C] - Cadastrar novo voto
[R] - Ver Resultado
[S] - Sair
''')
str(input('Escolha uma opção: '))
cadastrarVoto = "c"
verResultado = "r"
sair = "s"
def porcentagem (n, t):
return (n/t)*100
menu()
if(cadastrarVoto):
while (cadastrarVoto):
n = int(input("Digite o número de um jogador para cadastrar um voto (0 = Voltar ao menu): "))
if (n != 0):
votos = 23 * [0.0]
total = 0
while (n != 0):
if (n < 0 or n > 23):
print("Informe um valor entre 1 e 23 ou 0 para sair!")
else:
votos[n - 1] += 1
total += 1
n = int(input("Digite o número de um jogador para cadastrar um novo voto (0 = Voltar ao menu): "))
if (n == 0):
menu()
if (verResultado):
print("Resultado da votação:")
print("Foram computados %de votos." % (total))
print("Jogador / Votos / Porcentagem")
i = 0
melhor = 0
melhorPorcentagem = porcentagem(votos[0], total)
while i < 23:
porcentagemAtual = porcentagem(votos[i], total)
print("%d / %d / %.1f" % (i + 1, votos[i], porcentagemAtual))
if (porcentagemAtual > melhorPorcentagem):
melhor = i
melhorPorcentagem = porcentagemAtual
i += 1
print("O melhor jogador foi o número %d, com %d votos, correspondendo a %.1f porcento do total de votos" % (
melhor + 1, votos[melhor], melhorPorcentagem))
if (sair):
print ('Programa Finalizado')
You are asking the user what option he wants and is playing out. On line 9 within the function
menu
, instead ofstr(input('Escolha uma opção: '))
you can save to a variable or even return the chosen option. Ex.:return str(input('Escolha uma opção: '))
– fernandosavio