Como se tornar Programador Python Profissional - Curso com Certificado

De todas as inúmeras perguntas e dúvidas que recebemos aqui diariamente, sem dúvidas a mais recorrente é:

Como me tornar um programador Python profissional, trabalhar com isso?

E não é de se surpreender, Python é uma linguagem fantástica, simplesmente linda, apaixonante, simples de aprender, usar e absurdamente poderosa.

Se estudar e programar Python já é bom, imagina:
    Como ser programador Python profissional
  • Ganhar dinheiro com Python
  • Ter seu apartamento ou casa, graças ao Python
  • Ter um carro bacana, seguro e bonito, com dinheiro vinda da programação Python
  • Fazer viagens, conhecer o mundo e novas culturas, graças ao seu trabalho com Python

E sim, isso é possível!
Faça seu café, sente-se confortavelmente e tire 15min do seu dia para ler algo que pode mudar sua vida.

Programador Python: Tem mercado? Quem precisa ?

Você tem amigos que cursam ou cursaram direito?
Eu tenho (muitos, diga-se de passagem).

Pergunte a eles como está o mercado, o salário...e prepare-se para histórias tristes. É muito, muito difícil conseguir um emprego para quem é formado em cursos como Direito, Administração etc. Nada contra, pelo amor de deus.

Mas o motivo é bem simples: todo bairro hoje em dia tem uma faculdade que oferece esses cursos. E o número de formandos é imenso. Todo santo semestre dezenas de milhares de alunos se formam nessas áreas...e infelizmente não tem vaga pra todo mundo.

Até pra medicina, curso notavelmente conhecido por seu bom salário e a existência de vagas, a coisa está complicando. O salário médio de um médico vem diminuindo, é algo extremamente difícil conseguir uma residência pra se especializar...e muitos tem que ir pra interior, e todos sem exceção, fazem jornadas árduas e longas de trabalho.

E não é pra menos, cada vez mais faculdades, formandos, situação ruim do país...

Fazer curso de Python online grátis


E pra Python, como está o mercado?

Quantos advogados, engenheiros, estudantes de medicina, economia, administração etc, você conhece? Muitos, aposto.

E programadores? Se conhecer um, já é muito.

Agora outro exercício:
  • Olhe pra suas mãos: celular, tablet, notebooke...
  • Olhe pra frente: notebook, TV smart, painel digital de um carro...
  • Olhe ao redor: em supermercados, ruas, farmácias, pro céu...

Onde não tem programação? Duvido achar um local que não tenha algo com algum software. Pode ir em uma favela ou sertão nordestino que vai ver gente com algum dispositivo digital.

O aumento do uso da tecnologia é MEDONHO. A carência, necessidade de gente nessa área é MONSTRA.

E o tanto de gente nessa área você respondeu: é pouco!
Raro encontrar um programador, alguém que faz isso, vive disso...e não é pra menos, não é algo tão simples.

Python Mercado de Trabalho
Quem usa Python?


O segredo da programação no Mercado de Trabalho

Cada vez mais a tecnologia vai estar presente no mundo, inclusive substituindo humanos.

E quem vai sair na vantagem? Quem é da área.
Vão precisa de fazer pra fazer, criar, organizar, ensinar...coisas relacionadas a tecnologia e programação.

Sempre. O mundo vai ser dos programadores, a verdade é essa. Pura, simples e clara.

Desde grandes companhias aéreas, fábricas de carros até o botequim do seu Zé vai precisar de tecnologia, softwares....amigos, tudo, em todo canto, é sério.

Ao contrário de advogados e administradores, que não a demanda é menor e o tanto de gente estudando é cada vez maior, no mundo da programação é o oposto: cada vez mais precisamos de programadores e tá cada vez mais raro achar um.

Não estou tentando de convencer ou 'vender meu peixe', até porque não vamos ganhar nada com isso. Apenas olhe ao seu redor e tire suas conclusões.

Salário quanto ganha um programador Python


Como Ser Programador Python

Tem certeza absoluta da importância e que nunca vai faltar trabalhos para um programador? Excelente.

Vamos mais além: dos programadores, a gigantesca maioria ou sabe PHP ou Java. Nada contra. Mas ache um programador Python, uma linguagem em crescimento exponencial nos Estados Unidos, Japão e Europa. Não acha.

E quem sabe Python, sabe criar sites, fazer aplicativos, serve para trabalhos acadêmicos, etc etc etc. Aprende uma coisa, depois vai ter é dificuldade de qual área seguir, de tantas possibilidades.

Então vamos te ensinar agora como ser um programador Python.
São apenas dois passos.

Passo 1 para ser Programador:
Estude insanamente

Não tem pra onde correr.

Se perguntar aos melhores engenheiros, médicos, físicos, programadores, empresários e tudo mais que imaginar, o que fizeram diferente, a resposta vai ser: me esforcei mais que a maioria.

Sinto te informar, mas fazendo o que todo mundo faz, o tanto que todo mundo faz, você vai ser só mais um.

Quer ser realmente bom, foda, viver bem, ajudar sua família, viajar e tudo mais? Faça mais que a maioria.

  • Enquanto a maioria estiver vendo série, estude e programe.
  • Enquanto a maioria tá vendo tv e BBB, estude e programe.
  • Enquanto a maioria tá dormindo até meio-dia, estude e programe.
  • Enquanto a maioria tá perdendo tempo, fazendo nada e vendo o tempo passar, estude e programe.

Não tem segredo nem mistério, é estudar muito, o máximo possível. De noite, no ônibus, dar uma lidinha antes de dormir etc etc.

Pra fazer isso, a gente tá aqui pra te ajudar.
Se estudar pelo Curso Python Progressivo, vai ter um curso completo, bem explicado, com muitos exemplos, exercícios, projetos reais, indicação de vídeos, livros...CONSUMA TUDO!

Estude e tente fazer os programas até chorar em posição fetal (isso acontece muito, até durmo assim vez e outra, de tão acostumado).

Essa é a parte mais importante, é 99% do segredo para se tornar um bom programador Python profissional, é a mais difícil, trabalhosa e custosa.

A segunda parte é, de longe, a mais fácil, simples e barata.

Passo 2 para ser Programador:
Obtenha um certificado

Você pode ser o médico mais foda do universo, mas só vai trabalhar se for formado e tiver seu diploma.

Mesmo Einstein, pra dar aula de Física, teve que se formar e obter certificado (ele odiava aula, faculdade e teve muita dificuldade pra se formar, de tão chato que achava).

Não importa o que vai fazer, é preciso que, digamos, você 'prove' que estudou. No caso do nosso mundo da programação e computação, isso vem por meio de certificado e diploma.

Se não faz faculdade, não tem tempo, dinheiro ou mesmo curso na sua cidade, relaxe totalmente. Um bom programador é reconhecido por seu talento, seu código, seu software, e não se é formado na Uniesquina, ITA ou curso online.

Então, dou aqui a solução pra vocês, que usei:

