Enviar um café pro programador

Calcular a Potência de um Nùmero - Exponenciação em Python

Neste tutorial e exercício resolvido de nosso Curso de Python, vamos te ensinar como calcular a potência de um número, a famosa operação de exponenciação: 2 elevado 2...3 elevado a 4 etc.



Quer ganhar dinheiro e viver como programador Python? Te ensinamos aqui!

Exponenciação na Matemática

A operação exponenciação, na Matemática, é a que tem o seguinte formato:

Como fazer exponenciação - Curso de Python
A gente lê assim: x elevado a y, dá z.
Por exemplo:
2² = 4
2³ = 8
3² = 9
3³ = 27

Chamamos o x de base, o y de expoente e o z de potência.
Essa é a definição Matemática, que muito provavelmente você já conhece.

Agora vamos ver isso de uma outra perspectiva, de programação.

Potência em Python

Quando fazemos x elevado a y, estamos querendo dizer:
"Quanto é x vezes x vezes x....y vezes?"

Por exemplo:
3⁴ quer dizer: 3 x 3 x 3 x 3
2⁵ quer dizer: 2 x 2 x 2 x 2 x 2

Então, x^y (x elevado a y), quer dizer que estamos x por x por x por x...isso um total de y vezes.



Exercício em Python

Agora que já aprendemos sobre exponenciação e como calcular a potência na Matemática, vamos ver um exercício interessante, postado no artigo sobre "Lista de Exercícios de Laços e Loops":

Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem. 

Bom, vamos lá.

Precisamos garantir duas coisas: que a base e o expoente sejam números positivos, e o expoente seja também inteiro.

Vamos armazenar o valor da base na variável base e o expoente em expoente.

Nosso resultado vai ficar armazenado na variável potencia, que deve iniciar com valor 1.

Temos que multiplicar a variável potencia por base, várias vezes.
Quantas vezes? expoente vezes!

Vamos usar uma variável de apoio count que serve de contador de 1 até potencia, que vai controlar quantas vezes os laços serão executados.

Exercício resolvido usando laço WHILE


print("base ^ expoente:")
base=int(input("Base: "))
expoente=int(input("Expoente: "))

potencia=1
count=1

while count <= expoente:
    potencia *= base
    count +=1

print(base,"^",expoente,"=",potencia)

Exercício resolvido usando laço FOR


print("base ^ expoente:")
base=int(input("Base: "))
expoente=int(input("Expoente: "))

potencia=1

for count in range(expoente):
    potencia *= base
    count += 1

print(base,"^",expoente,"=",potencia)


4 comentários:

  1. Alguém tem a resposta em c# ?. Por favor!!

    ResponderExcluir
  2. Resposta em Java

    Scanner scan = new Scanner(System.in);

    System.out.println("Cálculo de potência");

    System.out.println("Entre com a base");
    int base = scan.nextInt();

    System.out.println("Entre com o expoente");
    int exp = scan.nextInt();

    int potencia = 1;
    int count = 1;

    while(count <= exp)
    {
    potencia *= base;
    count++;
    }
    System.out.println(base + " ^ " + exp + " = " + potencia);
    }
    }

    ResponderExcluir
  3. O programa no laço WHILE tá igual ao q eu fiz, porém, esse programa não resolve o problema em caso de valores de expoente negativos...

    ResponderExcluir
  4. Consegui resolver incluindo casos onde o expoente é 0 ou negativo!

    base = float(input("digite o valor da base:\n"))
    expoente = int(input("digite o valor do expoente:\n"))

    if expoente == 0:
    potencia = 1

    elif 0 < expoente:
    contador=1
    potencia = base
    while contador < expoente:
    potencia *= base
    contador += 1

    elif expoente < 0:
    contador = -1
    potencia = 1/base
    while contador > expoente:
    potencia *= 1/base
    contador -= 1

    print(potencia)

    ResponderExcluir