Enviar um café pro programador

Progressão Aritmética (PA) em Python

Agora que você estudou aprendeu bem a usar o laço FOR e a função range, vamos colocar nosso conhecimento em prática e criar qualquer Progressão Aritmética (PA) que o usuário desejar.

Recomendado:
Como se tornar um programador Python profissional, ganhar dinheiro e viver disso



Progressão Aritmética

Uma progressão aritmética, também conhecida por PA, nada mais é que uma sequência de números que obedecem a um determinado padrão.

Esse padrão é composto por duas coisas:
Um número inicial
Um número chamado de razão

A sequência começa com o número inicial.
O termo seguinte da sequência é o anterior, somado a razão. E assim sucessivamente.

Vamos super que temos o termo inicial:
a1 = 1

E razão:
r= 3

A sequência (PA) é:
a1 = 1
a2 = a1 + r = 1 + 3 = 4
a3 = a2 + r = 4 + 3 = 7
a4 = a3 + r = 7 + 3 = 10
...

O termo enésimo é descoberto usando a seguinte fórmula:

PA em Python




Progressão Aritmética (PA) em Python

Crie um programa que pergunte ao usuário o termo inicial e a razão de uma PA.
Em seguida, pergunte a ele quantos elementos da PA ele deseja que seja impresso, e imprima todos os elementos dessa progressão Aritmética, do primeiro termo até o termo 'n' escolhido pelo usuário.

Vamos usar o laço FOR para exibir esses elementos da PA.
O primeiro elemento, é o termo inicial que o usuário vai preencher e vamos armazenar na variável 'primeiro'.

Para achar o próximo, é só usar a razão (armazenada na variável 'razao') como o 'pulo', da função range.

E o último termo que devemos exibir?
Ele é o termo 'a(n)', que mostramos como calcular na fórmula na imagem ali de cima.

Repetindo a fórmula:
a(n) = a(1) + (n-1).r

Em programação Python, escrevemos assim:
ultimo = primeiro + (n-1)*r

Como a função range(inicial, ultimo) nos fornece os elementos de 'inicial' até 'ultimo-1', vamos somar 1 na variável último, para que a range inclua o valor de 'ultimo' e não até 'ultimo-1', fazemos isso assim:

ultimo = ultimo + 1

Assim, nosso código Python que mostra os termos de uma Progressão Aritmética, fica assim:

primeiro=int(input("Primeiro elemento: ") )
razao = int(input("Razao: ") )
n = int(input("Quantos elementos exibir: ") )

ultimo = primeiro + (n-1)*razao
ultimo = ultimo + 1

for var in range(primeiro, ultimo, razao):
    print(var)

Laço FOR em Python - Um loop controlado

Agora que já estudamos e aprendemos direitinho, em nosso Curso Python Progressivo, como usar o laço While, vamos aprender um outro loop, chamado FOR.


Laço FOR em Python - Como usar ?

Sem mais delongas, vamos mostrar como é a declaração e estrutura de um laço for, em Python:

for variavel in [val1, val2, val3, etc]:
    codigo
    codigo
    codigo

Funciona basicamente assim.
A variável 'variavel' vai assumir o valor da variável 'val1', e executa o código.

Em seguida, 'variavel' recebe o valor de val2, e executa o código. E assim sucessivamente, até 'variavel' ter recebido todos os valores da sequência.

Ou seja, nosso laço for tem três coisas:
A variável que vai receber os valores de uma sequência de dados
A sequência de dados
Código a ser executado em cada iteração

Diferente do loop WHILE, que apenas faz um teste (se for verdadeiro executa um código, se for falso, termina o loop), o loop FOR é dito controlado, pois vai executar um determinado número de vezes, que nós escolhemos previamente.

Vamos ver alguns exemplos de uso do laço FOR para firmar os conceitos, só ler essa abstração é meio...abstrato.




Exemplo 1 de uso do laço FOR em Python

"Crie um script em Python que imprima os números de 1 até 5 na tela."
 
Nossa sequência é: 1, 2, 3, 4, 5
Então, nosso código fica:

for val in [1,2,3,4,5]:
    print(val)

Sim, é só isso.
E mais simples é o funcionamento: a variável 'val' recebe o valor 1, e imprime. Depois recebe o valor 2, e imprime....por fim, recebe o valor 5 e imprime.

Como a variável percorreu todos os elementos da lista (esses valores entre colchetes se chamam list e estudaremos as listas com afinco, mais na frente em nosso curso), o laço for acaba.



Exemplo 2 de uso do laço FOR em Python

"Crie um script que imprime todos os dias da semana na tela."
 
Não é obrigatório usarmos números na sequência. Uma lista pode ser formada de strings, por exemplo.

Nosso código fica:

for dia in ['Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado', 'Domingo']:
    print(dia)


Ou seja, a variável 'dia' recebe o valor de cada string e imprime na tela.

Exercício:

"Escreva um script que imprima os números de 1 até 1000."