Curso online grátis de Python
Clique para obter sua certificação

Curso de Python com Certificado:

Por que fazer ?


Bom, vamos resumir o motivo pela qual você deve fazer o curso acima, o mais rápido possível:

  • Preço: é absurdamente barato, chega a ser ridículo o preço R$ 39,90. Pagamento único. Sim, tem que meter a mão no bolso, eu meti, todo mundo que vive de Python já pagou e não existe outro jeito de ter sua certificação
  • Tempo de aula: são 72 horas / aula, e você pode aumentar até pra 252 h /aula, para aumentar sua capacitação e certificados
  • Acesso: só precisa ter internet. Pode acessar do computador, tablet, celular, no ônibus, no intervalo da escola/faculdade/trabalho. Tá sempre online.
  • Disponibilidade: 24 horas. Qualquer dia, qualquer horário, dia de semana, final de semana, feriado...estude quando quiser e quando puder (é aqui que a galera de faculdade sente inveja)
  • Ritmo: demore o tempo que quiser, em qualquer aula, explicação, exercícios etc. Faça tudo no seu tempo. Só tem 20 min durante o almoço? Pode ter seu certificado. Só 1h antes de dormir? Opa, aqui mesmo que vai obter seu certificado. Demora pra aprender? Vá devagar, repita...Esqueceu? Volte e estude de novo
  • Material: o curso inteiro é bem organizado e dividido por etapas. Tem um banco de perguntas e respostas com dúvidas de outros alunos, além de resumos disponíveis para consulta (usava muito pra relembrar facilmente algo que já tinha estudado, sempre esqueço)
  • Certificado: Serve para completar Horas em Atividades Extracurriculares,  em Universidades. Pode contar como Atividades em Concursos Públicos. Pode constar em seu Currículo. Através da Autenticação Digital, confirmam sua conclusão na Brava Cursos Online

Certificado válido em todo território nacional.

Curso de Python grátis de graça

Conteúdo do Curso de Python


O curso desenvolverá no aluno a capacidade de:
  • Aprender a programar em uma linguagem simples e poderosa
  • Resolver problemas utilizando uma linguagem de programação
  • Desenvolver seus próprios programas de computador
  • Aprender boas práticas de programação
  • Conhecer os mais variados aspectos da linguagem Python
  • Desenvolver o raciocínio lógico
  • Cálculos matemáticos
CONTEÚDO PROGRAMÁTICO:
  • Apresentação
  • Um pouco mais sobre o criador do Python
  • Características da linguagem
  • Preparando o ambiente
  • Começando a programar em Python
  • Variáveis
  • Operadores
  • Estruturas de controle
  • Entrada e saída de dados
  • Funções
  • Listas
  • Manipulando listas em Python
  • Arquivos
  • Manipulando arquivos em Python
  • Cálculos matemáticos
  • Criando classes
  • Utilizando herança
  • Interface gráfica
  • Palestra Tkinter
  • Criando threads
  • Dicionários
  • O perigo de importar tudo
  • Compactador de arquivos
  • Estrutura de dados Fila
  • Manipulando o tempo
  • Programando Games com Python e CodeSkulptor
  • Games com CodeSkulptor
  • Bioinformática com Python e Rosalind
  • Considerações Finais

Como obter o certificado do curso de programação Python
Clique aqui para fazer o curso

O Módulo math - Matemática no Python

Neste tutorial de nossa Apostila de Python, vamos aprender a usar funções matemáticas prontas, do módulo math do Python.

Tutorial anterior: Como gerar números aleatórios - Biblioteca random
Ler também: Certificado do Curso Online de Python


Módulo math - Funções Matemáticas Prontas

Lembra quando explicamos a utilidade dos módulos?
De organizar nosso código e prover a reutilização de código sem precisar programar tudo de novo?

Pois é, o módulo math é o melhor exemplo disso. É possível fazer muuuuita coisa da Matemática simplesmente usando as funções prontas dessa biblioteca.

Para usar em seus programas, basta importar:
import math

Para conhecer mais as funções e possibilidades desse módulo, acesse a documentação oficial do Python:
https://docs.python.org/3/library/math.html

Vamos agora fazer um resumo e falar das principais funções do módulo math.

Trigonometria na math

Há várias funções que fazem cálculos de trigonometria, na math:
  • cos(x) - dá o valor cosseno de x radianos
  • sin(x) - valor do seno de x radianos
  • tan(x) - valor da tangente de x radianos
  • acos(x) - retorna o arco cosseno de x, em radianos
  • asin(x) - retorna o arco seno de x, em radianos
  • atan(x) - retorna o arco tangente de x, em radianos



Conversão entre graus e radianos: degrees(x) e radians(x)

Nos exemplos acima, trabalhamos com valores em radianos.
Porém, geralmente precisamos trabalhar com graus ao invés de rad.

Para transformar x radianos em graus, use a função:
degrees(x) - que ela vai te dar o valor em graus de x radianos

Para fazer o contrário, pegar um valor x em graus e transformar em radiano, fazemos:
radians(x)

Raiz quadrada: sqrt(x)

Para achar a raiz quadrada (square root) de um valor x, use a função sqrt():
sqrt(x)



Constante pi: math.pi

Além de funções, uma biblioteca/módulo pode armazenar constantes.
Por exemplo, em geometria usamos muito o valor de pi (3.14...), por exemplo, para achar o perímetro ou área de uma circunferência, ou volume de uma esfera.

Para não ter que decorar o valor de pi ou buscar na internet, basta usar:
math.pi

É a constante pi, com várias casas decimais de precisão.

Logaritmo e Exponencial

A constante e, base dos logaritmos naturais (número de Euler ou Néper), pode ser usada com a constante:
math.e

Já se desejar calcular uma exponenciação do tipo e^x (e elevado a x), use a função:
math.exp(x)

Já o logaritmo natural de x pode ser calculado da seguinte forma:
math.log(x)

Se preferir o logaritmo na base 10:
math.log10(x)


Arredondar pra baixo: floor(x)

Outra coisa muito utilizada, matematicamente, é o arredondamento.
Se quiser arredondar um número x para baixo, faça:
math.floor(x)

Por exemplo:
math.floor(1.1) = 1
math.floor(3.3) = 3
math.floor(-1.1) = -2

E caso o número não seja decimal, ele retorna o próprio valor:
math.floor(10) = 10
math.floor(-2) = -2

Ou seja, a função floor() retorna o maior inteiro que é menor ou igual a x.
Floor, em inglês, é chão, solo.




Arredondar para cima: ceil(x)

Já para arredondar para cima, usamos a função:
math.ceil(x)

Por exemplo:
math.ceil(1.1) = 2
math.ceil(3.3) = 4
math.ceil(-1.1) = -1

E caso o número não seja decimal, ele retorna o próprio valor:
math.ceil(10) = 10
math.ceil(-2) = -2

