Dúvida ao declarar variável - Python

4 respostas
variavelprogramaçãopython
Rosmano

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.")

4 Respostas

peczenyj

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…

Campozoide

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.

A

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

A

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.

Criado 25 de setembro de 2018
Ultima resposta 28 de set. de 2018
Respostas 4
Participantes 4