69
Informá(ca para as Ciências e Engenharias Versão : D (Engenharias Mecânica e Gestão Industrial) Aula 5 Pedro Barahona 2019 / 20

Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Informá(ca para as Ciências e EngenhariasVersão : D

(Engenharias Mecânica e Gestão Industrial) Aula 5

Pedro Barahona2019 / 20

Page 2: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 2

Page 3: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 3

Page 4: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Algoritmo [5]

• A instrução FOR permite executar um bloco de instruções um número devezes pre-determinado.

• Por vezes é interessante executar um bloco de instruções até umacondição se verificar.

• Exemplo:§ Para descobrir se um elemento x está em V, é sempre necessário

percorrer todas as posições de V?« Se x está em V, quando é que se conhece a (menor) posição de x

em V?

« Se x não está em V, quando é que se conclui que não está em V?

• Para permiHr repeHr um bloco de operações enquanto se verificar a suanecessidade pode uHlizar-se a instrução WHILE.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 4

Page 5: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Ciclo WHILE

Operacionalmente:1. A condição é avaliada.

§ Se for verdadeira, executam-se as instruções e volta-se aoponto de parEda (while).

§ (Se for falsa, não se faz mais nada. Termina o while.)

5

Sintaxe:

while condição :

instruções

Exemplo:while semáforo está vermelho

aguardeend

Page 6: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Algoritmo [5]

Problema: Verificar se um valor x existe no vetor V• Exemplo: Pesquisar se 9 existe no vetor [3,9,5]

§ pos ← 0; V[pos] ≠ 9? Sim. ConHnua...§ pos ← 1; V[pos] ≠ 9? Não. Portanto, V[pos] == 9.

Em geral:• Quando x está em V:

pos ← 0enquanto V[pos] ≠ x faça-se

pos ← pos + 1§ No fim: de certeza que V[pos] contem x.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 6

Page 7: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Exemplo: Pesquisa em [3, 9, 5]

• Exemplo: Pesquisar se 7 existe no vetor [3,9,5]§ pos ← 0; V[pos] ≠ 7? Sim. ConHnua...§ pos ← 1; V[pos] ≠ 7? Sim. ConHnua...§ pos ← 2; V[pos] ≠ 7? Sim. ConHnua...§ pos ← 3; Não se pode aceder a V[pos]! Portanto, 7 não está em V.

Em geral:• Quando x “está ou não está” em V:

pos ← 0;Enquanto pos < len (V) and V[pos] ≠ x faça-se

pos ← pos + 1No fim: se pos ≤ len(V), de certeza que V[pos] contém x;

se pos > len(V), de certeza que V não contém x.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 7

Page 8: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

• Algoritmo geral para procurar x num vetor V:

• Nota: O algoritmo funciona para todos os Hpos de elementos que se possam comparar com o operador !=.

Resolução – Algoritmo [6]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 8

def procura(x,V):""" Verifica se x se encontra em V.Retorna True se sim, e False no caso contrario"""pos = 0while pos < len(V) and V[pos] != x :

pos = pos + 1return pos < len(V)

In : procura(5,[3,5,7,9])Out: True In : procura(‘Paula’,[‘Ivo’, ‘Rui’, ‘Sara’])Out: False

Page 9: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

• Se V esPver ordenado só vale a pena procurar enquanto x formenor que os elementos de V com que é comparado.

• Neste caso, encontra-se o elemento se passou do fim e se oelemento foi efePvamente encontrado (este teste não eranecessário anteriormente. Porquê?)

• Nota: O algoritmo funciona para todos os Ppos de elementos que se possam comparar com o operador <.

Resolução – Algoritmo [6]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 9

def procuraOdenado(x,V):""" Verifica se x se encontra em V, que esta ordenado.Retorna True se sim, e False no caso contrario"""pos = 0while pos < len(V) and V[pos] < x :

pos = pos + 1return pos < len(V) and V[pos] == x

Page 10: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Algoritmo [6]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 10

def procuraOrdenado(x,V):""" Verifica se x se encontra em V, que esta ordenado.Retorna True se sim, e False no caso contrario"""pos = 0while pos < len(V) and V[pos] > x :

pos = pos + 1return pos < len(V) and V[pos] == x

In : procuraOrdenado(5,[3,5,7,9])Out: True In : procuraOrdenado(‘Paula’,[‘Ivo’, ‘Rui’, ‘Sara’])Out: False

• O algoritmo tem o mesmo comportamento que o anterior, mas émais eficiente• em geral, faz menos comparações.

Page 11: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 11

Page 12: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Problema do Disco Estragado

• As notas da avaliação con^nua dos alunos de ICE estavamguardadas num computador cujo disco avariou. Da informaçãoque se conseguiu recuperar obPvemos uma matriz, em que cadalinha tem o nº de um aluno, a prova de avaliação* que foi feita e anota obPda pelo aluno nessa prova.

* 1: Exercício 1 2: Exercício 2 3- Projeto 4- Teste 1 5- Teste 2

• Problema: Faça um programa que, dado um conjunto de alunos,verifique se esses alunos fizeram uma dada prova de avaliação eretorne um vetor de tuplos:

§ (nº de aluno, -1) se o aluno não fez a prova; e§ (nº de aluno, nota) se o aluno fez a prova.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 12

Page 13: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [1]

1. Compreender totalmente o problema.• Exemplo de vetores de entrada e tuplos de saída para a prova 2:

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 13

Entrada

50123 1 15.150788 1 9.950401 1 12.750123 2 14.350123 3 17.050401 2 13.550123 4 10.450788 3 15.650401 4 11.9 M

501235078850401

V

k = 2

Saída

(50123, 14.3)(50788, -1)(50401, 13.5)

Page 14: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [2]

2. Caracterizar o problema.

• Problema: procurar as notas de um conjunto de alunos.

• Entrada: matriz M com três colunas, vetor V com uma coluna e inteiro k (entre 1 e 5)

• Saída: vetor R, com vários tuplos de 2 elementos, um por cada número no vetor V, com a respeEva nota na prova k.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 14

R(50123, 14.3)(50788, -1)(50401, 13.5)

50123 1 15.150788 1 9.950401 1 12.750123 2 14.350123 3 17.050401 2 13.550123 4 10.450788 3 15.650401 4 11.9 M

501235078850401

V

k = 2

Page 15: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [3]

3. Generalizar o problema (sempre que for possível).• Não se pode generalizar.

4. Desenhar o algoritmo para resolver o problema.a) Conceber o algoritmo, decompondo o problema em sub-problemas.• Q: Como obter a nota na prova k de todos os alunos?

§ Cria-se um vetor R vazio.§ Para cada elemento el de V:

§ Procura nota do trabalho k de el em M

§ Adiciona tuplo (el, nota) ao vetor R.§ Retorna R

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 15

Page 16: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [4]

4. Desenhar o algoritmo para resolver o problema.b) IdenCficar, caracterizar e generalizar cada sub-problema.

