def main():
print("Olá, mundo!")
#-----
main()
O programa acima executa um único comando - o print
, que escreve mensagens na saída.
Entre os parênteses que aparecem logo depois do print
, nós indicamos o que queremos escrever.
A frase "Olá, mundo!"
foi colocada entre aspas para indicar ao Python que ela é um texto (e não um comando que ele deve tentar interpretar).
Veja abaixo o que acontece quando tiramos as aspas. Uma mensagem de erro é gerada pelo interpretador.
def main():
print(Olá, mundo!)
#-----
main()
Um valor é um dos elementos básicos que um programa manipula. Um valor tem sempre um tipo.
Por exemplo, 15
é do tipo inteiro, enquanto "Olá, mundo!"
é do tipo texto (= cadeia de caracteres = string).
Em Python, esses dois tipos são chamados de int
e str
, respectivamente. O valor 3.75
é do tipo real, chamado em Python de float
.
Para consultar o tipo de um valor, você pode usar o comando type
, como no exemplo abaixo.
print(type(15))
print(type('Olá, mundo!'))
print(type(3.75))
Atenção: um valor como "3.75"
parece do tipo real, mas na verdade é uma cadeia de caracteres (observe as aspas!).
print(type("3.75"))
Uma variável é um nome que referencia um valor.
Para criar uma nova variável e associar um valor a ela, usamos um comando de atribuição.
Veja a seguir exemplos de comandos de atribuição em Python; esses comandos criam uma variável chamada a
com valor 3
e uma variável chamada b
com valor 4
.
a = 3
b = 4
Toda a vez que você usar o nome de uma variável em um programa depois que ela já tiver sido criada, o seu valor será recuperado.
Por exemplo, para escrever o valor de uma variável na saída, você pode usar o comando print
.
print(a, b)
Atenção: Podemos passar quantos valores quisermos para o print
escrever. Os valores devem ser separados por vírgula.
Os programadores devem escolher os nomes das variáveis de maneira cuidadosa, de modo que eles possam facilitar a compreensão do programa. Uma boa dica é usar nomes que indiquem a função das variáveis dentro do programa.
Um nome de variável pode conter tanto letras quanto números, mas ele deve sempre começar com uma letra. As letras podem ser maiúsculas ou minúsculas. O caracter underscore _
também pode aparecer no nome; geralmente ele é usado em nomes compostos por mais de uma palavra (ex.: velocidade_carro
e nome_rua
).
Dados dois inteiros, escreva um programa que calcule a sua soma.
def main():
a = 3
b = 4
soma = a + b
print("A soma ", a, "+", b, "é igual a", soma)
#-----
main()
O programa acima calcula a soma de dois números de forma correta. Entretanto, o programa não calcula a soma de quaisquer dois inteiros, uma vez que os valores de a
e b
estão fixos no código.
Para permitir que o programa calcule a soma de quaisquer dois inteiros dados, precisamos solicitar ao usuário que digite os números que ele deseja somar.
A função input
lê dados digitados pelo usuário no teclado e devolve-os ao programa. A função recebe como parâmetro de entrada (valor passado entre parênteses) a mensagem que será mostrada na tela, para avisar ao usuário que ele precisa digitar alguma coisa. O valor lido do teclado e devolvido pela input
ao programa é sempre do tipo string.
Para transformar um valor do tipo string para um valor do tipo inteiro, usamos a função int
, como mostrado na versão 2 a seguir.
def main():
a_string = input("Digite o primeiro número: ")
b_string = input("Digite o segundo número: ")
a = int(a_string)
b = int(b_string)
soma = a + b
print("A soma de", a, "+", b, "é igual a", soma)
#-----
main()
É possível simplificar a versão 2 do programa que soma dois números. Veja o novo código a seguir.
def main():
a = int(input("Digite o primeiro número: "))
b = int(input("Digite o segundo número: "))
soma = a + b
print("A soma de", a, "+", b, "é igual a", soma)
#-----
main()
Na versão acima, passamos diretamente como parâmetro para a função int
o valor devolvido pela função input
, e com isso eliminamos a necessidade de se criar duas variáveis adicionais - a a_string
e a b_string
.
Dada uma sequência de números inteiros diferentes de zero, terminada por um zero, escreva um programa que calcule a sua soma. Por exemplo, para a sequência
12 17 4 -6 8 0
o seu programa deve escrever o número 35.
def main():
num = int(input("Digite um inteiro: "))
soma = 0
while num != 0:
soma = soma + num
num = int(input("Digite um inteiro: "))
print("A soma é", soma)
#-----
main()
Esse programa exemplifica o uso de um outro tipo de comando, o comando while
. O comando while
nos permite executar um bloco de comandos repetidas vezes.
Podemos descrever o fluxo de execução do while
por meio dos seguintes passos:
while
, o que resulta em um valor que pode ser True (verdadeiro) ou False (falso).while
e continua a execução a partir do comando seguinte.while
e depois volta ao passo I.Esse tipo de fluxo é chamado de laço (porque o terceiro passo permite uma volta ao passo inicial).
Dados números inteiros n e k, com k>=0, determinar nk. Por exemplo, dados os números 3 e 4 o seu programa deve escrever o número 81.
Obs.: Esse exercício corresponde ao exercício 4 da lista de exercícios sobre inteiros.
def main():
n = int(input("Digite o valor de n: "))
k = int(input("Digite o valor de k: "))
pot = 1
i = 0
while i < k:
pot = pot*n
i = i + 1
print("O valor de", n, "elevado a", k, "é", pot)
#-----
main()
Atenção: Python possui um operador para o cálculo da exponenciação, o **
(ver exemplo abaixo). Entretanto, ele não foi usado na primeira versão da solução do problema para que pudéssemos exemplificar mais uma vez o uso do comando while
.
def main():
n = int(input("Digite o valor de n: "))
k = int(input("Digite o valor de k: "))
print("O valor de", n, "elevado a", k, "é", n**k)
#-----
main()
Dado um número inteiro n >= 0, calcular n!
Obs.: Esse exercício corresponde ao exercício 8 da lista de exercícios sobre inteiros.
def main():
n = int(input("Digite o valor de n: "))
fat = 1
i = 2
while i <= n:
fat = fat*i
i = i + 1
print("O valor de %d! é = %d" %(n, fat))
#-----
main()
Atenção: A biblioteca math
do Python possui uma função que calcula o fatorial de um número (veja exemplo de uso abaixo). A math
contém várias outras funções matemáticas importantes. Mas o uso de bibliotecas em Python é um assunto que só será visto em aulas futuras.
import math
def main():
n = int(input("Digite o valor de n: "))
print("O valor de %d! é = %d" %(n, math.factorial(n)))
#-----
main()
Em um programa, podemos ter 3 diferentes tipos de erros, que serão descritos e exemplificados a seguir.
Um erro de sintaxe ocorre quando o compilador/interpretador do programa não consegue entender o que o seu programa quer que ele faça, ou seja, quando o seu programa contém instruções que não existem ou que estão num formato diferente do esperado pelo compilador/interpretador.
Veja exemplos de erro de sintaxe a seguir.
print("Olá, Mundo!"
No exemplo acima, o interpretador do Python estava esperando encontrar um )
, mas no lugar dele encontrou o fim do comando. Assim, o print
ficou incompleto e um erro de sintaxe foi gerado.
while = 9 * 15
A palavra while
é uma palavra reservada da linguagem Python (ou seja, ela tem um significado especial dentro da linguagem). Como vimos anteriormente, while
é um comando usado para a repetição de blocos de instruções.
Uma palavra reservada da linguagem não pode ser usada como nome de variável em um programa. É por essa razão que o comando de atribuição do exemplo acima gerou um erro de sintaxe.
Um erro em tempo de execução ocorre quando o compilador/interpretador entende o que o programa quer que ele faça, mas algum problema acontece quando as intruções são executadas, causando a interrupção do programa.
Veja um exemplo de erro de tempo em tempo de execução a seguir.
a = 9
b = "Olá, Mundo!"
soma = a + b
No exemplo acima, tentamos somar o valor de duas variáveis a
e b
. Não há nada de errado com a sintaxe do programa: as variáveis possuem nomes válidos, e as instruções e seus formatos são os esperados pelo interpretador do Python.
O problema do programa é que ele tenta somar variáveis que contêm valores de tipos diferentes (int
e str
) - o que não é possível de se fazer.
Um erro em tempo de execução frequente é a tentativa de divisão por 0:
print(1/0)
Diferentemente dos erros de execução em tempo de execução, os erros de semântica não causam a interrupção da execução de um programa. Um erro de semântica acontece quando recebemos um resultado diferente do esperado para um programa porque o programa não foi implementado corretamente.
Como exemplo, considere que queremos fazer um programa que calcule a média entre dois números.
def main():
a = 6
b = 4
media = a + b / 2
print("A média entre", a, "e", b, "é:", media)
#-----
main()
No programa acima, o valor esperado para a média era 5, mas o valor devolvido pelo programa foi 8! Portanto, o programa contém um erro semântico.
Esse erro ocorreu porque a expressão matemática usada para o cálculo da média não leve em conta que o operador de divisão /' tem maior precedência que o operador de soma
+'.
A versão corrigida do programa, mostrada a seguir, usa parentêses para garantir que a operação de soma seja realizada antes da de divisão.
def main():
a = 6
b = 4
media = (a + b) / 2
print("A média entre", a, "e", b, "é:", media)
#-----
main()
int
e str
input()
e print()
int()
de conversão de str
para int
while
>
, !=
, ==
, ...