raw_input and print in python do not work in functions

0

Well I'm starting now in python and I have to create this project of a quiz that completes the spaces of the sentences. But, my difficulty lies in understanding why raw_inputs and print are not working within functions. Could someone give me a tip? My code looks like this:

#coding = utf-8
data = {
'facil': {
    'frase': 'Chuva _1_ . _2_ . _3_ . e _4_ deitado.',
    'respostas': ['cai', 'em', 'pe', 'corre'],
    'falhas': 5
},
'medio': {
    'frase':
    'Quando falamos de Google _1_, _2_ Drive, _3_ e _4_; nos referimos a aplicativos de armazenamento em nuvem(cloud computing).\n',
    'respostas': ['Drive', 'One', 'Dropbox', 'Mega'],
    'falhas':
    2
},
'dificil': {
    'frase':
    'Sabendo que x é igual a 7 e ele segue repetindo por mais três vezes e cada repetição soma se 6 e na ultima subtrai 2, concluimos que o segundo valor é: _1_, o terceiro valor é _2_, para o quarto resultamos em _3_ e para finalizar temos _4_ sendo a soma dessa sequência \n.',
    'respostas': ['13', '19', '23', '62'],
    'falhas':
    0
 }
}
def nivel():
while True:
  nivel = raw_input('Escolha entre o nivel facil, medio e dificil').lower()
  if nivel in data:
        return nivel
  print 'Esse nivel nao existe tente novamente'


def jogada(nivel): # Ao digitar o nivel ele é passado para essa função
frase = data[nivel]['frase']
chances = data[nivel]['falhas']
index = 0

  while index <len(data[nivel]['respostas']) and chances >=0:
     print frase
     respostas = raw_input(['frase']+str(index + 1 +'\n')).lower()
  if respostas == data[nivel]['respostas']:
     print 'Correto.'
     frase = frase.replace(str(index +1)).data[nivel]['repostass'][index] #Troca os espaços em brancos por palavra digitadas se forem corretas
    
asked by anonymous 01.04.2018 / 17:41

1 answer

0

You need to call the functions, the most elegant way in Python is to create a main () function:

def main():
    nivel_escolhido = nivel()
    jogada(nivel_escolhido)

if __name__ == "__main__":
    main()

So your functions will be executed.

Just by pointing out that there are some errors in the while loop of the jogada() function.

    
01.04.2018 / 21:35