• Problema: Pesquisa de um elemento (em 2 colunas de uma matriz).

• Entrada: matriz M, inteiro k, elemento el.

• Saída: Se exisEr uma linha que tenha el na primeira coluna e kna segunda coluna, devolve-se o valor da terceira coluna deM; no caso contrário a saída é -1.

b) IdenEficar, caracterizar e generalizar cada sub-problema.

• Não se pode generalizar.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 16

Page 17: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [5]

4. Desenhar o algoritmo para resolver o problema.c) Conceber o algoritmo, assumindo que os sub-problemas estão

resolvidos.

obterNotas( M, V, k):R = []Para cada elemento el de V:

nota ← PesquisaNota( M, el, k)R.append((el,nota))

Devolve R

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 17

Page 18: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [6]

5. Para cada sub-problema, desenhar o algoritmo para oresolver.

Pesquisa na matriz M do elemento el, trabalho k :• Para descobrir se el,n está em M, é sempre necessário percorrer

todas as posições de M?§ Se el, k está em M, quando é que se conhece a (menor) posição

de el, k em M?

§ Se el, k não está em M, quando é que se conclui que el, n nãoestá em M?

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 18

Page 19: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [7]

5. Para cada sub-problema, desenhar o algoritmo para oresolver.

• Pesquisa na matriz M do elemento el, trabalho k :

