Introdução a Python¶

Aula 2¶

Sumário¶

  • Operações lógicas
  • Operações de pertença
  • Fluxos de controlo
  • Scripts e comentários
  • Funções
  • Exercícios

Operações lógicas¶

and: Devolve True se ambas as expressões forem verdadeiras

In [1]:
x = 3

x < 10 and x < 5
Out[1]:
True

or: Devolve True se alguma das expressões for verdadeira

In [2]:
x = 5

x == 8 or x == 4
Out[2]:
False

not: Reverte o resultado

In [3]:
x = 12

not(x > 5 and x > 10)
Out[3]:
False

Operações de pertença¶

in: Retorna True se a sequência com o valor especificado está presente no objeto

In [4]:
x = "ab"
y = "abcd"

x in y
Out[4]:
True

not in: Retorna True se a sequência com o valor especificado não está presente no objeto

In [5]:
x = "ab"
y = "cd"

x not in y
Out[5]:
True

Fluxos de controlo¶

If... else¶

if: Permite executar um conjunto de instruções caso a condição em questão se verifique

In [6]:
x = 2
y = 4

if y > x:
    print("y é maior do que x") #atenção à indentação
y é maior do que x

elif: Permite executar um conjunto de instruções caso a condição em questão se verifique e todas as anteriores não

In [7]:
x = 4
y = 2

if y > x:
    print("y é maior do que x")
elif y < x:
    print("y é menor do que x")
y é menor do que x

else: Permite capturar tudo o que não tenha sido capturado pelas condições anteriores

In [8]:
x = 5
y = 5

if y > x:
    print("y é maior do que x")
elif y < x:
    print("y é menor do que x")
else:
    print("y é igual a x")
y é igual a x

Ciclos while¶

while: Permite executar um conjunto de instruções enquanto a condição for verdadeira

In [9]:
i = 0

while i<6:
    i+=1
    
i
Out[9]:
6

break: Permite terminar o ciclo mesmo que a condição seja verdadeira

In [10]:
i = 0

while i < 5:
    i += 1
    if i == 3:
        break
    print(i)
1
2

continue: Utiliza-se quando queremos passar uma certa iteração à frente

In [11]:
i = 0

while i < 5:
    i += 1
    if i == 3:
        continue
    print(i)
1
2
4
5

Ciclos for¶

for: Permite executar um conjunto de instruções para cada item de uma lista, de um tuplo, etc.

In [12]:
for x in "banana":
    print(x)
b
a
n
a
n
a

Scripts e comentários¶

Para correr um script:

python nome_do_script.py

Para correr um script em modo interativo:

python -i nome_do_script.py

Funções¶

def: Utiliza-se para definir uma função

In [13]:
def my_function(): #sem argumento
    print("Hello world!")
    
my_function() #chamada da função
Hello world!
In [14]:
def check_parity(i): #com argumento
    if i%2==0:
        print(f"Number {i} is even.")
    else:
        print(f"Number {i} is odd.")
        
check_parity(8)
Number 8 is even.
In [15]:
def favourite_color(color = "pink"): #argumento por omissão
    print(f"My favourite color is {color}.")
    
favourite_color()
My favourite color is pink.
In [16]:
def children_names(*args): #número indefinido de argumentos
    if len(args) == 0:
        print("There are no children!")
    else:
        print("The children names are:")
        for name in args:
            print(f"- {name}")
    
children_names("Maria", "John", "Frank")
The children names are:
- Maria
- John
- Frank
In [17]:
def get_age(**kwargs): #número indefinido de argumentos com nome
    for key, value in kwargs.items():
        print(f"{key}: {value}")
    
get_age(name = "Peter", age = 30)
name: Peter
age: 30

return: Uiliza-se para a função devolver um resultado

In [18]:
def double(i):
    return i*2

double(2)
Out[18]:
4
In [19]:
def factorial(i): #função recursiva
    if i == 0:
        return 1
    else:
        return i * factorial(i-1)
    
factorial(5)
Out[19]:
120

pass: Utiliza-se para definir funções sem conteúdo

In [20]:
def empty_function():
    pass

lambda: função anónima que pode receber qualquer número de argumentos, mas só pode ter uma expressão

In [21]:
x = lambda a: a+10

x(5)
Out[21]:
15

Algumas funções pré-definidas relevantes:

  • abs()
  • len()
  • range()
  • etc.
In [22]:
abs(-7)
Out[22]:
7
In [23]:
len("abcde")
Out[23]:
5
In [24]:
for i in range(10):
    print(i)
0
1
2
3
4
5
6
7
8
9

Exercícios¶

1) Escreva uma função que verifica se uma string contém o caractere "a".

2) Dados dois números inteiros, escreva uma função que retorna o maior.

3) Dado o raio de uma circunferência, escreva uma função que retorna o seu perímetro.

4) Escreva uma função que retorna um quadrado de 5 por 5 cardinais ("#").

5) Dados dois números inteiros, escreva uma função que retorna o seu produto caso este seja maior do que 1000, caso contrário retorna a sua soma.

6) Dados os termos $a$, $b$ e $c$ de uma equação de segundo grau, escreva uma função que retorna o resultado da aplicação da fórmula resolvente.

7) Dado um número natural, escreva uma função que imprime os seus divisores. Tenha em conta que os divisores de um número natural $n$ são os inteiros $k \leq n$ tais que o resto da divisão de $n$ por $k$ é 0.

8) Dado um número natural, escreva uma função que calcule o termo de Fibonnaci para esse número.

9) Escreva uma função que percorre os números inteiros de 1 até 50. Para os múltiplos de 3 imprime "Fizz", para os múltiplos de 5 imprime "Buzz" e para os múltiplos de 3 e 5 simultaneamente imprime "FizzBuzz".

10) Escreva uma função que verifica a velocidade dos condutores: se a velocidade for menor que 70 deverá imprimir "ok", por cada 5km acima do limite de velocidade (70) deverá implicar um furo na carta e imprimir o número de furos, se o condutor tiver mais de 12 furos na carta deverá imprimir "carta de condução suspensa".