Visualização do documento 16 Implementações Em Python.doc (92 KB) Baixar 1 Hello World 1.1 Testando conteúdo da String 1.1.1 Número Para testar se uma string contém apenas números usa-se: >>> print "Hello World!".isalnum() False 1.1.2 Alfanumérico Se é alfanumérica: >>> print "Hello World!".isalpha() False 1.1.3 Dígito Dígito: >>> print "Hello World!".isdigit() False 1.1.4 Espaço Se contém apenas espaços, um ou mais. >>> print "Hello World!".isspace() False 1.1.5 Minúsculas Se todos os caracteres estão em minúsculo: >>> print "Hello World!".islower() False 1.1.6 Titulo Se a primeira letra de cada palavra está em maiuscula: >>> print "Hello World!".istitle() True 1.1.7 Começa com Se a string começa com determinado prefixo. >>> print "Hello World!".startswith( prefix ) False 1.1.8 Termina com Se a string terminar com determinado sufixo: >>> print "Hello World!".endswith( sufix ) False Primos #!/usr/bin/python # # Modulo: primo.py primo=True num=raw_input('Escreva um numero: ') # Converte para inteiro. num=int(num) if num == 1: primo=False for V in range(2, num-1): if ((num % V)==0): primo = False if primo: print "O numero %d eh primo." % num else: print "O numero %d nao eh primo." % num Maior elemento ... ... >>> def maiorElemento(a,b): ... if (a > b): print "%d maior que %d" % (a,b) ... elif (b > a): print "%d maior que %d" % (b,a) ... else: ... print "iguais" ... >>> maiorElemento(1,2) 2 maior que 1 >>> maiorElemento(5,2) 5 maior que 2 >>> maiorElemento(7,7) iguais Sequência de Fibonacci A sequência de Fibonacci começa com dois números pré definidos, sendo que cada termo posterior é a soma dos dois anteriores. >>> def fib(n): # Imprime a sequência de Fibonacci até n ... """Imprime a sequência de Fibonacci até n.""" ... a, b = 0, 1 ... while b < n: ... print b, ... a, b = b, a+b ... >>> # Chama a função: ... fib(100) 1 1 2 3 5 8 13 21 34 55 89 Ano Bissexto Todos os anos que sejam múltiplos de 4 mas que não sejam múltiplos de 100, com exceção daqueles que são múltiplos de 400, são bissextos. Em outras palavras, um ano é bissexto se ele for divisível por 400 ou se ele for divisível por 4 mas não por 100. ... >>> def isBissexto(ano): ... if ( (ano % 400 == 0) or ((ano % 4 == 0) and not (ano % 100 == 0)) ): ... print 'Ano bissexto' ... else: ... print 'Ano nao e bissexto' ... >>> isBissexto(2004) Ano bissexto >>> isBissexto(2005) Ano nao e bissexto Fatorial Definimos o fatorial de um numero n (indicado como n!) como sendo: n! = n * (n - 1) * (n - 2) * .... * 4 * 3 * 2 * 1 ... >>> def fatorial(n): ... if (n == 0): ... return 1 ... else: return n * fatorial(n-1) ... >>> fatorial (5) 120 >>> fatorial(10) 3628800 Contagem regressiva Este é um algoritmo simples que apartir de um número inicial, e um intervalo de tempo, faz a contagem regressiva até 0. def contagemRegressiva(): import time import sys n = int(raw_input ("Qual número você gostaria de começar para a contagem regressiva? ")) delay = float(raw_input ("Qual intervalo de tempo entre a contagem (segundos)? ")) raw_input ("Iniciando contagem regressiva...") while n != 0: print n n = n-1 time.sleep(delay) else: print "Fim da contagem regressiva!" sys.exit contagemRegressiva() Árvore Binária Conceituação: Uma árvore binária é um conjunto finito de elementos que está vazio ou é particionado em três subconjuntos disjuntos. O primeiro subconjunto contém um único elemento chamado raiz da árvore. Os outros dois subconjuntos são em si mesmos árvores binárias, chamadas subárvores esquerda e direita da árvore original. Uma subárvore esquerda ou direita pode estar vazia. Cada elemento de uma árvore binária é chamado nó da árvore. ", Pg: 303, Estruturas de dados usando C, Makron Books. Para implementar o algoritimo de árvore binária em python podemos utilizar diversas estruturas de dados, lista, tupla, dicionários e pode-se até criar um tipo árvore binária, com métodos para representação como string, iteração, comparação de árvores entre outros, além dos métodos inerentes a árvores. No caso do nosso curso vamos criar uma classe árvore. Implementação: #!/usr/bin/env python # -*- coding: ISO-8859-1 -*class Arvore: """ Classe de tratamento de arvore binaria. O algoritimo de arvore de pesquisa binária foi usado para este exemplo. "Uma árvore binária é um conjunto finito de elementos que está vazio ou é particionado em três subconjuntos disjuntos. O primeiro subconjunto contém um único elemento chamado raiz da árvore. Os outros dois subconjuntos são em si mesmos árvores binárias, chamadas subárvores esquerda e direita da árvore original. Uma subárvore esquerda ou direita pode estar vazia. Cada elemento de uma árvore binária é chamado nó da árvore.", Pg: 303, Estruturas de dados usando C, Makron Books. Os principais conceitos que devem ficar claros para a compreensão do algoritimo são: Nós, cada elemento da árvore é um nó, inclusive o primeiro, chamado de raiz. Raiz é o elemento inicial da árvore, como todo nó, tem um valor, um filho esquerdo e um filho direito, os filhos também são nós. Filho é um nó qualquer que não o raiz, o nó raiz é o único que não tem pai. Os nós que não tem filhos são chamados de folha da árvore. Nós que tem o mesmo pai são irmãos. Um nó (n1) é ancestral de outro(n2) se n1 é pai de n2 ou se n2 estiver em sua árvore esquerda ou direita. Da mesma forma n2 seria descendente de n1. O nó raiz é ancestral de todos e todos são descendentes da raiz. A árvore tem altura que é mais fácil de explicar com um exemplo: Nível 0:-----> Nível 1:-----> Nível 2:-----> 4 2 1 3 5 7 15 A altura é 2, pois a definição da altura de árvore diz que é a distância entre a raiz e seu nó folha, a profundidade da árvore. O elemento 3 está no nível 2, assim como os elementos 1, 5, 15. Nossa classe herda da classe "list" pois "list" é um dos tipos que representam conjuntos, o python também tem tuplas(tuple) e dicionários(dict), nossa classe baseia-se em lista. Referencia: :version: :author: Ramiro Batista da Luz """ def __init__(self,valor, arv_esq=None, arv_dir=None): """ Metodo inicial. Se o parâmetro lista não for fornecido será utilizado o padrão para o parâmetro, uma lista vazia. @since @author """ self.valor = valor self.arv_esq = arv_esq self.arv_dir = arv_dir def __repr__(self,nivel=0,indent=" "): """ show mostra a arvore em uma representação textual como no exemplo: 02 34 23 12 04 03 35 45 """ # Inicializa a raiz da árvore (ou sub-árvoren no caso das chamadas a # seguir). s = [nivel*indent + '%.2d' % self.valor] # Se a árvore esquerda não estiver vazia, adiciona na lista a # representação da árvore esquerda. if self.arv_esq: s.append(self.arv_esq.__repr__(nivel+1, indent)) # Se a árvore direita não estiver vazia, adiciona na lista a # representação da árvore direita. if self.arv_dir: s.append(self.arv_dir.__repr__(nivel+1, indent)) # Junta os elementos da lista com a string \n(final de linha). # Retorna uma string. s = "\n".join(s) return s def imprime(self): """ Imprime a árvore. """ print self.__repr__() # Um "generator" recursivo que mostra os valores da árvore em "in-order". def inordem(arv): if arv: for x in inordem(arv.arv_esq): yield x yield arv.valor for x in inordem(arv.arv_dir): yield x def arvore(lista): """ Insere no na arvore fazendo um caminho recursivo. @param : valor, é o conteúdo do nó e arv é a árvore onde o valor deve ser inserido. @return : Retorna um novo nó, que é uma lista. O elemento 0 é o valor do nó. O elemento 1 é a árvore esquerda. O elemento 2 é a árvore direita. @since @author """ # Se a lista contiver pelo menos um elemento. if lista: # Se a lista contiver exatamente um elemento retorna um nó folha. if len(lista)==1: return Arvore(lista[0]) else: # Senão, retorna uma árvore com o valor da raiz e a chamada recursiva # da função que transforma uma lista em árvore, uma vez para com os # elementos menores que a raiz e uma com os elementos maiores que a # raiz. raiz=lista[0] return Arvore(raiz, arvore(filter(lambda i,r=raiz: i<r, lista[1:])), arvore(filter(lambda i,r=raiz: i>=r, lista[1:]))) else: # Senão, a lista está vazia então retorna o valor Nulo. return None def teste(): colunas = 40 lista = [2,34,23,12,35,45,4,3] #lista.sort() a_arv = arvore(lista) print "-"*colunas print "Altura %d" % altura(a_arv) if busca(2,a_arv): print "-"*colunas print "Valor encontrado %d" % 2 print a_arv.imprime() else: print "-"*colunas print "Valor não encontrado %d" % 2 print "[]" print "-"*colunas print a_arv for i in inordem(a_arv): print i # Calcula o nível de um nó numa Árvore. def nivel_no(arv,valor,nivel=0): """ Nivel de um nó na árvore. O parametro valor é o conteúdo do nó. O parametro nível é por padrão 0, o nó raiz. O parâmetro arv é usado para pesquisa. Usando o valor zero faz a pesquisa à partir da raiz da árvore. @param : valor, arv, nivel @return : Nível do nó. @since @author """ n=nivel+1 # Se a árvore existir e não for vazia vai calculando, senão retorna -1 pois # chegou ao fim da árvore(folha). if arv: # Se o conteúdo do nó raiz da árvore onde estamos procurando é igual # a chave, então encontramos o valor desejado. Agora calculamos a # altura da árvore onde esse nó é raiz e a árvore. if arv.valor == valor: return n-1 else: # Se o conteúdo do nó raiz da árvore é maior que a chave, então # continuamos a pesquisa pela sub-árvore direita. Senão devemos # pesquisar a sub-árvore esquerda. if arv.valor > valor: #Lado esquerdo return nivel_no(arv.arv_esq,valor,n) else: #Lado direito return nivel_no(arv.arv_dir,valor,n) else: return -1 def busca(chave,arv): """ Busca recursiva na arvore. O parametro chave é o valor que se procura, o parametro arv é a estrutura onde iremos procurar. @param : chave, arv @return : Verdadeiro ou falso. @since @author ""... Arquivo da conta: leandro_costa Outros arquivos desta pasta: 03 Aprendendo Python.pdf (20865 KB) 09 Aprenda Computação Com Python.pdf (1505 KB) 02 Python Para Desenvolvedores 1° ed.pdf (3386 KB) 05 Módulo A - Bem-Vindo A Python!.pdf (609 KB) 07 Módulo C - Tkinter.pdf (1122 KB) Outros arquivos desta conta: Books Doc Relatar se os regulamentos foram violados Página inicial Contacta-nos Ajuda Opções Termos e condições Política de privacidade Reportar abuso Copyright © 2012 Minhateca.com.br