PesquisaNota( M, el, k):linha ← 0Enquanto linha < len(M) e (M[linha][0] != el ou M[linha][1] != k) faça-se :

linha ← linha + 1Se linha < len(M)

Devolve M[linha][2]Senão

Devolve -1

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 19

Page 20: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Resolução – Problema [8]

6. Para cada sub-problema (começando pelos mais simples),implementar o respeEvo algoritmo e testar o “sub-programa”.§ PesquisaNota ( M, el, k )

7. Implementar o algoritmo que resolve o problema e testar oprograma pedido.§ ObterNotas ( V )

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 20

Page 21: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Implementação [1]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 21

def PesquisaNota (M,al,k):""" Verifica se na Matriz M existe uma linha cujos primeiros valores são al e k. Se sim retorna o terceiro valor, senão retorna -1"""linha = 0 while linha < len(M) and \

(M[linha][0] != al or M[linha][1] != k):linha = linha + 1

if linha < len(M) :return M[linha][2]

else :return -1

mudança de linha

• Comecemos por implementar a função para resolver o sub-problema:

Page 22: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Implementação – Testes Unitários

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 22

def PesquisaNota (M,al,k):""" ... """linha = 0 while linha < len(M) and \

(M[linha][0] != al or M[linha][1] != k):linha = linha + 1

if linha < len(M) :return M[linha][2]

else :return -1

• Testar a função antes de a usar

In : M = [[50123,1,15.1], . . . , [50401,4,11,9]]In : PesquisaNota(M,50123,2)Out: 14.3In : PesquisaNota(M,50401,2)Out: 13.5In : PesquisaNota(M,50788,2)Out: -1

R(50123, 14.3)(50788, -1)(50401, 13.5)

50123 1 15.150788 1 9.950401 1 12.750123 2 14.350123 3 17.050401 2 13.550123 4 10.450788 3 15.650401 4 11.9 M

501235078850401

V

k = 2

Page 23: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Implementação [2]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 23

def ObterNotas(M,V,k):""" Devolve um vetor R de tuplos obtido da seguinte forma:Para todas as linhas de V, se na Matriz M existe uma linha cujos primeiros valores são os valores de V, inclui um tuplo(al, nota) em que nota é o terceiro valor da linha em M. Casocontrário inclui um tuplo (al, -1) em R."""R = [] for al in V

nota = PesquisaNota(M, al, k)R.append((al,nota))

return R

• E agora a implementação da função principal:

Page 24: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Implementação – Testes

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 24

• Testar a função

In : M = [[50123,1,15.1], . . . , [50401,4,11,9]]In : V = [50123, 50788,50401]In : ObterNotas(M, V, 2) Out: [(50123,14.3), (50788,-1),[50401,13.5)]In : ObterNotas(M, V, 3) Out: [(50123,17.0), (50788,15.6),[50401,-1)]

def ObterNotas(M,V,k):""" ..."""R = [] for al in V

nota = PesquisaNota(M,al,k)R.append((al,nota))

return R

R(50123, 14.3)(50788, -1)(50401, 13.5)

50123 1 15.150788 1 9.950401 1 12.750123 2 14.350123 3 17.050401 2 13.550123 4 10.450788 3 15.650401 4 11.9 M

501235078850401

V

k = 2

Page 25: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 25

Page 26: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

String – sequência de caracteres

• Uma string é uma sequência de caracteres.• Em Python,

§ Escreve-se uma string entre aspas (“ ...”) ou plicas(‘...’).§ As strings (e os caracteres) são do Epo str

In : efct = “Estudante na FCT/NOVA.”In : efctOut: 'Estudante na FCT/NOVA.'In : print(efct)Estudante na FCT/NOVA.In : type(efct)Out: str

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 26

Page 27: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

String – Vetor de caracteres

• Sendo uma string uma sequência de caracteres, podem-seusar operações semelhantes aos vetores (listas).

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 27

In : efct = “Estudante na FCT/NOVA.”In : efct[2]Out: 't'In : efct[10:12]Out: 'na'In : efct.index(‘F’)Out: 13In : efct[-5:-1]Out: ‘NOVA'

Page 28: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

String – sequência de caracteres

• Um carácter é representado internamente por um número,chamado o código do carácter.

