Trocar Valor da Variável Global pelo Valor da Função

1. Trocar Valor da Variável Global pelo Valor da Função

Luan Kleber
luanyata

(usa Ubuntu)

Enviado em 23/01/2014 - 10:41h

E ai pessoal beleza? Seguindo meu estudo em python fiz esse código para simular as operações bancarias. Está quase tudo funcionando se não posse um problema, quando realizo uma operação (2- saque ou 3- deposito) no momento da execução ele me mostra o valor sacado e o valor depositado e o saldo que ficou, porem após uma dessas duas operações quando solicito que seja impresso o meu saldo (opção 1), ele retorna o valor inicial da variável global, como se nenhuma operação tivesse sido realizada. Segue o Código:

#! /usr/bin/env python
# -*- coding:utf-8 -*-

def validacao(nome,senha):
try:
if nome == "luan" and senha==1234:
return True
elif nome== "luan" and senha != 1234:
print "Senha Invalida"

else:
print "Voce nao e cliente, procure a agencia mais proxima e venha fazer parte da nossa familia\n"
except:
print "Invalido"

def saldoC(saldo):
print "\nSeu saldo é R$ %.2f" %saldo

def saqueC(saque, saldo):
if saque <= saldo:
saldo = saldo - saque
print "Você Sacou R$ %.2f seu saldo é R$ %.2f \n" %(saque,saldo)
else:
print "Saldo Insuficiente, Seu saldo atual é R$ %.2f . Insira um novo valor" %saldo

def depositoC(deposito,saldo):
saldo=saldo + deposito
print "Seu Novo Saldo é: R$ %.2f" %saldo

saldo = 50000.00

nome=raw_input("Digite seu nome:")
senha=int(raw_input("Digite a sua senha (Apenas Numero): "))
validacao(nome,senha)

if validacao(nome,senha) == True:
print "Olá %s , Bem Vindo ao Banco \n" %nome
while 1:
print "Para Saldo Digite 1"
print "Para Saque Digite 2"
print "Para Deposito Digite 3"
print "Para Cancelar Digite 0 \n"

menu = int(raw_input(""))
try:
if menu == 1:
saldoC(saldo)

elif menu == 2:
saque=float(raw_input("Digite o Valor do Saque: R$ "))
saqueC(saque, saldo)

elif menu == 3:
deposito=float(raw_input("Digite o Valor do Deposito: R$"))
depositoC(deposito,saldo)

elif menu == 0:
print "Operação Cancelada"
break

except:
print "Operação Invalida"

Como faço para atribuir o valor da função na variável global? vlw!!!



  


2. Re: Trocar Valor da Variável Global pelo Valor da Função

Fernando
phoemur

(usa Debian)

Enviado em 25/01/2014 - 22:43h

Por convenção as variáveis dentro de funções em python serão variáveis locais. Se você quiser alterar as variáveis globais você tem que especificar explicitamente.

Exemplo do seu código:

saldo = 50000.00

def saqueC(saque):
global saldo
if saque <= saldo:
saldo = saldo - saque
print "Você Sacou R$ %.2f seu saldo é R$ %.2f \n" %(saque,saldo)
else:
print "Saldo Insuficiente, Seu saldo atual é R$ %.2f . Insira um novo valor" %saldo

def depositoC(deposito):
global saldo
saldo=saldo + deposito
print "Seu Novo Saldo é: R$ %.2f" %saldo





3. Re: Trocar Valor da Variável Global pelo Valor da Função

Luan Kleber
luanyata

(usa Ubuntu)

Enviado em 27/01/2014 - 08:40h

Obrigado phoemur pelo retorno, havia tentado fazer isso mais ele da erre erro:

luan@Chamaleon:~/Documentos/Python$ python banco.py
File "banco.py", line 20
def saqueC(saque, saldo):
SyntaxError: name 'saldo' is local and global



4. Re: Trocar Valor da Variável Global pelo Valor da Função

Luan Kleber
luanyata

(usa Ubuntu)

Enviado em 27/01/2014 - 08:40h

Obrigado phoemur pelo retorno, havia tentado fazer isso mais ele da erre erro:

luan@Chamaleon:~/Documentos/Python$ python banco.py
File "banco.py", line 20
def saqueC(saque, saldo):
SyntaxError: name 'saldo' is local and global



5. Re: Trocar Valor da Variável Global pelo Valor da Função

Fernando
phoemur

(usa Debian)

Enviado em 28/01/2014 - 12:34h

Olhe o código que eu coloquei, se por exemplo usar global saldo, a variável saldo não pode ser passada para a função (entre parênteses), pois estaria usando 2 variáveis, uma local e uma global, com o mesmo nome.

Do jeito que eu coloquei está funcionando


def saqueC(saque, saldo):

deve ser
 
def saqueC(saque):
global saldo




6. Trocar Valor da Variável Global pelo Valor da Função

Fabio
KalangoLoko

(usa Kalango)

Enviado em 07/03/2015 - 21:20h


Seu código:

def saqueC(saque, saldo):
if saque <= saldo:
saldo = saldo - saque
print "Você Sacou R$ %.2f seu saldo é R$ %.2f \n" %(saque,saldo)
else:
print "Saldo Insuficiente, Seu saldo atual é R$ %.2f . Insira um novo valor" %saldo

Se a variavel saldo é geral você não precisa colocá-la na função, basta você declarar a variavel global saldo .

def saqueC(saque):
global saldo
if saque <= saldo:
saldo = saldo - saque
print "Você Sacou R$ %.2f seu saldo é R$ %.2f \n" %(saque,saldo)
else:
print "Saldo Insuficiente, Seu saldo atual é R$ %.2f . Insira um novo valor" %saldo



7. Re: Trocar Valor da Variável Global pelo Valor da Função

Ricardo Brito do Nascimento
rbn_jesus

(usa Fedora)

Enviado em 02/12/2015 - 17:32h

Coloquei teu código original em:
http://pastebin.com/embed_js.php?i=dDS9W6Ry


Não sei se continuou os estudos para resolver, mas resolvi em empenhar para ajuda-lo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts