Variáveis, expressões e comandos

Tópicos

Estrutura de um programa

Utilizaremos a seguinte estrutura para um programa em Python.

def main():
    # comandos
    ...


#------
# a linha a seguir inicia a execução do programa
main()

Variáveis

Uma variável é um nome que se refere a um valor. Um comando de atribuição cria uma nova variável e lhe dá um valor.

Variáveis são usadas para guardarmos valores que serão usados mais tarde no programa.

Atribuição

Um comando é uma unidade de código que o interpretador pode executar. Um comando de atribuição tem a seguinte forma:

variável = expressão

Significado:

  1. o valor da expressão é calculado;
  2. a variável é criada;
  3. a variável passa a fazer referência/guardar o valor

Exemplos

num  = 15
soma = 0  # este é um comentário
soma = soma + num
a = 3
b = 4

Cada nome de variáveis é uma letra ou o símbolo '_' (underscore) seguida de letras, números e '_'. Atenção, maiúscula é diferente de minúscula. Assim maior e Maior são duas variáveis diferentes.

Exercício 2.1

Dados dois inteiros a e b, calcular a sua soma.

Tentativa 0: execute o programa abaixo e veja o que acontece.

(aula02_ex1_1)



Observe que tudo entre aspas (”) define um texto ou string. Mas queremos imprimir o valor das variáveis e não o nome delas.

print()

A função print() é utilizada para o programa exibir mensagens. Por exemplo:

print("Olá, mundo!")
print("A soma é", soma)

Escreve na tela do computador

Olá, mundo!
A soma é XXXX

onde XXXX é o valor ao qual a variável soma se refere.

Tentativa 1: execute o programa abaixo e veja o que acontece.

Observe que o print() recebeu dois valores separados por vírgula:
  • um string (entre aspas) e
  • o nome de uma variável

O string é impresso diretamente (pois esse é o seu valor) e, ao invés de imprimir o nome da variável soma, o print() exibe o valor ao qual a variável soma se refere, ou, dito mais simplesmente, o valor da variável soma.

Mas e como imprimir os valores de a e b ao invés de seus nomes?

Tentativa 2: execute o programa abaixo e veja o que acontece.

(aula02_ex1_3)



Agora sim, a mensagem ficou bem mais clara. Mas como fazer com que os valores a serem somados sejam definidos por um usuário?

Tentativa 3: execute o programa abaixo e veja o que acontece.

(aula02_ex1_4)



input()

Um programa pode utilizar a função input() para receber os dados ou valores que um usuário fornece através do teclado. O formato típico de um comando leitura é

variável = input("Prompt")

O programa pára e espera pela digitação de algum texto seguido do ENTER. "Prompt" é opcional e pode indicar o que programa deseja. Por exemplo,

nome = input("Qual é o seu nome? ")
print(nome, ", me fale sobre você.")

O valor que o usuário fornece e que será retornada pelo input() é sempre um string e não um número. Quando o operador + é realizado sobre strings, eles são concatenados (“grudados”) em vez de adicionados. Como veremos mais tarde, a operação de concatenar strings através do operador + é muito útil.

No momento desejamos adicionar dois números inteiros. Precisamos, portanto, de um maneira para converter um string em um número inteiro, para que o Python obtenha a soma desses números. Para ler um valor e converté-lo para um número inteiro utilizamos a função de conversão int().

Strings

Uma string é texto entre aspas (") ou apóstrofo (')

Valores

Programas manipulam valores. Valores podem ser de diferentes tipos ou classes. Até agora vimos que um valor pode ser um número inteiro (classe int) ou um texto (classe str). Por exemplo, "Oi" é um string (valor da classe str), 23 é um inteiro (valor da classe int), e "23" é um string (valor da classe str).

>>> type("Oi")
<class 'str'>
>>> type(23)
<class 'int'>
>>> type("23")
<class 'str'>
>>>

Operacões sobre strings

O operador + concatena dois strings.

Tentativa 4: execute o programa abaixo e veja como ele se comporta.

(aula02_ex1_5)



int()

A função int() converte um dado string para um número inteiro.

>>> a = int("123")
>>> type (a)
<class 'int'>
>>> print("valor inteiro =", a)
valor inteiro = 123
>>>

O string deve ser algo como "123" ou "-5", pois senão ocorrerá um erro.

>>> a = int("1.5")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.5'
>>> a = int("a156")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a156'
>>>
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a156'

Como não precisamos guardar as respostas na forma de texto, podemos simplificar o programa compondo as funções int() e input() da seguinte forma:

Tentativa 5:

(aula02_ex1_6)



Exercício 2.2

Dada uma sequência de números inteiros diferentes de zero, terminada por um zero, calcular a sua soma. Por exemplo, para a sequência:

12   17   4   -6   8   0

o seu programa deve escrever o número 35.

Tente escrever a sua solução primeiro e, depois, clique aqui para ver uma.

(aula02_ex2_tentativa)



Comando de repetição: while

Leitura sobre o comando de repetição while.

Expressões lógicas

Condições ou expressões lógicas (boolean expressions) são expressões cujo valor é verdadeiro (=``True`` em Python) ou falso (=``False`` em Python) e usam, entre outros, os operadores relacionais:

  • > (maior);
  • >= (maior ou igual);
  • < (menor);
  • <= (menor ou igual);
  • == (igual); ou
  • != (diferente).

Exercício 2.3

Nota: Exercício 4 da lista sobre inteiros.

Dados números inteiros n e k, com k >= 0, calcular n elevado a k. Por exemplo, dados os números 3 e 4 o seu programa deve escrever o número 81.

Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.

(aula02_ex3_tentativa)



Exercício 2.4

Nota: Exercício 8 da lista sobre inteiros.

Dado um número inteiro n >= 0, calcular n!.

Tente escrever a sua solução abaixo primeiro e, depois, clique aqui para ver uma.

(aula02_ex4_tentativa)