Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Programação com Python Wandeson Ricardo 2013 http://www.guiratek.com.br http://www.wanartsci.blogspot.com Wandeson Ricardo 2013 http://www.guiratek.com.br http://www.wanartsci.blogspot.com Sumário ● Introdução e Algoritmos ● Tipos de dados e Operações ● Variáveis e Estruturas de Controle e Repetição ● Funções e Arquivos ● Programação Orientada à Objetos ● Momento H4ck3r: Praticando Codificando ● Criando um Game com Python e Aprendendo OO na Prática ● FIM ● Introdução e Algoritmos ● Tipos de dados e Operações ● Variáveis e Estruturas de Controle e Repetição ● Funções e Arquivos ● Programação Orientada à Objetos ● Momento H4ck3r: Praticando Codificando ● Criando um Game com Python e Aprendendo OO na Prática ● FIM Objetivos ● Apresentar as noções básicas de programação de computador ● Apresentar a sintaxe da linguagem python ● Apresentar exemplos de recursos python ● Apresentar as noções básicas de programação de computador ● Apresentar a sintaxe da linguagem python ● Apresentar exemplos de recursos python Introdução ● Fundamentos de Hardware O hardware é composto pelos seguintes componentes: 1. Unidade de Entrada e Saída; 2. Unidade Central de Processamento, UCP (CPU); 3. Memória Principal. ● Fundamentos de Hardware O hardware é composto pelos seguintes componentes: 1. Unidade de Entrada e Saída; 2. Unidade Central de Processamento, UCP (CPU); 3. Memória Principal. Introdução ● Lógica ● Conectivos Lógicos: permitem a criação expressões cujos valores retornados são valores verdade 'v' (verdadeiro, True, 1) ou 'f' (falso, False, 0) – E – Ou – Não ● Lógica ● Conectivos Lógicos: permitem a criação expressões cujos valores retornados são valores verdade 'v' (verdadeiro, True, 1) ou 'f' (falso, False, 0) – E – Ou – Não Tabela Verdade: E a b a E b 1 1 1 0 1 0 1 0 0 0 0 0 a b a E b 1 1 1 0 1 0 1 0 0 0 0 0 Tabela Verdade: Ou a b a Ou b 1 1 1 0 1 1 1 0 1 0 0 0 a b a Ou b 1 1 1 0 1 1 1 0 1 0 0 0 Tabela Verdade: não a não a 1 0 0 1 a não a 1 0 0 1 Conectivos Lógicos - Exemplos Digite no IDLE Python ● >>> True or False ● True ● >>>( (True and False) or True) ● True ● Obs.: Resolver primeiro parênteses mais internos. Digite no IDLE Python ● >>> True or False ● True ● >>>( (True and False) or True) ● True ● Obs.: Resolver primeiro parênteses mais internos. Algoritmos ● Definição: Uma sequência finita de instruções para resolução de um dado problema ou execução de uma determinada tarefa através de passos lógicos bem definidos e não-ambíguos. ● Definição: Uma sequência finita de instruções para resolução de um dado problema ou execução de uma determinada tarefa através de passos lógicos bem definidos e não-ambíguos. Tipos de Dados ● Python possui tipagem dinâmica, ou seja, o tipo pode ser definido quando feita uma atribuição. Também é permitida conversão. ● Inteiros, reais, listas, tuplas, dicionários, números complexos (z = a+b*i), ... ● Python possui tipagem dinâmica, ou seja, o tipo pode ser definido quando feita uma atribuição. Também é permitida conversão. ● Inteiros, reais, listas, tuplas, dicionários, números complexos (z = a+b*i), ... ● Exemplos ● Inteiros: i = 1 ● Reais (ponto flutuante/float): i = 1.0 ● String: s = “Ola teste!” ● Listas: lista = [1, 2, 3] ● Dicionário: dic = {0: 'Pedro', 1: 'Maria', 2: 'Viviane'} ● Tuplas: tupl = (1,2,3) ● Complexos: num_comp = complex(1,2) # z = 1+2i Obs.: ● Exemplos ● Inteiros: i = 1 ● Reais (ponto flutuante/float): i = 1.0 ● String: s = “Ola teste!” ● Listas: lista = [1, 2, 3] ● Dicionário: dic = {0: 'Pedro', 1: 'Maria', 2: 'Viviane'} ● Tuplas: tupl = (1,2,3) ● Complexos: num_comp = complex(1,2) # z = 1+2i Obs.: i=√−1 Operações ● Adição: + ● Subtração: - ● Multiplicação: * ● Divisão: / – S = 2.0/2.0 #Retorna real (inteiro/inteiro = inteiro, inteiro/real = real) ● Resto de divisão inteira: % – r = 4%2 # r será igual a 0 ● Exponenciação: ** – i = 2**2 # i valerá 4 ● Adição: + ● Subtração: - ● Multiplicação: * ● Divisão: / – S = 2.0/2.0 #Retorna real (inteiro/inteiro = inteiro, inteiro/real = real) ● Resto de divisão inteira: % – r = 4%2 # r será igual a 0 ● Exponenciação: ** – i = 2**2 # i valerá 4 Operações – Ordem de Precedência ● Da aritmética básica temos que determinados operadores (+ adição, / divisão,** potência, * multiplicação, - subtração) tem precedência maior: Exemplo 1: F = 2*3+2-1 é F=2*3+2-1=6+2-1=8-1=7 1. potências, raízes(radiciação); 2. resto de divisão inteira %, multiplicação e divisão; 3.soma, subtração; 4. Obs.: A ordem é alterada quando a operação está envolvida em 'parênteses'. ● Da aritmética básica temos que determinados operadores (+ adição, / divisão,** potência, * multiplicação, - subtração) tem precedência maior: Exemplo 1: F = 2*3+2-1 é F=2*3+2-1=6+2-1=8-1=7 1. potências, raízes(radiciação); 2. resto de divisão inteira %, multiplicação e divisão; 3.soma, subtração; 4. Obs.: A ordem é alterada quando a operação está envolvida em 'parênteses'. Operações – Ordem de Precedência Da alteração do exemplo poderiamos fazer G = 2*(3+2-1) (aplicando propriedade da distributividade) temos G = 2*3+2*2-2*1=2*3 + 2*2 – 2*1 = 6+4-2=10-2=8 ou G = 2*(3+2-1)=2*(5-1)=2*4=8 Exemplo 2: (Cuidado!) 3*2**2 != (3*2)**2 Lado esquerdo é diferente do lado direito. Lado esquerdo temos resultado 12 e no direito 36. Da alteração do exemplo poderiamos fazer G = 2*(3+2-1) (aplicando propriedade da distributividade) temos G = 2*3+2*2-2*1=2*3 + 2*2 – 2*1 = 6+4-2=10-2=8 ou G = 2*(3+2-1)=2*(5-1)=2*4=8 Exemplo 2: (Cuidado!) 3*2**2 != (3*2)**2 Lado esquerdo é diferente do lado direito. Lado esquerdo temos resultado 12 e no direito 36. Variáveis ● Definição: pode-se pensar em uma variavel como um 'campo' (uma gaveta em um armário de arquivos) que conterá um determinado valor de um respectivo tipo na memória do computador. ● Exemplos: – Real = 1.2 – String = “Ola Mundo” – num_complexo = complex(1.0, 2.0) # 1.0 + 2.0*i – Lista = ['1', 'Oi'] – Dicionário = {'chave_1': 'valor_1, 'chave_2': 'valor_2} – Tupla = (1,2,3,4) #(ou tupla = ('a', 1, 'b') mesmo para lista e dicionários) – Boolean/Lógicos: L = True #L é recebe valor True/Verdadeiro ● Definição: pode-se pensar em uma variavel como um 'campo' (uma gaveta em um armário de arquivos) que conterá um determinado valor de um respectivo tipo na memória do computador. ● Exemplos: – Real = 1.2 – String = “Ola Mundo” – num_complexo = complex(1.0, 2.0) # 1.0 + 2.0*i – Lista = ['1', 'Oi'] – Dicionário = {'chave_1': 'valor_1, 'chave_2': 'valor_2} – Tupla = (1,2,3,4) #(ou tupla = ('a', 1, 'b') mesmo para lista e dicionários) – Boolean/Lógicos: L = True #L é recebe valor True/Verdadeiro Variáveis ● OBS.: A variavel do tipo tupla (tuple) não pode ter seu valor alterado por uma atribuição como t = (1,2,3) t[1] = 2 #retornara erro 'TypeError: 'tuple' object does not support item assignment' o objeto tipo tupla não suporta alteração. Nota: t[1] → retorna o segundo elemento 2, já que para t[i] temos i=0,1,2,...,n-1,onde n é o comprimento ou número de elementos do vetor/lista, ou seja, o índice do vetor/lista inicia em zero e vai até n-1. ● OBS.: A variavel do tipo tupla (tuple) não pode ter seu valor alterado por uma atribuição como t = (1,2,3) t[1] = 2 #retornara erro 'TypeError: 'tuple' object does not support item assignment' o objeto tipo tupla não suporta alteração. Nota: t[1] → retorna o segundo elemento 2, já que para t[i] temos i=0,1,2,...,n-1,onde n é o comprimento ou número de elementos do vetor/lista, ou seja, o índice do vetor/lista inicia em zero e vai até n-1. Estruturas de Controle If...elif...Else Formato: If (condição): {comandos} elif: {comandos} ... else: {comandos} OBS.: Comandos elif e else não são obrigatórios mas podem ser necessários. A instrução elif equivale a else if (senão se, respectivamente).Obs.: condição é uma expressão lógica envolvendo operadores relacionais como: == (igual), != (diferente), < (menor), > (maior), <= (menor igual à), >= (maior igual à). Formato: If (condição): {comandos} elif: {comandos} ... else: {comandos} OBS.: Comandos elif e else não são obrigatórios mas podem ser necessários. A instrução elif equivale a else if (senão se, respectivamente). Obs.: condição é uma expressão lógica envolvendo operadores relacionais como: == (igual), != (diferente), < (menor), > (maior), <= (menor igual à), >= (maior igual à). Estruturas de Controle If...elif...Else Exemplos: 1. i=0 if i == 0: print 'O valor de i é igual a 0. Condição (i==0) verdadeira' 2. nome = 'Maria' if nome != 'Maria': print 'Nome incorreto' else: print 'Ok! Você digitou nome correto.' Obs.: a condição em (1) é i==0, ou seja, i ser igual à zero. Portanto 'se i==0 é verdade' a linha seguinte será executada. O mesmo pode ser visto em (2) com o operador relacional != diferente de. Exemplos: 1. i=0 if i == 0: print 'O valor de i é igual a 0. Condição (i==0) verdadeira' 2. nome = 'Maria' if nome != 'Maria': print 'Nome incorreto' else: print 'Ok! Você digitou nome correto.' Obs.: a condição em (1) é i==0, ou seja, i ser igual à zero. Portanto 'se i==0 é verdade' a linha seguinte será executada. O mesmo pode ser visto em (2) com o operador relacional != diferente de. Estruturas de Controle If...elif...Else 3. i, j = 2, 5 if i > j: print ' i é maior que j' elif i == j: print 'i é igual à j' else: print 'i é menor que j' 3. i, j = 2, 5 if i > j: print ' i é maior que j' elif i == j: print 'i é igual à j' else: print 'i é menor que j' Estrutura de Repetição while... Formato: 1 while (condição): 2 {comandos} Obs.: Comandos na linha 2 serão executados enquanto 'condição' for verdadeira (True/1). Formato: 1 while (condição): 2 {comandos} Obs.: Comandos na linha 2 serão executados enquanto 'condição' for verdadeira (True/1). Estrutura de Repetição while... Exemplo: i = 0 1. while i <= 10: 2. print 'i = ', i 3. i += 1 O trecho acima imprime na tela números de 0 até 10. O trecho (2) é executado enquanto a condição i<=10 for verdadeira. Exemplo: i = 0 1. while i <= 10: 2. print 'i = ', i 3. i += 1 O trecho acima imprime na tela números de 0 até 10. O trecho (2) é executado enquanto a condição i<=10 for verdadeira. Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 i é iniciado com valor zero Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 executando instrução 'while' (enquanto) verificando se i < 10 como i vale 0 prossegue para (3). Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 imprime na tela -> i = 0 Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 incrementa com 1 a variável i, ou seja, soma 1 a i. Também poderia ser escrito como i += 1 Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 Entra novamente no 'loop' criado pela instrução 'while' e testa se i <= 10, como temos i = 1 prossegue para a linha(3) Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 agora imprime -> i = 1 Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 incrementa novamente a variável i Execução 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 E assim sucessivamente até i ser maior que10... Quando isso ocorrer teremos 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i + 1 E assim sucessivamente até i ser maior que10... Quando isso ocorrer teremos Execução: Fim do Loop while 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i +1 1. i = 0 2. while i <= 10: 3. print 'i = ', i 4. i = i +1 i agora vale 11 e ao executar (2) o teste da condição i <= 10 retornará falso e o 'loop' while é fechado. Processo semelhante ocorrerá quando da execução da instrução for i in lista: {comandos} Comandos Break e Continue ● Comando Break: força a saída do loop seguindo para instrução seguinte fora do loop (repetição): Exemplo: 1 i = 0 2 while i <= 10: 3 print 'i = ', i 4 if i == 5: 5 break 6 i +=1 7 print 'Fim' A variável i inicia com 0 entra-se no loop na linha2 e emseguida imprime-se o valor de i na tela. Na 4 testa-se se i é igual a 5 se verdade a linha 7 é executada senão incrementa-se i em 6 volta pra linha 2. ● Comando Break: força a saída do loop seguindo para instrução seguinte fora do loop (repetição): Exemplo: 1 i = 0 2 while i <= 10: 3 print 'i = ', i 4 if i == 5: 5 break 6 i +=1 7 print 'Fim' A variável i inicia com 0 entra-se no loop na linha2 e emseguida imprime-se o valor de i na tela. Na 4 testa-se se i é igual a 5 se verdade a linha 7 é executada senão incrementa-se i em 6 volta pra linha 2. Comandos Break e Continue ● Continue: salta para o loop sem executar as instruções posteriores a ele; Exemplo: 1 i = 0 2 while i < 5: 3 i += 1 4 if i == 3: 5 continue 6 print i Exibe os números de 1 ate 5. Note o incremento na linha 3 de i e e que o valor 3 não será exibido na contagem, já continue forçará um salto da linha 5 para a linha 2. Obs.: O mesmo poderia ser feito com a instrução for como veremos adiante. ● Continue: salta para o loop sem executar as instruções posteriores a ele; Exemplo: 1 i = 0 2 while i < 5: 3 i += 1 4 if i == 3: 5 continue 6 print i Exibe os números de 1 ate 5. Note o incremento na linha 3 de i e e que o valor 3 não será exibido na contagem, já continue forçará um salto da linha 5 para a linha 2. Obs.: O mesmo poderia ser feito com a instrução for como veremos adiante. Estrutura de Repetição for Formato Básico: 1. for variável in lista: 2. {comandos} Exemplo: 1. for i in range(5): 2. print i Saída 0 1 2 3 4 Obs.: a variável 'i' assume cada valor contido na lista. Formato Básico: 1. for variável in lista: 2. {comandos} Exemplo: 1. for i in range(5): 2. print i Saída 0 1 2 3 4 Obs.: a variável 'i' assume cada valor contido na lista. Funções/Procedimentos/Métodos Acima vimos o uso de uma função a 'range' a qual recebe 1 ou mais parâmetros como entrada e retorna uma lista com valores no intervalo (0, n-1). Basicamente, de forma simples, o objetivo de uma função é simplificar a codificação isolando um determinado tipo de tarefa que deve, e é útil em casos gerais, ser usada com grande frequência tornando assim o código mais organizado e reutilizável. Uma função basicamente têm a forma def <nome da função>(parametro_entrada_da_função) “““Documentação””” {comandos} {<return> valor} Podendo ser comparada à uma função em matemática y= f(x) por exemplo. Acima vimos o uso de uma função a 'range' a qual recebe 1 ou mais parâmetros como entrada e retorna uma lista com valores no intervalo (0, n-1). Basicamente, de forma simples, o objetivo de uma função é simplificar a codificação isolando um determinado tipo de tarefa que deve, e é útil em casos gerais, ser usada com grande frequência tornando assim o código mais organizado e reutilizável. Uma função basicamente têm a forma def <nome da função>(parametro_entrada_da_função) “““Documentação””” {comandos} {<return> valor} Podendo ser comparada à uma função em matemática y= f(x) por exemplo. Funções/Procedimentos/Métodos Funções em Python: def soma(a,b): return (a+b) def show(msg): print msg Uso: >>> P = soma(2,3) >>> print P >>> 5 O valor P será 5 que é o valor retornado pela funçãosoma. Obs.: Outro caminho para criar funções é com o uso da diretiva lambda. >>>f = lamda x,y: x+y #uso f(2,3), x e y parametros e entrada Funções em Python: def soma(a,b): return (a+b) def show(msg): print msg Uso: >>> P = soma(2,3) >>> print P >>> 5 O valor P será 5 que é o valor retornado pela função soma. Obs.: Outro caminho para criar funções é com o uso da diretiva lambda. >>>f = lamda x,y: x+y #uso f(2,3), x e y parametros e entrada Funções/Procedimento/Métodos import urllib #importar o módulo urllib Funções/Procedimentos/Métodos Testando #obtêm nome do site url_name = raw_input("Digite url(endereço do site): ") html = urllib.urlopen(url_name) #abre site page_content = html.read() # lê conteúdo do site print extract_link(url_name) #imprime primeiro url encontrado Testando #obtêm nome do site url_name = raw_input("Digite url(endereço do site): ") html = urllib.urlopen(url_name) #abre site page_content = html.read() # lê conteúdo do site print extract_link(url_name) #imprime primeiro url encontrado Arquivos ● A função open(): retorna a referência para um arquivo do qual serão lidos os dados. Sintaxe: open('nome_do_arquivo', modo) O modo pode ser (como string/letra) 'w' (escrita/write), 'r'(leitura/read) e a(append). 'w' – abre arquivo em modo escrita para adicionar conteúdo; 'r' – abre arquivo no modo para leitura; 'a' – abre arquivo para escrita com novo conteúdo sendo adicionado ao final do mesmo. ● A função open(): retorna a referência para um arquivo do qual serão lidos os dados. Sintaxe: open('nome_do_arquivo', modo) O modo pode ser (como string/letra) 'w' (escrita/write), 'r'(leitura/read) e a(append). 'w' – abre arquivo em modo escrita para adicionar conteúdo; 'r' – abre arquivo no modo para leitura; 'a' – abre arquivo para escrita com novo conteúdo sendo adicionado ao final do mesmo. Arquivos ● Lendo e imprimindo conteúdo: arq = open('teste.txt') #open('teste.txt','r') modo 'leitura' #read() lê conteúdo do arquivo e retorna-o como string. #String sequência de caracteres conteudo_arq = arq.read() print conteudo_arq #exibe conteudo do arquivo teste.txt ● Lendo e imprimindo conteúdo: arq = open('teste.txt') #open('teste.txt','r') modo 'leitura' #read() lê conteúdo do arquivo e retorna-o como string. #String sequência de caracteres conteudo_arq = arq.read() print conteudo_arq #exibe conteudo do arquivo teste.txt Arquivos Outras Funções: readline() - lê linha de um arquivo e incrementa posição no arquivo; readlines() - lê conteúdo e retorna lista contendo em cada elemento da lista a linha linha lida do arquivo; write(dados) - escreve dados em arquivo aberto (modo a e/ou w); close() - fecha o arquivo aberto, salvando alterações se necessário. Obs.: É necessário fechar todo arquivo após terminar seu uso, quando da execução de um programa, pois este consome recursos do computador que poderiam ser alocados para outras tarefas. Outras Funções: readline() - lê linha de um arquivo e incrementa posição no arquivo; readlines() - lê conteúdo e retorna lista contendo em cada elemento da lista a linha linha lida do arquivo; write(dados) - escreve dados em arquivo aberto (modo a e/ou w); close() - fecha o arquivo aberto, salvando alterações se necessário. Obs.: É necessário fechar todo arquivo após terminar seu uso, quando da execução de um programa, pois este consome recursos do computador que poderiam ser alocados para outras tarefas. Programação Orientada a Objetos Definição: é um modelo de programação (paradigma de programação) que lida com objetos que são criados e modelados por abstrações na forma de classes que servem a sua criação e definição de suas operações (método) e atributos. Exemplo: Uma classe que modele um estudante de uma dada escola. Veríamos que seus atributos seriam suas notas, número de faltas, estado aprovado (sim ou não V/F) etc; já as operações ou métodos seriam o cálculo de sua média por unidade, cálculo da média final, etc. Definição: é um modelo de programação (paradigma de programação) que lida com objetos que são criados e modelados por abstrações na forma de classes que servem a sua criação e definição de suas operações (método) e atributos. Exemplo: Uma classe que modele um estudante de uma dada escola. Veríamos que seus atributos seriam suas notas, número de faltas, estado aprovado (sim ou não V/F) etc; já as operações ou métodos seriam o cálculo de sua média por unidade, cálculo da média final, etc. Programação Orientada a Objetos Vamos agora a um simples exemplo em PythonVamos agora a um simples exemplo em Python Programação Orientada a Objetos >>> class MinhaClasse(object): ... def __init__(self, parametro1, parametro2): ... self.par1 = parametro1 ... self.par2 = parametro2 ... def metodo_Soma_Parametros(self): ... return self.par1 + self.par2 ... >>> objeto = MinhaClasse('Ola', 'Mundo') >>> objeto.metodo_Soma_Parametros() 'OlaMundo' >>> objeto = MinhaClasse(1, 2) >>> objeto.metodo_Soma_Parametros() 3 >>> objeto = MinhaClasse(complex(1,2),complex(1,3)) >>> objeto.metodo_Soma_Parametros() (2+5j) >>> class MinhaClasse(object): ... def __init__(self, parametro1, parametro2): ... self.par1 = parametro1 ... self.par2 = parametro2 ... def metodo_Soma_Parametros(self): ... return self.par1 + self.par2 ... >>> objeto = MinhaClasse('Ola', 'Mundo') >>> objeto.metodo_Soma_Parametros() 'OlaMundo' >>> objeto = MinhaClasse(1, 2) >>> objeto.metodo_Soma_Parametros() 3 >>> objeto = MinhaClasse(complex(1,2),complex(1,3)) >>> objeto.metodo_Soma_Parametros() (2+5j) Programação Orientada a Objetos >>> class Pessoa(object): ... def __init__(self,nome,data_nasc,sexo, idade=0): ... self.nome = nome ... self.data_nasc = data_nasc ... self.sexo = sexo ... self.idade = idade ... def envelhecer(self): ... self.idade += 1 ... >>> class Homem(Pessoa): ... def say(self): ... print 'Olá meu nome é ', self.nome ... >>> Pedro = Homem('Pedro','01/12/1987','M') >>> Pedro.say() Olá meu nome é Pedro >>> class Pessoa(object): ... def __init__(self,nome,data_nasc,sexo, idade=0): ... self.nome = nome ... self.data_nasc = data_nasc ... self.sexo = sexo ... self.idade = idade ... def envelhecer(self): ... self.idade += 1 ... >>> class Homem(Pessoa): ... def say(self): ... print 'Olá meu nome é ', self.nome ... >>> Pedro = Homem('Pedro','01/12/1987','M') >>> Pedro.say() Olá meu nome é Pedro Programação Orientada a Objetos Nó código anterior percebemos uma 'iteração' entre as classes 'Homem' e 'Pessoa' a qual permitiu a classe homem acessar atributos e métodos definidos em pessoa. Isso chama-se herança ou seja uma dada classe herda características de outra. Obs.: é possível haver herança múltipla onde uma dada classe herda de mais de uma classe, ou seja, class Minhaclasse(Classe1,Classe2,...) por exemplo. O suporte a herança múltipla bem como seu uso e limitações dependem da linguagem de programação em uso. Aqui estamos a usar a linguagem interpretada Python. Nó código anterior percebemos uma 'iteração' entre as classes 'Homem' e 'Pessoa' a qual permitiu a classe homem acessar atributos e métodos definidos em pessoa. Isso chama-se herança ou seja uma dada classe herda características de outra. Obs.: é possível haver herança múltipla onde uma dada classe herda de mais de uma classe, ou seja, class Minhaclasse(Classe1,Classe2,...) por exemplo. O suporte a herança múltipla bem como seu uso e limitações dependem da linguagem de programação em uso. Aqui estamos a usar a linguagem interpretada Python. Interpretada x Compilada Uma linguagem é dita ser interpretada quando seu código é executado por outro programa, o 'interpretador', que lê as instruções do código executando-as passo à passo;já uma linguagem compilada nós temos um processo o qual é chamado de compilação no qual um dado código escrito em uma determinada liguagem facilmente legível é convertida para a linguagem de máquina afim de ser executada na mesma. Uma linguagem é dita ser interpretada quando seu código é executado por outro programa, o 'interpretador', que lê as instruções do código executando-as passo à passo; já uma linguagem compilada nós temos um processo o qual é chamado de compilação no qual um dado código escrito em uma determinada liguagem facilmente legível é convertida para a linguagem de máquina afim de ser executada na mesma. Momento H4ck3r: Praticando Codificando Baseado na classe definidas anteriormente crie a classe 'Mulher' que herdará as características de Pessoa assim como foi feito na classe 'Homem'. (Quais atributos e outros métodos você definiria?) Baseado na classe definidas anteriormente crie a classe 'Mulher' que herdará as características de Pessoa assim como foi feito na classe 'Homem'. (Quais atributos e outros métodos você definiria?) Momento H4ck3r: Praticando Codificando Implementar um pequeno game de RPG em modo texto.Implementar um pequeno game de RPG em modo texto. Momento H4ck3r: Praticando Codificando Exemplo: Defina uma classe chamada 'Entidade', ela representará qualquer elemento que componha o game e de seus principais atributos seria sua posição, e HP (se a entidade é um personagem do jogo). Depois nesta classe defina métodos que alterem a posição (coordenada x e y) da entidade. Posteriormente crie uma classe 'Personagem' que deve herdar características da classe Entidade. Exemplo: Defina uma classe chamada 'Entidade', ela representará qualquer elemento que componha o game e de seus principais atributos seria sua posição, e HP (se a entidade é um personagem do jogo). Depois nesta classe defina métodos que alterem a posição (coordenada x e y) da entidade. Posteriormente crie uma classe 'Personagem' que deve herdar características da classe Entidade. Momento H4ck3r: Praticando Codificando Escopo geral simples class Entidade(object): def __init__(self, x,y): self.x, self.y = x, y #{outro métodos aqui} class Personagem(Entidade): def __init__(self,nome,x=0,y=0,hp=100,power_attack=10): Entidade.__init__(self,x,y) self.nome = nome self.hp, self.power_attack = hp, power_attack #{Metodos aqui.Por exemplo redução de hp quando atacado.} def main(): #{instruções} if __name__ == '__main__': main() Escopo geral simples class Entidade(object): def __init__(self, x,y): self.x, self.y = x, y #{outro métodos aqui} class Personagem(Entidade): def __init__(self,nome,x=0,y=0,hp=100,power_attack=10): Entidade.__init__(self,x,y) self.nome = nome self.hp, self.power_attack = hp, power_attack #{Metodos aqui.Por exemplo redução de hp quando atacado.} def main(): #{instruções} if __name__ == '__main__': main() FIM Neste slide foi apresentada as noções básicas de lógica de programação assim como uma breve introdução a linguagem python. Neste slide foi apresentada as noções básicas de lógica de programação assim como uma breve introdução a linguagem python. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52
Compartilhar