Ceiling é teto, em inglês.
A função ceil(x) é o menor inteiro que é maior ou igual a x.

Como Gerar Números Aleatórios em Python - A Biblioteca random

Neste tutorial, vamos aprender como gerar números aleatórios usando o módulo random da biblioteca padrão do Python.

Tutorial anterior: Como criar, importar e usar Módulos
Veja também: Como entrar no mercado de trabalho Python



Números Aleatórios - Por que usar ?

A utilidade de se gerar números aleatórios, são enormes.

Um exemplo bem claro e muito utilizado, são em jogos.
Rolar os dados, escolher inimigos e personagens aleatoriamente, localização nos mapas, alguns games ficam 'sorteando' coisas (skins, gemas, poder, equipamentos etc), tudo isso através de números aleatórios.

Já perdeu a senha ou fez algum cadastro que necessitava receber um código numérico ou alfanumérico (tipo, 23&6342h) em seu e-mail ou via SMS? Pois é, aquele código é gerado aleatoriamente.

Muitas vezes, para fazer simulações, principalmente científicas e de outros cunhos acadêmicos, é necessário usar uma enormidade de números aleatórios.

Se já teve uma cadeira de Probabilidade e Estatística na faculdade, sabe que se usa bastante números aleatórios.

São um dos conceitos mais importantes no mundo da computação, e vamos aprender agora a usar a biblioteca random (random module) em Python.

Gerar Número Inteiro Aleatório: A Função randint

Primeiro, vamos aprender como gerar um número, aleatoriamente, que seja um inteiro.




Para isso, vamos usar a função randint, da biblioteca padrão do Python, a random. Ou sej, bem no início, devemos importar esse módulo:
import random

Agora, vamos usar a randint para gerar um número.
Essa função tem dois parâmetros, vamos chamar de inicio e fim:
random.randint(inicio, fim)

Essa função retorna um número inteiro de 'inicio' até 'fim' (inclusive eles).
Por exemplo:
  • randint(1,10): pode gerar qualquer número do 1 até o 10
  • randint(1,1000): pode resultar qualquer número 1,2, 3, ..., 100

Exemplo de uso da função randint()

Crie um programa em Python que simula o resultado de um dado, ou seja, gera números aleatórios de 1 até 6, quantas vezes o usuário desejar.

Como explicado, a primeira coisa é importar a biblioteca random, padrão do Python. Depois, simplesmente usar a função randint com 1 e 6 como argumentos, veja como fica:

import random

