Como Declarar uma Função: def
Parar criar uma função em linguagem de programação Python, precisamos fazer uma declaração correta e precisa dela.O escopo da declaração de uma função é:
def nome-funcao(argumentos):
código
código
...
return valor
A primeira linha é chamada de hearder ou cabeçalho. A definição da declaração da função começa com a palavra-chave def. O que vem após o def é o nome da função.
No nosso caso, o nome da função é nome-funcao.
Em seguida, um par de parêntesis, que pode conter argumentos (informações para a função usar).
Depois, os dois pontos. E abaixo, o código da sua função.
Por fim, a instrução return com alguma informação, um valor, para retornar para quem chamou a função.
Calma, com exemplos, e aos poucos, você vai entender tudo isso bem melhor.
Há duas coisas opcionais:
Argumentos (informações que você passa para a função, ao chamar ela)
Retornar valor (informações que a função retorna para quem chamou ela)
Como Chamar uma Função
Como você chama alguém? Uma pessoa, um amigo?Pelo nome, correto?
Em funções, é a mesma coisa. Basta escrever o nome dela, e ela roda.
Simples assim.
Se declaramos uma função assim:
def lalala():
código
código
...
O nome dela é lalala, não tem argumentos nem retorna nenhum valor.
Para chamar ela, fazemos com a seguinte linha de código:
lalala()
E pronto. Só isso. Vamos ver um exemplo de código real?
Exemplo de código com Função
Crie um programa em Python que exibe a mensagem "Olá, mundo!"Porém, essa mensagem deve rodar de dentro de uma função.
Vamos criar uma função chamada mensagem. O que ela faz é simplesmente exibir uma mensagem, um print.
Agora, basta chamar:
mensagem()
Pronto, só isso, veja como fica o código:
def mensagem():
print("Olá, mundo")
mensagem()
Script de Python com Funções
Em todos nossos scripts e programas de Python, aconteceu uma coisa:Ele rodava da primeira até a última linha.
Linha por linha.
Na ordem.
No exemplo de código anterior, não.
É definido uma função, tem um print...mas nada ocorre.
Só depois que chamamos a função (mensagem()), é que acontece algo.
Ou seja, o Python pula esses def, não roda ele de cara.
Aliás, se você não tivesse chamado a função via mensagem(), aquele código nem seria executado.
Quando chamamos uma função de nome nome(), o Python sai buscando no código uma def nome(), ou seja, ele sabe que você chamou uma função.
Então ele para tudo e vai buscar onde essa função foi declarada e executa ela.
Ok?
Pode ter 1 milhão de linhas de código com funções. Se elas não forem chamadas, simplesmente não executam.
Mas se tiver uma função de uma linha (como a do exemplo), e ela for chamada 1 milhão de vezes, ela é executada 1 milhão de vezes.
Ou infinita vezes. O código a seguir executa o Olá, mundo! infinitamente:
def mensagem():
print("Olá, mundo")
while 1:
mensagem()
Exemplo de Código com Funções
Crie uma função que pede dois números, faz a soma e exibe o resultado, através de uma função. O usuário pode executar a função quantas vezes desejar.A função que soma será a soma(). Ela é bem simples, pede x, pede y, transforma tudo em float, soma na variável soma e exibe este valor. Pronto.
Função é isso, um código simples, pequeno e bem específico, nada mais, nada menos.
Agora vamos ao programa normal.
Talvez seja preciso chamar a função soma() várias vezes. Quem vai controlar isso é a variável continuar.
Inicialmente ela é 1 (verdadeiro ou TRUE).
Com um laço while, testamos o valor de continuar, como é 1, é TRUE, então o looping roda.
Dentro do laço, é testado o valor de continuar, se for verdadeiro, cai num IF que chama a função soma().
Inicialmente, é tudo verdadeiro, logo a função é invocada.
Ela roda normalmente e faz tudo bonitinho.
Depois, perguntamos ao usuário se ele deseja continuar a fazer mais somas. Se desejar encerrar o programa, basta digitar 0.
continuar vai ser 0, o laço while vai ter teste FALSO e não vai mais executar, encerrando o looping e o programa.
Se digitar qualquer coisa diferente de 0, o teste do laço while vai ser verdadeiro e vai rodar de novo.
Nosso código fica:
def soma():
x = float(input("Primeiro numero: "))
y = float(input("Segundo numero: "))
soma = x + y
print("Soma: ",soma)
continuar=1
while continuar:
if(continuar):
soma()
continuar=int(input("Digite 0 se desejar encerrar ou qualquer outro numero para continuar: "))
Bacana, né?
Exemplo de Código com Funções
Faça uma calculadora, usando funções. O script pergunta qual operação o usuário deseja rodar (soma, subtração, multiplicação ou divisão) e executa a operação.A calculadora deve ser executada quantas vezes o usuário desejar.
A ideia aqui é criar várias funções, e dependendo do que o usuário digitar, executar a função corretamente.
Veja a solução completa:
Calculadora em Python usando Funções
#Roda sem o "if(continuar):"
ResponderExcluirdef soma():
x = float(input("Primeiro numero: "))
y = float(input("Segundo numero: "))
soma = x + y
print("Soma: ",soma)
continuar=1
while continuar:
soma()
continuar=int(input("Digite 0 se desejar encerrar ou qualquer outro numero para continuar: "))
def função(dia,mes,ano):
ResponderExcluirdata = False
if (mes == 1 or mes == 3 or mes == 5 or mes == 7
or mes == 8 or mes == 10 or mes == 12):
if dia <= 31:
data = True
if ( mes ==4 or mes ==6 or mes ==9 or mes ==11):
if dia<=30:
valida = True
if mes==2:
if (ano%4 == 0 and ano%400!=0) or (ano%400 == 0):
if(dia<=29):
valida = True
elif(dia<=28):
valida = True
if(data):
print('Data inválida')
return
mes = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez']
print("Tauá",",",dia,'de ',mes[mes],'de',ano)
dia = int(input('informe o dia - '))
mes = int(input('informe o mes - ')) - 1
ano = int(input('informe o ano - '))
função(dia,mes,ano)
onde estou errando no meu código?
na endentação
ExcluirA tabela de nomes de meses não pode se chamar 'mes' pois confunde com o parâmetro da função. Mude para 'mes1' por exemplo. E, logicamente, o print deve vir após a chamada da função.
Excluirolá tudo bem?
ResponderExcluirpor gentileza, como faço para gravar vários inputs, em um arquivo txt?
pois aqui eu faço isso:
nome = open("arquivo.txt", "w")
nome_usuario = input("Qual seu nome: ")
nome.write(nome_usuario)
nome.write()
nome.close()
AGORA> não consigo salvar nesse mesmo arquivo.txt, vários inputs.
gostaria de saber como chamar uma função antes de declarar a função, o motivo é para que meu codigo fique organizado
ResponderExcluirdef soma():
ResponderExcluira = int(input("primeiro numero"))
b = int(input("segundo numero"))
soma = a+b
print(soma)
def subtração():
a = int(input("primeiro numero"))
b = int(input("segundo numero"))
sub = a - b
print(sub)
def multiplicação():
a = int(input("primeiro numero"))
b = int(input("segundo numero"))
multi = a * b
print(multi)
def divisão():
a = int(input("primeiro numero"))
b = int(input("segundo numero"))
div = a / b
print(div)
continuar =1
while continuar:
entrada = int(input('digite gual operação deseja fazer\n1.adição\n2.subtração\n3.multiplicação\n4.divisão'))
if entrada == 1:
soma()
continuar=int(input('se deseja continuar digite gualquer numero se nao 0'))
elif entrada == 2:
subtração()
continuar=int(input('se deseja continuar digite gualquer numero se nao 0'))
elif entrada == 3:
multiplicação()
continuar=int(input('se deseja continuar digite gualquer numero se nao 0'))
elif entrada == 4:
divisão()
continuar=int(input('se deseja continuar digite gualquer numero se nao 0'))