• Uma das codificações de caracteres mais usadas é a codificaçãoASCII (American Standard Code for InformaPon Interchange).

§ Tem limitações no número de caracteres representados.§ Apenas usa um byte (8 bits) podendo representar 28 = 256

caracteres na sua versão estendida (128 na versão inicial, emque um bit era usado para paridade.

• Outras codificações: ISO 8859 e Unicode/UTF.

§ Ultrapassa as limitações do ASCII por representar códigos em16 bits (216 = 65536 caracteres diferentes).

§ O Python 3.X uPliza a codificação Unicode de strings

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 28

Page 29: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings - Codificação ASCII

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 29

Caracteres de controlo, como o LF - mudança de linha, em Python ‘\n’, iniciam-se no código 01 e vão até ao código 31

Dígitos

Caracteres de pontuação

Minúsculas

Maiúsculas

Page 30: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings - Codificação Unicode [1]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 30

• O código Unicode “contém o código ASCII (h,ps://jrgraphix.net/r/Unicode/)

§ Caracteres começados por 00 (1º byte).

Page 31: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings - Codificação Unicode [2]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 31

• Mas permite codificar outros alfabetos !§ Ex: Arménio - Caracteres começados por 05 (1º byte).

Page 32: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings - Codificação Unicode [3]

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 32

• Mas permite codificar muitos mais alfabetos !.

Page 33: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings – Conversão entre Tipos

• Números e strings representando números são enEdades diferentes enão devem ser confundidos!

• Algumas funções pré-definidas (int, float, str) permitem a sua conversão

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 33

In : int(“1234”) # conversão de str para inteiroOut: 1234In : float(‘12.34’) # conversão de str para decimalOut: 12.34In : int(‘12.34’) # conversão de str para inteiro?....ValueError: invalid literal for int() with base 10: '12.34'In : float(‘1234’) # conversão de str para inteiro?Out: 1234.0In : str(1234) # conversão de str para inteiro?Out: ‘1234’In : str('1234’) # conversão de str para str?Out: '1234’In : ord('ã’) # código ascii do character ãOut: 227

Page 34: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings – Comparações [1]

• valorLógico = str1 ==str2§ True se as strings str1 e str2 são iguais; False, no caso contrário.

• valorLógico = str1 < str2§ True se a representação UNICODE da str1 é menor que a da str2.

False, no caso contrário.§ Normalmente corresponde a ordenação lexicográfica (alfabéHca).

• Estas funções DisHnguem maiúsculas de minúsculas. Para garanHr acomparação ‘correta’ de strings podem converter-se para maiúsculas oumin

• strx.toupper() , strx.toupper()§ Convertem a string strx para maiúsculas ou minúsculas.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 34

Page 35: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings – Comparações [2]

• Exemplos:

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 35

In : x = ‘Isto é uma string’In : y = ‘isto é uma string’In : z = ‘Isto e uma string’In : x == yOut: FalseIn : x.upper() == y.upper()Out: TrueIn : x <= yOut: TrueIn : x == zOut: FalseIn : x.upper() == z.upper()Out: FalseIn : x > zOut: True

Page 36: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

• Strings podem ser “concatenadas” da mesma forma que listas, já questrings são de facto listas de caracteres.

Concatenação de strings

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 36

In : [1,2,3] + [4,5,6]Out: [1,2,3,4,5,6]In : ‘isto’ + ’é’ + ’uma string’Out: ‘istoéuma string’In : ‘isto’ + ’ é ’ + ’uma string’Out: ‘isto é uma string’

In : len(‘isto é uma string’)Out: 17

Page 37: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings – Substrings

Outras funções, permitem obter e localizar substrings.

• str1.find (str2)§ Procura a string str2 em str1 e caso existe, retorna o índice em

que str2 começa em str1; caso não exista devolve -1.

• str1.find (str2, pos)§ Procura a string str2 em str1, a parHr da posição pos, e caso existe,

retorna o índice em que str2 começa em str1; caso não exista devolve -1.

• valor Lógico = str1 in str2§ True se a str1 está conHda na string str2; False, no caso contrário.§ Equivalente a str2.find(str1) >=0.

• str1.strip()§ ReHra os espaços e carateres de mudança de linha do início e fim da str1

(úHl para comparações de strings).8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 37

Page 38: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Strings – Comparações [2]

• Exemplos:

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 38

In : x = ‘Isto é uma string’In : y = ‘ Isto é uma string.\n’In : x == yOut: FalseIn : y.strip() == xOut: TrueIn : ‘t’ in xOut: TrueIn : x.find(‘t’)Out: 2In : x.find(‘t’,5)Out: 12In : x.find(‘t’,20)Out: -1

Page 39: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 39

Page 40: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Rede de computadores

• Um conjunto de computadores que estão interligados com o objeEvo detrocar informação e parElhar recursos.

Uma rede de computadores é uma infra-estrutura de troca de mensagens entre

os computadores que lhe estão ligados, permiEndo o acesso a recursos

remotos e a uElização de aplicações distribuídas

RedeComputador

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 40

Page 41: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Numa transferência intervêm dois computadores e a rede

• Dois computadores§ Nó emissor: produz uma sequência de bytes (mensagem).§ Nó recetor ou desEnatário: recebe essa sequência de bytes.

• Rede§ Meios de interligação: cabos, atmosfera, …§ Equipamentos dedicados a assegurar que a mensagem é

transportada do nó emissor ao nó recetor.

Rede decomputadores

Unidade Central deProcessamento (CPU)

Memória central

Eletrónica decontrolo da rede

Unidade Central deProcessamento (CPU)

Memória central

Eletrónica decontrolo da rede

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 41

Page 42: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Tipos de redes

• Rede local (LAN, Local Area Network)§ Os computadores estão ligados diretamente, i.e., cada um pode

enviar bytes diretamente a qualquer outro.§ Distância entre computadores Epicamente menor que 1km.

• Rede de larga escala (WAN, Wide Area Network)§ O emissor e o desEnatário estão em redes locais disEntas e é

preciso encaminhar os bytes através de equipamento especializado(routers e gateways), capaz de escolher as ligações que permitemchegar ao desEno.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 42

Page 43: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Pacotes

• Como é que os bytes enviados pelo emissor chegam ao desEnatário,que pode estar a muitos milhares de Kms?

• Cada computador tem um endereço.

• A informação é dividida em pacotes (sequências de bytes) e cadapacote tem o endereço do desEnatário.

• Os pacotes são encaminhados individualmente pela rede da origematé ao desEno.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 43

Page 44: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Interligação de redes: exemplo

• Exemplo:§ 2 LANs ligadas por 3 encaminhadores (routers)

Router

Router

Nó Nó

Rede Local 1

Nó Nó

Rede Local 2

Router

Ligação via satélite

Ligação fibra ótica

Ligação cabo

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 44

Page 45: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Internet e o encaminhamento de pacotes

• A Internet é uma interligação de redes locais de acordo com normaspróprias.

• Na Internet todos os computadores (ou nós) têm um endereço único(normalmente um número com 32 bits) chamado endereço IP (InternetProtocol).

• Quando uma computador emite um pacote desEnado a outro, noutraLAN, entrega-o ao router mais próximo (que está na sua rede local).

• Os routers propagam o pacote até este chegar ao router da rede localdo computador de desEno, que entrega o pacote ao desEnatário.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 45

Page 46: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Nº de máquinas na Internet

• Este crescimento é muito influenciado pelo sucesso da Web.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 46

Page 47: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Computadores a(vos na Internet:distribuição geográfica

Projecto Carna Botnet, 2012

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 47

Page 48: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Endereços dos nós

• Endereço IP do nó (numérico / machine friendly)§ ConsEtuído por 4 bytes (32 bits)

« representado por 4 números entre 0 e 255, separados por pontos.

§ IdenEfica univocamente o computador na Internet.§ Usado no encaminhamento das mensagens na rede.§ Exemplo: 193.136.122.33

• Endereço simbólico do nó (cadeia de caracteres / user friendly)§ São aqueles nomes que o uElizador usa.§ Exemplo: www.google.com

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 48

Page 49: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Nome do nó

www.di.fct.unl.pt

top-level domain(TLD)

organizaçãonome da máquina

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 49

Page 50: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Domain Name System (DNS)

• Serviço de conversão de nomes “user friendly” em nomes“machine friendly”.§ Este serviço reside num nó da LAN (ou do fornecedor de Internet).

• Invocado quando um nó tenta obter o endereço IPcorrespondente a um dado nome simbólico.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 50

Page 51: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

TLDs do Domain Name System [1]

Top-Level Domain Utilizaçãobiz Negócios

com Comercial (EUA)edu Educação (EUA)info Informaçãogov Governo (EUA)mil Militar (EUA)net Redeorg Sem fins lucrativos

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 51

• Nas organizações nos Estados Unidos o top-level domain caracteriza oseu Epo de aEvidade.

Page 52: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

TLDs do Domain Name System [2]

• As organizações com sede fora dos Estados Unidos usam um top-leveldomain que é o código do país (com 2 letras).

País TLDpt Portugaluk Reino Unidoes Espanhafr Françanz Nova Zelândiacn China… …

8 Abril 2020 5: Ciclos WHILE; Stings, Redes e Internet 52

Page 53: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Árvore de domínios do DNS

Domínio raiz

Top-leveldomains …

… edu gov com uk pt

cmu

cs

google ibm up unl

fe fct

di

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 53

Page 54: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 54

Page 55: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Relação cliente-servidor

• Na maioria das situações, as aplicações que usam a rede sãoconsEtuídas por dois programas.

• Um servidor pode servir vários clientes em simultâneo.

Por exemplo,Browser

Por exemplo,Servidor Web

ProgramaCliente

ProgramaServidor

1. Cliente envia pedido

3. Servidor envia a resposta

Recurso

2. Servidorprocessa o pedido4. Cliente

processa a resposta

8 Abril 2020 5: Ciclos WHILE; Stings, Redes e Internet 55

Page 56: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Exemplos de servidores

• Servidor Web§ Recursos: ficheiros e programas.§ Serviços: obter ficheiros e gerar páginas dinâmicas executando

programas a pedido do cliente.

• Servidor de Mail§ Recurso: ficheiros com mensagens.§ Serviços: armazena mensagens ou encaminha-as para outros

servidores de Mail.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 56

Page 57: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Exemplos de clientes

• Cliente Web§ Firefox,§ Internet Explorer,§ Safari,§ Chrome§ ...

• Cliente de Mail§ eM Client,§ Mozilla Thunderbird,§ OperaMail,§ Mail,§ Live Mail, etc.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 57

Page 58: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Protocolos de aplicação

• Conjunto de regras que definem como é que os bytes que circulam narede são interpretados.§ O cliente e o servidor têm de acordar previamente os formatos do

pedido e da resposta;§ Existem normas para imensos serviços na Internet.

• Exemplos:§ Protocolos Internet para consultar o DNS e obter o endereço IP

para um nome;§ Protocolos de aplicações de email (SMTP);§ Protocolos de Web (HTTP).

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 58

Page 59: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 59

Page 60: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

WWW − World Wide Web [1]

• Página Web§ Um documento que contém informação (dados ou referências a

outros dados).

• Link (hiper-ligação)§ Uma ligação (referência) a outra página Web.

• Protocolo da Web§ Protocolos de aplicação que permitem a troca de informação entre

o cliente (browser) e o servidor Web.§ HTTP - HyperText Transfer Protocol

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 60

Page 61: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

WWW − World Wide Web [2]

• Site Web§ Conjunto de páginas Web relacionadas umas com as outras.

Fisicamente, correspondem a ficheiros armazenados numcomputador específico.

• Servidor Web - servidor§ Programa que executa no computador em que a informação está

alojada e responde a pedidos para acesso a páginas Web.

• Browser Web - cliente§ Programa que pede páginas Web pela rede aos servidores e as

mostra ao uElizador.

8 Abril 2020 5: Ciclos WHILE; Stings, Redes e Internet 61

Page 62: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

URL − Uniform Resource Locator

• Uma forma normalizada de especificar a localização de uma página Web.§ Protocolo (pode ser omiHdo);§ Nome do computador;§ Página.

• Os conteúdos idenEficados pelos URLs são de diferentes Epos.§ Exemplos: ficheiros HTML, imagens, audio clips.

http://asc.di.fct.unl.pt/index.html

Protocolo ComputadorNome DNS ouendereço IP: x.x.x.x

Página

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 62

Page 63: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

HTML

• HyperText Markup Language (HTML)§ A linguagem usada para descrever e formatar uma página Web.§ Incluindo colocar imagens e links nas páginas

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 63

<h2 id="center">Exercício 1</h2><p>Recupere o script <a href="file_contaminacao.m">file_contaminacao.m</a> da aula anterior, que ao ser executado cria a variável <b>contaminacao</b>, queregista a concentração de chumbo no solo em vários pontos e que contem:,<ol><li>na primeira linha, um número de 1 a 20, que identifica o ponto de amostragem; <li>na segunda linha, a profundidade de cada amostra (em cm); e, <li>na terceira linha, a concentração de Pb, em partes por milhão. </ol>

Page 64: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Sumário

• Ciclos WHILE.• Resolução de problema.• Strings

§ Relação com vetores.§ Funções (pre-definidas) sobre strings.

• Introdução às redes de computadores e à Internet.

§ Redes de computadores, endereços e DNS;§ Relação cliente/servidor;§ Web e HTML.

• Obtenção de dados da Internet usando Python.§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science

Illuminated 4th Ed, Ed. Jones and Bartle@, 2011

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 64

Page 65: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Obter Conteúdo de um URL

• Como é que se pode aceder ao conteúdo associado a um URL?• No Python, é possível aceder ao conteúdo dum URL, a parEr da

biblioteca requests usando a função requests.get.

• A parEr do objeto resposta é possível obter a seguinte informação:§ resposta.ok terá True case o pedido tenha sido bem sucedido§ resposta.text tem o conteúdo do recurso, como uma string§ resposta.json tem o conteúdo dum recurso JSON, como um

dicionário (veremos mais tarde)§ resposta.content tem o conteúdo do recurso, como uma sequência

de bytes

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 65

import requests

resposta = requests.get ( url )

Page 66: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Obter Conteúdo de um URL

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 66

In : import requests

In : url='https://en.wikipedia.org/wiki/Python_(programming_language)’

In : r = requests.get( url)

In : r.ok

Out: True

In : r.text

Out : '<!DOCTYPE html>\n<html class="client-nojs" lang="en"dir="ltr">...'

• Exemplo:

• As páginas web codificadas em HTML, têm muita “formatação”.• No curso só iremos ler páginas de texto.

Page 67: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Obter Conteúdo de um URL

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 67

• Exemplo:§ Ficheiro de texto

In : import requests

In : url= 'http://icec.ssdi.di.fct.unl.pt/texto.txt'

In : r = requests.get(url)

In : r.ok

Out: True

In : r.text

Out : 'Este ficheiro só contém texto. Tem um total de 162 caracteres.\n\t108 minúsculas;\n\t2 maiúsculas;\n\t20 espaços;\n\t7 caracteres de pontuação;\n\t6 tabs;\n\t6 fins de linha.\n'

Page 68: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Obter Conteúdo de um URL

• Como é que se pode aceder ao conteúdo associado a um URL?• No Python, é possível aceder ao conteúdo dum URL, a parEr da

biblioteca requests usando a função requests.get.

• A parEr do objeto resposta é possível obter a seguinte informação:§ resposta.ok terá True case o pedido tenha sido bem sucedido§ resposta.text tem o conteúdo do recurso, como uma string§ resposta.json tem o conteúdo dum recurso JSON, como um

dicionário (veremos mais tarde)§ resposta.content tem o conteúdo do recurso, como uma sequência

de bytes

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 68

import requests

resposta = requests.get ( url )

Page 69: Informácapara as Ciênciase Engenharias Versão: D …icec.ssdi.di.fct.unl.pt/1920/teoricas/T05/iced_t05.pdf · 2020. 4. 17. · •Nota: O algoritmo funciona para todos os Ppos

Para saber Mais

• Consultar um dos livros de texto aconselhados.• Por exemplo:

§ “Think Python: How to Think Like a Computer ScienEst ”:cap. 7 e cap. 8.

§ “IntroducEon to ComputaEon and Programming Using Python”,caps. 2.1, + 2.3.

8 Abril 2020 5: Ciclos WHILE; S7ngs, Redes e Internet 69