continuar=1
while continuar:
    print("Número aleatório gerado:", random.randint(1,6))
    continuar=int(input("Gerar novamente?\n1.Sim\n0.Não\n")


Definindo Melhor o Intervalo: randrange()

A função randrange é bem similar a função range (leia novamente esse tutorial para relembrar), exatamente a mesma maneira de se usar os parâmetros, a diferença que ela vai retornar apenas um valor.



  • Um argumento:
random.randrange(x) - vai gerar um número aleatório de 0 até x-1
Por exemplo:
random.randrange(5) - Pode retornar:0, 1, 2, 3 ou 4

  • Dois argumentos:
random.randrange(x,y) - vai gerar um número de x até y-1
Por exemplo:
random.randrange(1,5) - Pode sair:1, 2, 3 ou 4

  • Três argumentos:
 random.randrange(x,y,z) - Pode gerar de x até y-1, mas ao invés de 1 em 1, ela 'pula' de z em z, ou seja, z é o salto.

Por exemplo:
random.randrange(0,10,2) - Vai gerar uma dos seguintes números: 0, 2, 4, 6 ou 8 (ou seja, todos os pares de 0 até 8).

Para gerar todos os números múltiplos de 3 menores que 100, fazemos:
random.randrange(0, 101, 3) : 3, 6, 9, ..., 99

Gerar Número Aleatório Decimal: random()

Nos exemplos anteriores, as funções geram e recebem apenas números inteiros, ou seja, não servem para se trabalhar com números decimais.

Mas, e se a gente quiser um número quebrado aleatório?
Aí usamos a função random(), ela não recebe nenhum argumento.

Usou  ela, então te retorna decimal de 0.0 até 1.0
Basta fazer: random.random() e terá seu número quebrado aleatório.

Defini Aleatório Flutuante: função uniform()

Existe ainda mais uma função parar gerar valores flutuantes de maneira aleatória, que é através da função uniform().

Esta função recebe dois argumentos, um valor de início e outro final, podem ser valores float e te retorna um float aleatório.

Por exemplo, vamos supor que você é professor, tem que entregar a nota de 200 alunos e está totalmente sem saco.

Então você decide que vai dar notas aleatórias, de 5.0 até 10.0
Basta usar a função uniform:
random.uniform(5.0 , 10.0)

Pronto, ela vai te retornar uma nota rapidinho :D
Agora é curtir suas férias.

Caso tenha medo que algum aluno reclame, é só dizer 'olha, posso até recorrigir sua prova, mas se eu encontrar mais erros, eu abaixo sua nota).

Exercício Proposto

Crie um script em Python que gere 6 números aleatórios para a Mega-Sena (neste jogo, você pode escolher dezenas de 1 até 60). Não pode repetir dezena.

Deixe no comentário sua solução.

import - Como criar, importar e usar um Módulo em Python

Neste tutorial, vamos aprender a criar, importar e usar um módulo, através da keyword import.

Tutorial anterior: O que são Módulos em Python
Obter certificado do Curso de Python

Como Criar um Módulo

Vamos criar um módulo chamado calculadora.py, ou seja, um arquivo com esse nome e extensão.

Nele, vamos definir 4 funções:
  1. soma(x,y)
  2. subtracao(x,y)
  3. multiplicacao(x,y)
  4. divisao(x,y)

Código que já fizemos várias e várias vezes durante nosso Curso de Python na web.
Uma dica muitíssimo importante, para quando formos criar módulos, é comentar seu código.

Antes de toda função de um módulo, adicione um comentário sobre a função, dizendo o que ela faz, os parâmetros e seu retorno.

Isso ajuda outros programadores que forem usar seus módulos e você também. Nosso módulo calculadora.py ficará assim:


calculadora.py
# Esse módulo realiza as 4 operações matemáticas

# Recebe dois números e retorna a soma
def soma(x,y):
    return x+y

# Recebe dois números e retorna a diferença
def subtracao(x,y):
    return x-y

# Recebe dois números e retorna o produto
def multiplicacao(x,y):
    return x*y

# Recebe dois números e retorna a divisão do primeiro pelo segundo
def divisao(x,y):
    return x/y


Como Importar um Módulo: import

Colocou o código anterior em um arquivo chamado calculadora.py?
Agora salve esse arquivo, é seu módulo, seu código organizado, com funções prontas para serem usadas.


Agora abra um novo arquivo Python.
Para poder usar o módulo que criou, você vai usar a keyword import junto do nome do seu módulo (sem a extensão .py), bem no começo do código:

import calculadora

Seu arquivo calculadora.py deve estar na mesma pasta deste script que está programando, ok? E prontinho, para importar um módulo é só isso.

Ao fazer isso, é como se você estivesse 'jogando' todo o código de calculadora.py dentro desse seu novo script. Tudo que tá dentro do módulo, você vai poder usar como se estivesse direto no seu script.

Como Usar um Módulo

Agora que já criamos e importamos o módulo, precisamos aprender como usar as funções contidas naquele arquivo.

Quando queremos chamar uma função bar(), apenas digitamos:
bar() e pronto, ela roda, pois está naquele arquivo que você está escrevendo.



Mas se a função estiver em outro arquivo, ou seja, em um módulo, de nome fu.py você deve digitar:
fu.bar()

Ou seja, primeiro o nome do módulo, um ponto e o nome da função, ok?
Vamos agora criar um programa que importa esse módulo e usa suas funções.

import calculadora

while True:
    print("1. Soma")
    print("2. Subtração")
    print("3. Multiplicação")
    print("4. Divisão")
    op=int(input("Que operação deseja realizar: "))
    x=float(input("Primeiro numero: "))
    y=float(input("Segundo  numero: "))

    if op==1:
        print("Soma:", calculadora.soma(x,y))
    elif op==2:
        print("Subtração:", calculadora.subtracao(x,y))
    elif op==3:
        print("Multiplicação:", calculadora.multiplicacao(x,y))
    elif op==4:
        print("Divisão:", calculadora.divisao(x,y))
    else:
        print("Opção inválida,tente novamente")

Simples, não?

Nunca mais precisaremos escrever essas funções novamente, sempre que precisarmos usar elas, bastar dar um import nesse módulo e usar diretamente suas funções.

Quando um programador ou empresa vai iniciar seus projetos, eles nunca partem do zero. Quando vamos iniciar um novo programa, é certeza já termos algum código pronto, que pode ser reutilizado.

Por isso é importante salvar seus códigos, seus módulos, comentar, deixá-los bem organizados e fáceis de se ler e entender, pois não tenha dúvidas que vai usá-los novamente no futuro.

Importar Função de um Módulo: from modulo import function

Quando fizemos:
import calculadora

Importamos tudo, todo o código, todas as funções do módulo calculadora.py
Porém, alguns módulos que usaremos são simplesmente gigantes, com milhares e milhares de linhas.

Muitas vezes queremos utilizar apenas uma ou outra função desse módulo, e acabamos dando um import e importamos milhares de linhas de código para no script, sem necessidade alguma.

Isso deixa nosso programa mais lento e pesado.
Por isso, é melhor importarmos somente algumas funções específicas.

Para importarmos uma função function() de um módulo de nome modulo, basta fazermos
  • from modulo import function

Prontinho.
Agora é só usar function() direto (nem precisa fazer modulo.function() ).

Módulo em Python - O que é? Para que serve? Como funciona? Como se usa ?

Neste tutorial, vamos dar início ao nosso estudo sobre módulos em Python, que é uma maneira de organizar nossos projetos e programas.

Aqui, vamos dar uma pincelada teórica sobre o que é um módulo, para que serve, onde e como é usado etc. No próximo tutorial, vamos criar um exemplo prático e real de um projeto usando módulos.

Leia: Curso de Python com Certificado



Módulo - O que é?

De uma maneira bem simples, clara e objetiva: módulo é um arquivo. Um arquivo que contém código Python.

Exemplo de módulos:
  • math.py: para trabalhar com Matemática
  • random.py: módulo para se trabalhar com números aleatórios
  • os.py: módulo para se trabalhar com arquivos
  • time.py: para trabalhar com tempo (data, dia, ano, etc)



Veja alguns módulos que já vem no Python, por padrão:

Module function Python

Dentro desses arquivos, existem muitas, mas muitas funções mesmo, dos mais diversos tipos e dos mais variados propósitos.

Módulo - Para que serve ?

Basicamente, para organizar seus projetos.

Até o momento, em nosso Curso de Python, fizemos scripts de 10, 15, 20 linhas no máximo. Mas isso se deve, principalmente, por termos feitos tarefas simples.



Agora, imagine projetos como Instagram e Youtube, que usam Python. Agora, imagine um grande programa, um sistema bem robusto...facilmente passa de centenas e até milhares de linhas de código.

Pense agora no trabalho que daria para escrever milhares de linha de código em um único arquivo .py? Não dá, ficaria muito desorganizado.

E é aí que entra o conceito de módulo, a ideia basicamente é dividir o código em 'pedaços' menores, arquivos .py, de assuntos específicos e relacionados entre site

Módulo - Onde é usado ?
Imagine que você e sua empresa foram contratados para desenvolver um jogo.
Um jogo grande, complexo, como LoL ou WoW. Será necessário uma equipe muito grande de profissionais.

Por exemplo, alguém responsável por desenhar os personagens e cenários. Outra pessoa pra ficar responsável pelo áudio, outro pela lógica do jogo, alguém no banco de dados, outro para tratar a parte online do jogo.

Agora imagine tudo isso, num bloco só de código.
Não dá.

Módulo menu.py

Ao iniciar seu jogo, deve aparece o menu para escolher modo de jogo, mapa, personagens etc. Tudo isso deve ficar no módulo menu.py, que vai ficar responsável por exibir os menus de opções.

Por exemplo, para aparecer o menu inicial, damos o comando:
menu.iniciar()

Ou seja, a função iniciar() do módulo menu.py é executada.
Depois, o menu de personagens:
menu.personagens()

Agora, os mapas: menu.mapas()

Ou seja, basta colocarmos um ponto . e em seguida rodar a função correta. 

Módulo audio.py

A solução é simples, usar módulo.

Pegue a equipe de sonoplastia, e deixem eles criarem o módulo audio.py, que vai ter uma porção de funções.

Por exemplo, para rodar o som do mar, basta dar o comando:
audio.som_mar()

Pronto, foi invocada a função som_mar(), dentro do módulo audio.py

Módulo video.py

Você vai precisar de uma boa equipe responsável pela qualidade visual do game.

Camadas, detalhes dos personagens, do mapa etc.
Um bom grupo de programadores vai se dedicar única e exclusivamente a parte gráfica.

Mas eles te explicaram todas as funções que o módulo video.py tem, então para detectar a resolução correta, basta rodarmos a função resolucao() do módulo video.py

Fazemos isso assim:
video.resolucao()

E prontinho, a resolução é detectada e carregada corretamente.

Módulo logica.py

Um personagem da infantaria, com espada e escuto é lento, porém as flechas dos arqueiros ferem ele muito pouco.

Porém se uma catapulta atirar em sua direção, muitos morrem.
Talvez seja interessante mandar a cavalaria ir na frente, destruir essas catapultas, mas tendo cuidado para não serem pegos pelos arqueiros, que atiram de longe.

Pessoal, isso tudo é lógica. Envolve Matemática (escudo aguenta 4 golpes por segundo, ele dá o golpe de espada a cada 2s, se você evoluir seu treinamento, ele luta mais rápido e desfere mais fortemente os golpes), vários cálculos.

Deixa que a equipe de lógica faz essa parte do código e coloca tudo no módulo logica.py, então para iniciar uma batalha, basta rodar:
logica.batalha_iniciar()

Ficou claro a função dos módulos?
São arquivos com trechos de códigos relacionados, organizam nosso projeto, fica mais fácil de criar programas maiores.

No tutorial seguinte, vamos te ensinar como criar e usar melhor seus módulos Python.

Return em Funções no Python - Como Retornar um Valor em uma Função

Neste tutorial, vamos aprender um dos assuntos mais importantes em funções: o comando return, muitíssimo utilizado em programação Python.


Tutorial anterior: Constante Global
Leia também: Como ser um programador profissional

Comando return - O que é? Para que serve?

No início de nossa seção de Função em Python, explicamos que uma função tem dois propósitos básicos:
  1. Fazer tarefas específicas (de preferência, da maneira mais clara e concisa o possível)
  2. Se comunicar com outras partes do programa




Já fizemos funções com as duas coisas. No caso da 'comunicação', aprendemos a usar parâmetros e argumentos, assim vimos que é possível enviarmos informações para dentro de uma função.

Ou seja, é como se a função agora pudesse ter contato com o que existe fora de seu escopo, pois pode receber informação.

Mas algo está faltando aí, veja se você descobre...

As funções devem se comunicar.
Já aprendemos como elas recebem informações.

Mas pra uma comunicação completa, além de receber, ela precisa retornar informação.

Ele recebe dados de fora da função, mas não vimos funções enviando dados para fora da função.

E é aí que entra a keyword return.
Ela serve para a função retornar algum valor!

Vamos ver como fazer isso.

Como usar return em uma Função no Python

A declaração de uma função que tem o comando de return é:

def nome_funcao(parâmetros):
    código
    código
    código
    ...
    return algo

A única coisa nova e diferente, é a última linha da função:
return algo



'algo' pode ser qualquer variável, número, expressão, objeto etc.
Esse 'algo' vai ser retornado para onde a função foi invocada.

Vamos ver um exercício resolvido e comentado para entender melhor.

Exemplo de uso de return

Crie um programa em Python que tenha a função soma(x,y) que recebe dois números e retorna o valor da soma deles.

Uma função que recebe dois números e calcula a soma, você já sabe fazer.
A única diferença é que vamos dar um return nesse valor da soma,.

E se estamos retornando algo, alguma coisa precisa receber esse retorno.
Quem vai 'receber' o 'return' será a variável res.

Veja como fica nosso código:

def soma(x,y):
    result = x+y
    return result

a = int(input("Primeiro numero: "))
b = int(input("Segundo numero : "))
res = soma(a,b)
print("Soma: ", res)


A função retorna a soma x+y, armazenada na variável result, ou seja, retorna um número.
Esse número, armazenamos na variável res, depois simplesmente imprimimos essa variável.

Se quisermos, podemos usar direto a função soma(x,y) dentro do print e encurtar ainda mais a função soma():

def soma(x,y):
    return (x+y)

a = int(input("Primeiro numero: "))
b = int(input("Segundo numero : "))
print("Soma: ", soma(a,b))

Usamos return x+y pois, como dissemos, podemos retornar uma expressão diretamente, sem necessitar criar uma variável dentro da função.



Exemplo de uso de return com Strings

Crie um programa em Python que peça o nome e o sobrenome de uma pessoa, depois exiba na tela a mensagem "Olá sobrenome, nome".

Ou seja, ele inverte a ordem do nome e sobrenome.
Vamos criar a função inverte, que recebe duas strings.
Dentro dessa função, criamos uma nova string a nomeInverso, que é criada a partir do parâmetro sobrenome, uma vírgula e o parâmetro nome.

Retornamos essa nova string.

Já o código que chama essa função, vai receber o retorno dela e armazenar na variável invertido, em seguida imprimimos essa variável, veja como fica:

def inverte(nome, sobrenome):
    nomeInverso = sobrenome+","+nome
    return nomeInverso

nome = input("Nome: ")
sobrenome = input("Sobrenome: ")
invertido = inverte(nome,sobrenome)

print("Olá", invertido)

Exemplos de return com Booleanos

Crie um programa em Python que diz se o número inserido pelo usuário é par ou ímpar. Ele deve fazer isso através de uma função que recebe o inteiro e retorna True ou False.

Vamos chamar nossa função de par(x), ela recebe um número como argumento.

Dentro dela, usamos um teste condicional IF ELSE:
Se o resto da divisão de x por 2 for 0, ele é par
Senão, é impar

Se for verdadeiro, damos um return True.
Se for falso, fazemos return False.

Veja que nessa função dois return, mas somente um será executado, dependendo se x é par ou ímpar.

Na parte principal de nosso script, vamos usar outro teste condicional IF ELSE. O teste de condição é simplesmente par(num), onde num é um número que o usuário vai digitar.

Como essa função retorna sempre um valor Booleano (valor lógico), podemos usar a chamada de inversão diretamente no teste do IF.

Se o número for par, essa chamada vai retornar True e o IF será executado, printando uma mensagem dizendo que o número é par.

Se for falsa, o IF não roda então vai pro ELSE, que roda, printando uma string dizendo que é ímpar.

Nosso código ficou assim:

def par(x):
    if (x%2)==0:
        return True
    else:
        return False

while True:
    num = int(input("Insira um número: "))
    if par(num):
        print("É par")
    else:
        print("É ímpar")

Como retornar mais de um valor

Diferente da maioria das outras linguagens, onde só é possível retornar um valor, ou seja, apenas uma coisa, seja lá o que for, no Python podemos retornar várias variáveis, objetos, expressões etc.

Para isso, basta separar cada informação por vírgula.

Por exemplo, o script abaixo tem uma função de cadastro.
Ela pergunta primeiro seu nome, depois sua idade.
Então, retorna esses dados:
return name, age

Quem chamou essa função, tem que estar preparado para receber essas duas informações:
nome, idade = cadastro()

A variável nome vai receber o primeiro valor retornado, que é name, e a variável idade vai receber o segundo valor retornado da função, que é age.

Veja como ficou nosso código:


def cadastro():
    name = input("Qual seu nome: ")
    age   = int(input("Idade: ") )

    return name, age

print("Iniciando cadastro...")
nome, idade = cadastro()

print("Cadastro realizado com sucesso:")
print("Seu nome é", nome, "e você tem", idade,"anos de idade.")

É importante notar o objetivo dessa função cadastro().
Sempre que você quiser fazer um cadastro, basta chamar essa função, que ela vai perguntar as coisas e retornar as informações importantes.

Você só faz chamar, e depois já tem os dados nas variáveis nome e idade. Obviamente, é um exemplo simples, mas imagine numa grande empresa, onde você foi encarregado de contratar um novo programador.

Alguns dados pessoais, como salário, não são da sua conta.
Então você simplesmente chama uma função lá da tesouraria e ela fica encarregada dessa parte financeira.

Se você tá programando um jogo e está responsável pela parte artística, não tem que se preocupar com a parte de lógica...tipo, a velocidade com que seu carro se movimenta, isso uma outra galera vai fazer, você só vai usar as funções deles:
  • acelerar()
  • frear()
  • trocar_marcha()

O que acontece lá dentro? Sei lá! O código lá dentro é de outra pessoa, você só precisa saber que parâmetros a função pede e o que ela vai retornar, para poder usar uma função.

Interessante esse return, não é mesmo?
Agora sim nossas funções estão interessantes!

Elas recebem dados, fazem tarefas específicas e retornam informações.
Quem chama uma função, não precisa saber o que se passa dentro dela, o importante é fornecer os dados necessários (argumentos) e saber que tipo de informação vai receber (return).

Constante Global em Python

Neste tutorial de nosso Curso de Python, vamos aprender como usar uma constante global.

Tutorial anterior: Variável global
Ler também: Como trabalhar com Python


Constante Global

Em muitas linguagens, existe um recurso chamado constante global, que nada mais é que uma variável que é definida como um determinado valor. E pronto, esse valor não pode mais ser alterado.

Ele vai ser o mesmo, para qualquer parte de seu código e não é possível mexer nele.

No Python, não tem uma maneira simples, clara e específica de se fazer isso, mas podemos meio que 'simular' fazer isso com variáveis globais.



Como Usar Constante Global

Para fazer uso de uma constante global, é bem simples.
Basta você definir a variável fora do escopo das funções.

Ela não deve ser definida em nenhuma função. Usada nas funções, sim, ok. Mas a primeira vez que ela aparece deve ser, de preferência, bem no início do seu script, antes das definições das funções.

Depois, basta simplesmente usar a variável, sem usar a keyword global.


Exemplo de uso de constante global

Crie um programa em Python que peça o raio de uma circunferência ao usuário, em seguida exiba o perímetro e a área desse círculo.

Inicialmente, vamos definir uma variável global, uma constante, o valor de pi, que é 3,14

Depois, criamos a função de perímetro (2 x pi x raio) e a de área (pi x raio²).
Bem simples, veja:

pi = 3.14

def perimetro(raio):
    print("Perimetro: ", 2*pi*raio)

def area(raio):
    print("Área: ", pi*raio*raio)

raio = float(input("Raio do círculo: "))
perimetro(raio)
area(raio)

Variável Global em Python - keyword global

Neste tutorial, vamos te explicar o que é uma variável global, para que serve e como usar em Python.

Tutorial anterior: Argumentos Nomeados e Posicionais
Veja também: Como ser programador Python Profissional




Variável Global em Python

Nos artigos anteriores de nosso curso de Python, falamos bastante sobre variáveis, escopo, que as variáveis dentro de uma função podem existir somente lá, que ao fazer uma passagem por valor para uma função, o valor original da variável não é alterado etc etc.

Mas, por muitas vezes, é bem útil ter variáveis que 'existem' e são visíveis para todos os elementos de um programa em Python.

E é para isso que servem as variáveis globais.

Se uma variável é definida e usada somente dentro de uma função, ela é dita variável local.

Então, por lógica, para uma variável ser global e para poder ser usada em todas as funções, ela deve ser definida fora das funções.

Keyword global

Para usarmos uma variável global, devemos fazer, basicamente, duas coisas.
Definir a variável fora do escopo das funções
Dentro da função, usar a linha de comando:
global nome_variavel



Onde 'nome_variavel' é o nome de sua variável global.
Vamos ver um exemplo para entender melhor.

Exemplo de variável global

Escreva um script em Python que pergunta o preço de um produto e mostre:
Preço original
Desconto em porcentagem
Valor do desconto
Preço com o desconto

O desconto quem define é o gerente, na forma de variável global.

Vamos lá.
Nossa variável global se chamará 'desc' e terá inicialmente o valor 10 (10%).
Dentro da função desconto(), precisamos inserir a linha:
global desc

Isso diz ao Python:
"Ei Pyzinho (você é íntimo já), essa variável 'desc' é global, tá?
Usa aquela que foi definida fora da função, pelo amor de deus, não vai usar uma variável local!"

Veja como fica nosso código:

# Desconto do gerente
desc = 10 # 10%

def desconto(valor):
    global desc
    print("Preço original   : R$ ",valor)
    print("Desconto         : ", desc,"%")

    desc /= 100
    print("Valor desconto   : ", valor*desc)
    print("Preço c/ desconto: ", valor*(1-desc) )

val = float(input("Preço do produto: "))
desconto(val)      

Variável Global - Onde usar ? Para que servem ?

Como o nome diz, ela serve para ser 'vista' e alterada por todos, por qualquer função.

Se você tiver um projeto onde uma informação deve ser vista por todos e eles possam alterar essa variável, use a global. Porém, cuidado.

De uma maneira geral, é complicado usar ela, pois todos tem acesso, todos podem mexer nela, e isso pode tornar o processo de debugging (achar erros e problemas) bem complicado, afinal, o problema pode vir de qualquer lado.

Use com cuidado, e se puder evitar, evite.

Argumento Posicional e Argumento Nomeado em Funções Python (keyword arguments)

Neste tutorial de nossa Apostila de Python online grátis, vamos falar sobre duas maneiras diferentes de passar argumentos para funções:
  1. Posicional
  2. Nomeada (keywords arguments)

Tutorial Anterior: Passagem por valor
Importante ler: Como Ganhar Dinheiro Programando em Python


Argumento Posicional em Python

Nos tutoriais e exemplos usados até o momento em nossa apostila, fizemos uma relação entre parâmetros e argumentos.

Por exemplos, se definimos a função:
def fu_bar(par1, par2, par3)

E depois chamamos ela passando os argumentos:
fu_bar(4,5,6)

Quer dizer que, na função fu_bar, os parâmetros receberão os seguintes valores:
  • par1 = 4
  • par2 = 5
  • par3 = 6

Ou seja, na ordem. O primeiro parâmetro recebe o primeiro argumento, o segundo parâmetro recebe o valor do segundo argumento, e assim sucessivamente.

Isso é chamado de argumento posicional, por motivos óbvios. E existe somente essa maneira de relacionar os valores de parâmetros com os valores enviados como argumentos.

Porém, o Python é uma linguagem absurdamente flexível e poderosa, então, existem mais maneiras de um parâmetro receber um valor de argumento, quando se usa vários.

Argumentos Nomeados em Python

Para ilustrar melhor, vamos criar uma função que recebe 3 notas diferentes: mat, fis e qui, notas de um aluno em Matemática, Física e Química e exibe sua média:



def media(mat,fis,qui):
    media = (mat+fis+qui)/3
    print("Media: ", media)


Ao chamar essa função, podemos passar os seguintes argumentos:
media(8, 9, 10)

Sabemos que as notas serão:
  • mat = 8
  • fis = 9
  • qui = 10

Porém, existe uma outra maneira de passar os argumentos, em outra ordem, basta nomear o argumento com o nome do parâmetro que desejar, veja:
  • media(qui=10, mat=8, fis=9)

Prontinho. O resultado é exatamente o mesmo.
As maneiras seguintes também exibem o mesmo resultado:
  • media(qui=10, fis=9, mat=8)
  • media(fis=9, mat=8, qui=10)

Ou seja, não importa a ordem se você usar argumentos nomeados!
Aliás, dá até pra misturar argumentos nomeados com argumentos posicionais.

Regra para Argumentos Nomeados e Posicionais

O que acha que vai ocorrer se usar:
  • media(8, fis=9, qui=10) ?

O que diz sua intenção? Lembre-se: Python é uma linguagem bem intuitiva.
Sim: o 8 vai ser atribuído ao primeiro parâmetro, que na definição da função é mat, e vai ter o mesmo resultado.



Mas existe uma importante regra que deve ser obedecida:
  • Argumentos posicionais devem vir antes
Se fizer:
media(8, fis=9, 10)

Vai dar erro. Todos os argumentos posicionais devem vir antes. No caso, tentamos usar no primeiro argumento e no terceiro, vai dar erro, não pode!

Porém você pode fazer:
media(8, 9, qui=10)

Os argumentos que não são nomeados, são automaticamente chaveados de maneira sequencial, posicional, com a ordem dos parâmetros. Bem intuitivo, não acha?

Passagem de Argumentos por Valor em Funções

Nesta aula de nosso Curso de Python, vamos aprender um pouco mais sobre argumentos, parâmetros e funções, especificamente sobre um troço chamado passagem por valor.

Tutorial anterior: Parâmetro e Argumento em Funções

Valores de Argumentos e Parâmetros

No tutorial passado, aprendemos o que são parâmetros e argumentos, e como usar eles em nossas tão amadas e queridas funções em Python.

Vimos que para podermos passarmos dados para funções, estas precisam ser declaradas com parâmetros apropriados, aí enviamos as informações como argumentos.




Mas vamos te mostrar um teste bem interessante, para te explicar melhor o que é passagem por valor.

No exemplo a seguir, no escopo geral, declaramos uma variável var com o valor de 1. Em seguida, passamos ela pra função muda, que vai mudar o valor da variável de 1 para 0.

Após a função terminar, voltamos para o escopo geral e imprimimos a variável novamente, para saber que valor ela tem. Veja o código:

def muda(var):
    var=0
    print("Valor de x dentro da função:  ",var)
    
var=1
print("Valor de x antes da função:   ",var)
muda(var)
print("Valor de x ao sair da função: ",var)


O resultado é o seguinte:
Curso de Python online grátis

Olha que curioso!
O valor de var começa com 1. Mandamos essa variável via argumento para a função, lá dentro ela muda para 0.

Quando essa função termina, imprimimos novamente var, ele voltou a ser 0!

Bugou o Python ?!
Calma, vamos entender melhor o que está acontecendo.

Passagem por Valor em Python

O que ocorre é o seguinte:
Quando enviamos um argumento para uma função, ela vai ficar apenas com o valor dessa variável.



Ela vai copiar esse valor para outra variável.
Embora passemos a variável var para a função, e dentro da função ela use uma variável de nome var, são duas variáveis totalmente diferentes, armazenadas em valores diferentes na memória.

O Python pensa assim:
"Olá, sou uma função marota.
Opa, fui invocada, me chamaram, vou lá trabalhar.

Me enviaram aqui um argumento, uma tal de var, vou copiar o valor que tá armazenado nela (1) para minha própria variável var. Pronto, copiado.

To nem aí pra essa outra variável var aí, fora do meu escopo. Pra mim, ela nem existe, só peguei a cópia dela, seu valor."

Ou seja, quando passamos informações, passamos, na verdade, somente o valor da variável. Por isso se chama passagem de argumento por valor.

Existe outra maneira de passar informações, chamada passagem por referência. Aí sim, passamos de fato a variável, o endereço dela da memória, então quando 'mexemos' nela dentro da função, o valor da variável original é realmente alterado.

Vamos aprender isso somente depois, por hora é importante você entender o que acontece quando enviamos um argumento para uma função e o que ela faz, de fato, por trás dos panos.

Aqui, no Curso Python Progressivo, é assim: você realmente aprende a linguagem, como ela funciona, o que as coisas realmente fazem.

Nada de decoreba sem sentido, aqui a gente entende as coisas.

Argumentos e Parâmetros nas Função em Python

Neste tutorial de Python, vamos te explicar o que são argumentos e parâmetros, para que servem, como funcionam e como usar, um dos assuntos mais importantes desta seção de funções em Python.

Tutorial Anterior: Variável Local em Python
Veja também: Como se tornar programador profissional em Python




Argumentos e Parâmetros em Funções Python

No tutorial anterior, falamos das variáveis locais, no caso, dentro de funções.
Vimos que quando declaramos e usamos uma variável dentro de uma função, ela não é 'vista' do lado de fora.

Se tentar imprimir ou usar uma variável que está dentro do escopo de uma função, não vai conseguir. Nem o contrário, se estiver dentro de uma função, não vai conseguir usar variáveis e dados que estão fora da função.

Porém, isso contradiz o que falamos de funções, no início de nossos estudos sobre esse assunto, pois lá explicamos que elas se comunicam entre si, recebem dados, fazem tarefas específicas e retornam dados, ou seja, se comunicam.

Então, vamos aprender agora como fazer para funções se comunicarem com o mundo externo. Uma das maneiras de comunicação é através do uso de argumentos e parâmetros.

  • Argumento

Argumento nada mais é que uma informação que passamos para uma função, quando chamamos ela. Enviamos dados (objetos) quando invocamos a função, e ela vai poder usar essas informações do jeito que quiser.

  • Parâmetro

Quando você vai definir uma função e deseja que ela receba dados, você precisa definir parâmetros nessa função, um ou mais parâmetros. Uma forma de dizer que aquela função só funciona se receber determinadas informações (parâmetros).

Argumento e Parâmetro - Como Usar

Lembra quando ensinamos a declarar uma função?
Usamos a palavra-chave def, depois damos o nome da função e parêntesis?
E dentro desses parêntesis não tinha nada?




Pronto, agora a diferença vai vir aí.
Dentro desses parêntesis é que a magia vai ocorrer.

A nova definição é:

def nome_da_funcao(parametro1, parametro2, parametro3,...)
    código da função
    código da função
    código da função

Você pode usar quantos parâmetros quiser: um, dois, três...basta especificar na definição da função, o número de parâmetros que ela vai receber.
 
E para invocar, chamar essa função, você deve fazer:
nome_da_funcao(argumento1, argumento2, argumento3,...)

Ou seja, se a função foi declarada como tendo 'x' parâmetros, devemos passar 'x' informações, ou seja, 'x' argumentos ao invocar a função.

Exemplo de Função com Parâmetro

A função seguinte recebe um parâmetro, vamos chamar ele de x, em seguida mostra o dobro desse valor:

def dobro(x):
    dobro = 2*x
    print("Dobro =",dobro)


Para invocar essa função, precisamos fornecer um valor, por exemplo:
dobro(1)

Iremos ver a mensagem na tela: Dobro = 2
Neste caso, x é um parâmetro, pois está definido na função.
Já o valor 1 que passamos, é o argumento.

Vários Argumentos e Parâmetros

Você pode passar para uma função quantas informações desejar.
Pode passar 1 argumento, dois, dez, mil, 1 milhão... o que quiser.

Só é necessário fazer uma coisa: ao definir a função, deixar bem claro no cabeçalho dela quantos argumentos ela vai receber, colocando o número correto de parâmetros, bem como seus nomes e separados por vírgulas.




Por exemplo, a função a seguir vai receber dois argumentos, pois foi definida com dois parâmetros, x e y:

def soma(x,y):
    soma = x + y
    print("Soma =",soma)


Ela recebe dois argumentos e exibe a soma deles.

Na hora de invocar a função, devemos passar duas informações, ou seja, dois valores, dois argumentos, pois foi assim que a função foi definida, para receber dois dados! Por exemplo:
  • soma(1,2)
  • soma(-1,1)
  • soma(21,12)

Se ela foi definida com n número de parâmetros, ela deve receber n número de argumentos, mais ou menos que isso, dará erro na sua função. Ok?

Exemplo de Função com Parâmetro e Argumento

Crie um programa que peça ao usuário dois valores. Estes números deverão ser repassados para uma função chamada calculadora, que vai mostrar a soma, subtração, divisão e multiplicação desses números.

Nossa função deve ter dois parâmetros. Vamos chamar eles de x e y.
Fora da função, vamos pedir dois números ao usuário e armazenar nas variáveis primeiro e segundo.

Em seguida, passamos essas variáveis como argumentos, para a função calculadora. Veja como ficou nosso código:

def calculadora(x,y):
    print("Soma          =",x+y)
    print("Subtração     =",x-y)
    print("Divisão       =",x/y)
    print("Multiplicação =",x*y)
    
primeiro = float(input("Primeiro número: "))
segundo  = float(input("Segundo número: "))

calculadora(primeiro,segundo)

Nomes de Parâmetros e Argumentos

Note uma coisa extremamente importante no exemplo anterior:
Passamos as variáveis primeiro e segundo como argumentos.

Porém, ao chegar na função calculadora, ela vai tratar esses valores com outros nomes de variáveis: x e y.

Na definição da função, os nomes dos parâmetros são x e y, então dentro da função, serão tratados apenas como x e y, embora tenha passado (1,2) ou (primeiro,segundo) ou (jose,joao) como argumento.

O nome dos argumentos não importa, vão virar o nome dos parâmetros, que você deixou bem claro ao definir sua função.

Exercício Resolvido de Funções com Parâmetros e Argumentos

Crie um script em Python que pede uma frase (string) ao usuário e em seguida um caractere. Em seguida, seu script deve dizer quantas vezes aquele caractere apareceu na frase digitar. Use função com parâmetros.

Primeiro, vamos definir nossa função, a conta_caractere.
Ele deve ter dois parâmetros o texto, que é uma string e char que é um caractere.

Vamos usar a variável interna count para contar quantas vezes char aparece na string texto, usamos um laço while para fazer isso, e cada vez que encontra, o contador é incrementado em uma unidade.

Usamos um laço for de uma maneira bem interessante, vejam:

def conta_caractere(texto,char):
    count = 0
    for letra in texto:
        if letra == char:
            count += 1
    print(char,"apareceu",count,"vezes na string")
    
string=input("Digite um texto qualquer: ")
caractere = input("Digite um caractere: ")

conta_caractere(string,caractere)


Os dados solicitados ao usuários foram armazenados nas variáveis string e caractere, que foram passadas como argumentos para a função conta_caractere. Simples, não?

Exercícios Propostos

01. Crie uma função que recebe um número e exiba seu quadrado.
02. Crie uma função que recebe um valor e exiba seu cubo.
03. Crie uma função que recebe 4 notas de um aluno, e exiba a média dele.
04. Crie uma função que recebe 3 números e exiba o maior deles.

Variável Local em Python - Curso Online Grátis

Seguindo nossos tutoriais sobre Funções em Python, vamos falar novamente em variáveis. No caso, variáveis locais, que possuem um comportamento diferente e bem interessante.

Como Trabalhar sendo Programador Python Profissional



Variável em Funções

Em praticamente todos os scripts que fizemos, usamos variáveis. Seja pra trabalhar com números inteiros, quebrados, strings etc, mas sempre usamos.

Usávamos em uma linha de código, depois alterávamos o valor em outra linha e por aí ia, sem mistério.

Mas quando começamos a trabalhar com funções, algo de diferente acontece.
Vamos ver um exemplo.

Vamos armazenar um valor na variável var dentro da função teste().
Colocamos o número inteiro 2112 dentro dessa variável e damos um print nesse valor, ainda dentro da função.

Fora da função, vamos simplesmente dar um print nessa variável, veja o código:

def teste():
    print("Estamos dentro da função!")
    var=2112
    print("Valor de var:",var)

teste()
print("Agora estamos fora da função!")
print("Valor de var:",var)


Agora veja o resultado:

Variáveis locais em funções
Dentro da função...tudo ok! Definimos a variável, atribuímos um valor a ela, imprimimos e tudo certo.

Fora da função, não! Deu ruim!!! E agora?

Variável Local em Python

A explicação é muito simples: as variáveis dentro de uma função, não são visíveis fora da função.


Se você criou e usou uma variável dentro de qualquer função, ela só existe naquele escopo, ou seja, apenas ali dentro da função.

Quem está de 'fora', não sabe que ela existe, não sabe o que tem dentro da função.

Vamos fazer mais um teste, com 3 funções. Uma função chama a outra. E em cada função vamos usar uma variável de mesmo nome, a banda, veja:

def teste():
    banda="Rush"
    print("A melhor banda do mundo é ", banda)
    teste2()

def teste2():
    banda="Beatles"
    print("A melhor banda do mundo é ", banda)
    teste3()

def teste3():
    banda="Iron Maiden"
    print("A melhor banda do mundo é ", banda)

teste()


Ou seja, cada função é um 'universo'. Outras funções ou outro escopo, não sabem que se passam lá dentro, nestes casos.

Existem, porém, uma maneira de funções se comunicarem com outras.
Mas isso é assunto para o próximo episódio (sempre quis dizer isso).

Próximo tutorial: Parâmetro e Argumento em Funções Python