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
Parâmetro
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.
Questao 1 e 2:
ResponderExcluirdef quadrado(x):
return x*x
def cubo(x):
return x*x*x
numero=float(input("Digite um numero: "))
print("Quadrado de ",numero," é: ",quadrado(numero))
print("O cubo de ",numero," é: ",cubo(numero))
Questao 3
def media(x,y,z,a):
return (x+y+z+a)/4
nota1=float(input("Nota 1: "))
nota2=float(input("Nota 2: "))
nota3=float(input("Nota 3: "))
nota4=float(input("Nota 4: "))
print("A media do aluno foi ",media(nota1,nota2,nota3,nota4))
Questao 4
def maior(x,y,z):
if(x>y and x>z):
print("O maior numero é ",x)
elif(y>x and y>z):
print("O maior numero é ",y)
elif(z>x and z>y):
print("O maior numero é ",z)
else:
print(".")
numero1=float(input("Numero 1: "))
numero2=float(input("Numero 2: "))
numero3=float(input("Numero 3: "))
maior(numero1,numero2,numero3)
#Exercício 1
ResponderExcluirdef quadrado(x):
b = x**2
print('%2.f ^ 2 = %.2f' %(x,b))
numero = float(input('digite um número:'))
quadrado(numero)
#Exercício 2
def cubo(x):
b = x**3
print('%2.f ^ 2 = %.2f' %(x,b))
numero = float(input('digite um número:'))
cubo(numero)
#Exercício 3
def media(a,b,c,d):
soma = a + b + c + d
media = soma/4
print('media =', media)
nota1 = float(input('Digite primeira nota:'))
nota_2 = float(input('Digite segunda nota:'))
nota_3 = float(input('Digite terceira nota:'))
nota_4 = float(input('Digite quarta nota:'))
media(nota1,nota_2,nota_3,nota_4)
#Exercício 4
def maior(a,b,c):
maior = a
for n in range(1,3):
if b > maior:
maior = b
elif c > maior:
maior = c
print('O maior é', maior)
n_1= float(input('Primeiro numero:'))
n_2 = float(input('Segundo numero:'))
n_3 = float(input('Terceiro numero:'))
maior(n_1,n_2,n_3)
num = float(input("Digite um número: "))
ResponderExcluirdef Math(num):
while(num != 0):
qu = num*num
print("O quadrado de", num, "é ", qu)
#print("O quadrado de {num} é: {qu}".format())
num = float(input("Digite outro número: "))
Math(num)
Exercício 3
ResponderExcluirdef media(x,y,z,w):
print('Media do Aluno.:', (x + y + z + w)/4)
num_1 = float(input('Primeira Nota..:'))
num_2 = float(input('Segunda Nota...:'))
num_3 = float(input('Terceira Nota..:'))
num_4 = float(input('Quarta Nota....:'))
media(num_1, num_2, num_3, num_4)
Exercício - 1
ResponderExcluirdef quadrado(x):
print('Quadrado.:', x*x)
num_1 = float(input('Digite um numero.:'))
quadrado(num_1)
# 04. Crie uma função que recebe 3 números e exiba o maior deles.
ResponderExcluirdef maior(x,y,z):
if(x > y) and (x > z):
print("O maior numero é ",x)
elif(y>x and y>z):
print("O maior numero é ",y)
elif(z>x and z>y):
print("O maior numero é ",z)
else:
print(".")
num_1=float(input("Numero 1: "))
num_2=float(input("Numero 2: "))
num_3=float(input("Numero 3: "))
maior(num_1,num_2,num_3)
def maiordeles(num1,num2,num3):
ResponderExcluirif(num1 > num2) and (num1 > num3):
print("o primeiro numero é o maior deles\n",num1)
elif(num2 > num1) and (num2 > num3):
print("o segundo numero é o maior deles\n",num2)
else:
print("o terceiro numero é o maior deles\n",num3)
x=int(input("digite o primeiro numero"))
y=int(input("digite o segundo numero"))
z=int(input("digite o terceiro numero"))
maiordeles(x,y,z)
Ex. 1:
ResponderExcluirdef quadrado(x):
ao_quadrado = x**2
print(f'O quadrado de {x} é: ', ao_quadrado)
numero_ao_quadrado = int(input('Digite um número aleatório: '))
quadrado(numero_ao_quadrado)
Ex. 2:
def cubo(y):
ao_cubo = y**3
print(f'O valor de {y} ao cubo é :', ao_cubo)
numero_ao_cubo = int(input('Digite um número qualquer: '))
cubo(numero_ao_cubo)
Ex. 3:
ResponderExcluirdef media(nota_1, nota_2, nota_3, nota_4):
media_aluno = nota_1 + nota_2 + nota_3 + nota_4 / 4
print(f'A média do aluno é: ', media_aluno)
nota1 = float(input('Digite a 1ª nota: '))
nota2 = float(input('Digite a 2ª nota: '))
nota3 = float(input('Digite a 3ª nota: '))
nota4 = float(input('Digite a 4ª nota: '))
media(nota1, nota2, nota3, nota4)
Ex. 4:
def maior(n1, n2, n3):
if n1 > n2:
print(f'Este é o maior número: ', n1)
elif n2 > n3:
print(f'Esse é o maior número: ', n2)
else:
print(f'Dentre todos, {n3} é o maior!')
n_1 = int(input('Digite o 1º número: '))
n_2 = int(input('Digite o 2º número: '))
n_3 = int(input('Digite o 3º número: '))
maior(n_1, n_2, n_3)