FIquei com a seguinte dúvida: Ele importou o random fora da função principal (jogar), por acaso quando formos escolher a forca no projeto jogos.py, vai gerar um erro ?
FIquei com a seguinte dúvida: Ele importou o random fora da função principal (jogar), por acaso quando formos escolher a forca no projeto jogos.py, vai gerar um erro ?
O Python limita seus blocos de códigos por indentação, portanto o que você declara dentro de uma indentação, só funciona dentro dela ou da indentação dentro dela. O professor importou a classe random no escopo do código fora de qualquer indentação, logo a classe random pode ser usada em qualquer parte do código, seja do mesmo arquivo, seja por arquivos externos que importem esse arquivo.py.
Se fosse importado dentro de uma indentação, e por ventura houvesse a tentativa de utilizar fora da indentação a classe importada, aí sim geraria um erro. Situação demonstrada abaixo:
import random
random... #Ok pode ser usado
for blabla in blabla:
random... #Ok pode ser usado
if blabla :
random... #Ok pode ser usado
E
def funcao():
import random
random... #ok pode ser usado
if blabla:
random... #ok pode ser usado, ainda estamos dentro da identação da funcao()
for blabla in blabla:
random... #ainda pode ser usado pois ainda está dentro da identação da funcao
variavel = random... #Opa, erro. Não importamos random no escopo principal do programa, somente dentro da funcao()
#Será gerado uma exception NameError dizendo que não reconhece o que é "random"
entendi, como ele fez a importação do arquivo todo, não importa se a biblioteca ficou fora da função certo ?
import random #fora da def
def jogar ():
código do jogo
eu no caso pensei que teria que colocar dentro da def para funcionar:
def jogar():
import random
código do jogo
Aí só funcionaria dentro da função jogar(), qualquer tentativa de usar fora resultaria em erro