"Nossa senhora, vou ter que usar a sequếncia [1,2,3,4,5,6,7,8,9...,1000] ???
Deus me livre!"

Calma, nobre cavaleiro Python. A programação veio para facilitar nossas vidas, e não o contrário.

Não precisa digitar os mil números, é para isso que serve o Python: trabalhar pra gente!

No próximo tutorial de Python, vamos aprender a usar a função range() do Python, que resolve esse problema e muitos outros.

A função range

Curso de Python com Certificado

Já imaginou ganhar dinheiro com Python?
Se, trabalhando e se tornando um programador Python profissional.

Pois é, pare de imagine e tome uma atitude pra isso se tornar realidade:
Curso de Python

A função range() - O que é, Para que serve e Como usar

Este tutorial é a continuação da aula sobre o laço FOR em Python (clique neste link anterior caso não tenha estudado a aula anterior).

Agora vamos aprender como deixar nossos laços e loopings bem mais poderosos e interessantes, através da função range.


Função range() do Python

A função range é bem simples e sua funcionalidade é simplesmente nos retornar uma lista de números inteiros.

A maneira mais simples de usar a função range é:
range(n)

Onde 'n' é um número.
Ele vai fornecer uma lista com os elementos: 0, 1, 2, ..., (n-1)
Note que ele fornece uma lista de 'n' elementos, começando sempre do 0.

Como vai fornecer 'n' elementos e começa do 0, o último elemento é sempre n-1 
Vamos ver um exemplo, refazendo o exercício 1 da aula passada:


Exemplo 1: Função range em Python

"Crie um script em Python que imprima os números de 1 até 5 na tela, usando a função range."
 
Nosso código fica assim:

for val in range(5):
    print(val+1)


Quando fizemos 'range(5)', essa função vai retornar a lista: [0,1,2,3,4]
Mas queremos números de 1 até 5, então na hora de imprimir basta somar 1 a variável 'val'.

Bem melhor que fazer [1,2,3,4,5], não é verdade?


Início e Fim na range()

No exemplo 1, usamos apenas um argumento (depois você vai aprender melhor o que é um argumento), no caso, um número inteiro.

Porém, podemos usar dois argumentos na range, da seguinte forma:

range(inicio, fim)

Isso vai nos fornecer uma lista de números, porém ao invés de começar em 0, começa em 'inicio' e vai até 'fim-1'

Exemplo 2: Função range em Python

"Crie um script em Python que imprima os números de 1 até 5 na tela, usando a função range como elemento de início e o de fim."


for val in range(1,6):
    print(val)


Note que não precisamos mais imprimir 'val+1', pois a variável 'val' irá receber os valores 1, 2, 3, 4, e o 5 (ou seja, até 6-1)


Início, Fim e o Pulo na range()

Note outra coisa em nossa amada função range, ele vai avançando de 1 em 1.
Mas se eu quiser avançar de 2 em 2, 3 em 3 ?

A range nos permite fazer isso, basta dizer o valor desse salto, desse pulo:

range(inicio, fim, pulo)

Exemplo 3: Função range em Python

"Crie um script em Python que imprima os números pares de 1 até 100."

Os números pares são 2, 4, 6, 8, ..., 100
Eles vão subindo, pulando de 2 em 2.

Veja como fica nosso laço FOR usando a range com pulo:


for val in range(2,101,2):
    print(val)

Primeiro a variável recebe par número 2. Depois imprime.
Em seguida, pula pro próximo elemento: 2+2=4 e então imprime.
Depois, pula pro próximo elemento: 4 + 2 = 6 e imprime.
Depois, 6+2 = 8 e imprime...

Atééééé 101-1=100
Beeeeem melhor usar o laço FOR e a range, não é verdade?
Imagina fazer isso na mão ([2,4,6,8,...,100]), não tem como!


Exemplo 4: Tabuada em Python

"Crie um script em Python que pede qual tabuada o usuário quer ver, em seguida imprima essa tabuada"

Primeiro, pedimos qual a tabuada o usuário quer (do 1, do 2, do 3...) e armazenamos essa informação na variável 'tabuada'.

A tabuada nada mais é que multiplicar um número por 1, depois por 2, depois por 3, depois por 4....até chegar no 10.

Vamos fazer com que a variável 'var' receba os valores de uma lista que vai de 1 até 10, e em cada iteração do laço FOR, multiplicamos pelo número que o usuário nos forneceu, a variável 'tabuada'.

Nosso código de tabuada fica assim:


tabuada = int(input("Qual tabuada fazer: ") )

for var in range(1,11):
    print(tabuada*var)


Note que fizemos de 1 até 10, se quiser pode fazer até cem, mil, um milhão...tudo com o mesmo código, praticamente.

Interessante Python, não é?
E em pensar que antigamente era 'castigo' e deve de casa, fazer tabuadas gigantescas, agora com 3 linhazinhas de código podemos fazer qualquer tabuada de maneira praticamente instantânea.

Vamos aprender a usar o laço FOR junto da função range para criar uma:
Progressão Aritmética (PA) em Python