Dúvida ao declarar variável - Python

Minha dúvida seria, existe alguma hierarquia para declaração de variáveis no Python? Um exemplo retirado de um exercício:

O código se encontra assim, na qual a primeira var é “numero_secreto”, as seguintes var existentes são declaradas depois de “chute=int(chute_str)”.

print("*********************************")
print("Jogo!")
print("*********************************")

numero_secreto = 60 

chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto

if (acertou):
     print("Você Acertou")

else:
    if (maior):
        print("Você errou, seu chute foi maior que o número.")

    elif (menor):
        print("Você errou, seu chute foi menor que o número.")

Haveria diferença se todas as variáveis fossem declarada na parte superior em conjunto com “numero_secreto”? como mostro abaixo.

print("*********************************")
print("Jogo!")
print("*********************************")

numero_secreto = 60 
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto

chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

if (acertou):
     print("Você Acertou")

else:
    if (maior):
        print("Você errou, seu chute foi maior que o número.")

    elif (menor):
        print("Você errou, seu chute foi menor que o número.")

sim faz toda a diferença

a variavel chute so contem algum valor apos vc fazer int(chute_str)

portanto so faz sentido vc comparar se o chute é maior ou menor que um dado numero depois disso

o que acontece é que python, por ser uma linguagem dinamica, pode assumir que chute foi usado pela primeira vez numa comparação numerica e vai assumir um valor default que pode ser 0. depende da linguagem.

contudo sim o que vc propor poderia funcionar com algum uso de lambdas, mas eu acho que vai trazer mais complicaçoes…

Boa tarde.
Essa é uma questão de ESCOPO, essa é uma das várias páginas que explicam um pouco sobre isso:


Pela minha parca experiência, se vc declarar no escopo global, para usá-la dentro de uma função voce deverá incluir a linha global var. dentro da função. pra ela entender que se trata da var global, senão é gerada uma var local. Espero ter ajudado.

Gostei dessa da ideia desse joguinho kk fiz um tmb usando a biblioteca random pra gerar números aleatórios

import random
frase = ‘Bem vindo ao jogo’
print(’{:#^40}’.format(frase))
secreto = random.randint(1,10)
numero = int(input(‘Digite um número: 1 até 10\n’))
maior = numero > secreto
menor = numero < secreto
if(numero == secreto):
print(‘Parabéns você acertou’)
else:
if(maior):
print(‘Você errou, {} é maior que o número secreto!’.format(numero))
print(‘número secreto = {}’.format(secreto))
elif(menor):
print(‘Você errou, {} é menor que o numero secreto’.format(numero))
print(‘número secreto = {}’.format(secreto))

se alguém acertar me fale, pq até agr n acertei kk

E pelo o que eu vi cara, faz diferença sim pq se vc declara as variáveis tudo antes e só dps de declaradas, você começa a criar o seu script de código, o Python vai dar erro msm, pq em Python temos que ser bastante organizado em questão de código.