• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

PYPT

Programa Escrito Em Python Que Ensina Python Em Forma De Tutorial

28 mensagens neste tópico

Olá!

Este programa vai ser escrito em Python e vai ensinar Python em forma de tutorial.

Para este projecto precisamos:

1º Programadores para modo Procedural (Feito por PYPT)

2º Programadores para modo Orientado a Objectos (Feito por PYPT)

3º Tutorial básico de Python (Postado por PYPT e traduzido para português de portugal por Equipa de Traduções #2)

Aguardo respostas e críticas ao projecto s.f.f.

Editado: Programa Terminado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu posso partecipar mas como cobaia para testar, uma vez que estou a aprender agora talvez seja o ideal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi muito bem o projecto, descreve melhor o que queres fazer. Estou disposto a ajudar. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi muito bem o projecto, descreve melhor o que queres fazer. Estou disposto a ajudar. :P

O que planeio fazer é um programa escrito em Python que ensine ao usuário o básico de Python.  :cheesygrin:

Vai ser engraçado este programa  ;)

Python a ensinar Python  ;)

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este será o texto "Tutorial Básico de Python" que será colocado no programa acima descrito:

Introdução

Este tutorial foi criado com intuito de ensinar de maneira simples e objectiva esta  linguagem de programação chamada Python.

Vale salientar que este tutorial não é um tutorial aprofundado, e nem um manual de referência.

O que é Python?

Python é uma linguagem interpretada, bastante portável, orientada a objectos (incluindo herança múltipla).

Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e excepções.

Algo só visto em linguagens modernas como Java e as versões mais recentes de C++.

Python possui uma forma eficiente de acesso e reutilização de código com o uso de módulos, coleta de lixo automática, recursos avançados de manipulação de textos, listas e outras estruturas de dados (como dicionários, mais poderoso que o hash de Perl, pois os valores assumidos podem conter qualquer outro tipo de objecto como até mesmo outros dicionários).

Python possui ainda uma sintaxe simples, quase como um pseudo-código, característica marcante da sintaxe, próxima a linguagem matemática, do MATLAB.

História

Seu desenvolvimento teve início em 1990, pelo holandês Guido van Rossum, na CWI em Amesterdão e continuou na CNRI (fundação que sustenta a linguagem hoje) em Reston.

O conjunto de entidades e pessoas ligadas ao Python, sobretudo via Internet, formam a Python Software Activity (PSA).

Características

Em Python, diferentemente de C++ ou Java, as funções são tratadas como objectos, característica de linguagens de programação funcional como Lisp, muito utilizada em aplicações de inteligência artificial.

Outro ponto importante, oferecendo grande flexibilidade, é que, em Python, cada argumento de uma função pode assumir um valor default.

Módulos do Python

Os módulos, em Python, são colecções de funções.

Sua versão 1.5.2, de 1999, já incluía mais de 140 módulos, sem contar a extensão gráfica Tk que é importante na construção das ferramentas de utilização da linguagem.

E desconsiderando também outros módulos que podem ser encontrados a partir do site oficial (www.python.org), quase todos livres e gratuitos.

Como ilustração, podemos citar alguns módulos, como o cgi (para programação de páginas dinâmicas), ftplib (para montagem de scripts para interação com servidores FTP), gzip (para leitura e escrita de arquivos comprimidos), math (para utilização de funções matemáticas), re (para busca de texto com expressões regulares, característica da linguagem Perl), string (para operações com strings), time (para obtenção de hora actual e conversão de formatos de data), xmllib (para interpretação de arquivos em formato XML).

Outro módulo especial é o NumPy, utilizado na computação científica.

O que é NumPy

O NumPy é um conjunto de extensões para Python que oferecem várias funcionalidades para manipulação de conjuntos de objectos chamados arrays.

Estes, por sua vez, podem ter qualquer número de dimensões.

A vantagem destas extensões é que podemos processar grandes conjuntos de forma tão rápida quanto os resultados das linguagens não interpretadas de mais baixo nível.

A manipulação de grandes conjuntos numéricos, que é o caso do processamento de imagens, se fossem usadas as estruturas de dados padrão de Python, poderia ser muito lenta e ocupar muito espaço.

Entretanto, mesmo assim, comparando a execução de comandos de iteração (como o comando "for''), críticos em linguagens interpretadas, o Python se revela eficiente, sendo mais rápido, por exemplo, que o MATLAB.

Tanto Python como MATLAB podem facilmente agregar funções (boa extensividade).

O fato de o Python ter código aberto e ser gratuitamente distribuído, inclusive com o Numerical Python, foi um elemento decisivo na escolha desta linguagem, já que a intenção, entre outras, é beneficiar qualquer pessoa interessada em ferramentas de processamento de imagens.

Tipos de variáveis dinâmicos

Um dos conceitos básicos de programação é a variável, que é um associação entre um nome e um valor.

Ou seja, temos em:

 a = 1

A variável a recebendo o valor de 1.

Em Python, não precisamos declarar variáveis; para criar uma, basta atribuir um valor a ela.

No exemplo acima, criamos uma variável chamada a.

Quando dizemos que a linguagem possui tipos de variáveis dinâmicos, o tipo de valor ao qual um nome está associado pode variar durante a execução de um programa.

Não quer dizer que não exista tipo -- embora em Python não o declaremos, as variáveis assumem um tipo -- apenas que este tipo pode variar durante o curso da execução.

Esta propriedade por si só não é tão importante, embora realmente torne a escrita dos programas mais ágil: não precisamos decidir de imediato qual informação será armazenada, e podemos converter uma informação entre diversos tipos sem definir uma nova variável.

Associada à orientação a objectos, no entanto, possui reflexos interessantes, que discutiremos mais adiante.

Controle de bloco por indentação

Na maior parte das linguagens, há instruções ou símbolos específicos que delimitam blocos de código que compõem um laço ou expressão condicional. Por exemplo, em C:

    if ( a < 0 ) {
    /* bloco de código */
    }

ou em Fortran:

 

 if ( a .lt. 0 ) then
    /* bloco de código */
    endif

Nestes dois casos, os blocos são delimitados -- em C por chaves, e em Fortran pelo par then e endif.

Em Python, os blocos são demarcados apenas por indentação:

    if ( a < 0 ):
    # bloco de código
    # (ao fim da seção indentada
    # termina o bloco)
    # próxima instrução (após o if)

Esta propriedade faz com que a linguagem seja muito clara e fácil de ler -- a indentação está sempre correta -- mas também requer um controle formal sobre a indentação.

É importante convencionar se a indentação será feita por uma tabulação ou por um número determinado de espaços, já que todas as pessoas editando um programa Python devem usar o mesmo tipo.

Uma boa dica que evita confusão é usar 4 espaços para cada nível.

Tipos de variáveis de alto nível

Como dito antes, Python possui tipos, e alguns destes tipos merecem uma atenção especial por serem de alto nível, e portanto, bastante úteis.

Python oferece:

    * Strings: a cadeia de caracteres, uma forma de dado muito comum, possui um tipo específico.

    * Listas: uma lista é como um vector em outras linguagens: um conjunto de valores organizados (indexados) por um índice numérico e inteiro.

     

  a = [ "A", "B", "C" ]
          print a[2]

    * Tuplas: tuplas são listas imutáveis; em outras palavras, não podem ser alteradas uma vez criadas.

    * Dicionários: dicionários são como listas, mas que possuem índices cujo tipo não precisa ser inteiro.

      Dicionários são conhecidos em outras linguagens como arrays associativos ou hashes.

         

 autor = { "nome" : "Christian", "idade" : 26 }
            print autor["nome"]

    * Classes: classes são tipos especiais que servem para apoiar programação orientada a objectos, que será discutida a seguir.

Orientação a objectos

Neste tópico, faremos uma rápida explicação sobre como pode ser feita a orientação a objectos.

Orientação a objectos (OO) é uma forma de estruturar um programa: ao invés de definirmos variáveis e criarmos funções, passando parâmetros entre elas, definimos objectos que possuem dados e acções associadas.

O programa orientado a objectos é resultado da 'colaboração' entre estes objectos.

Para a orientação a objectos ser utilizada, a linguagem de programação deve dar suporte a objectos (e aos seus tipos, as classes).

Em Python, há suporte completo a OO; aliás, a linguagem vai além de simples suporte: todos os elementos básicos em Python são objectos.

Segue um exemplo de uma classe, e da criação de um objecto, que nos termos da linguagem Python é chamado de instância:

     

 class Produto:
       def vende(self):
       # Aqui entrariam as acções que realizam uma venda
       pass
        p = Produto()
        p.preco = 10.00
        p.descricao = "Halls extra forte"
        p.vende()
        print p

Por que utilizar Python?

Uma boa pergunta é -- já que existe uma quantidade de linguagens diferentes -- por que aprender Python é importante ou mesmo interessante?

Há diversas respostas; a mais importante, na minha opinião, é que Python é fácil.

É fácil em diversos sentidos:

    * Os conceitos fundamentais da linguagem são simples.

    * A sintaxe da linguagem é clara e fácil de aprender.

    * A linguagem possui um interpretador de comandos que permite aprender e testar rapidamente trechos de código.

    * Na grande maioria dos casos, um programa em Python será muito mais curto que seu correspondente escrito em outra linguagem.

      Isto também faz com que seja mais rápido de escrever.

    * Existe suporte para todo tipo de biblioteca e banco de dados possível.

      Ou seja, pode-se fazer em Python qualquer tipo de programa, mesmo que utilize gráficos, base SQL ou outra tecnologia externa.

    * É possível escrever extensões a Python em C e C++ se é necessário performance máxima, ou se é desejável fazer interface com alguma ferramenta que possua biblioteca apenas nestas linguagens.

    * Python permite que o programa funcione em múltiplas plataformas; em outras palavras, a sua aplicação feita para Linux pode rodar sem problemas em Windows e em outros sistemas.

    * Python é pouco punitivo: em geral, "tudo pode" e há poucas regras arbitrárias; isto acaba por tornar prazeroso o uso da linguagem.

1

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PyPT, o texto pode ser muito bom, mas era bom que não usasses expressões brasileiras... :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro, mas tens que admitir que a nossa gramática é diferente da deles... Por isso ao menos "traduz" o texto. Se quiseres eu faço-te isso :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Enquanto Portugal não tiver uma página oficial de Python e tutoriais bons escritos em Português de Portugal, eu continuarei a utilizar textos de Python escritos em brasileiro (Português).

A página oficial de Python do Brasil www.pythonbrasil.com.br (vejam vocês mesmos e me digam com sinceridade se Portugal é melhor que o Brasil em matéria Python).

Sou português, mas tenho que admitir a derrota de Portugal frente ao Brasil no que diz sempre respeito a tudo o que tem a ver com Python, esta é a pura verdade...

:thumbsup:

Tu vais desenvolver para uma comunidade chamada Portugal-a-Programar.org, tem lógica que se escreva em português de Portugal. :)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro, mas tens que admitir que a nossa gramática é diferente da deles... Por isso ao menos "traduz" o texto. Se quiseres eu faço-te isso :)

Podes-me traduzir s.f.f. todo o texto que escrevi sobre Python para português de portugal?

Desde já agradeço a tua ajuda.

:thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro, mas tens que admitir que a nossa gramática é diferente da deles... Por isso ao menos "traduz" o texto. Se quiseres eu faço-te isso :)

Podes-me traduzir s.f.f. todo o texto que escrevi sobre Python para português de portugal?

Desde já agradeço a tua ajuda.

:thumbsup:

A minha equipa pode agora tratar disso. Algum problema com isso anaryin/Knitter? :P
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Não posso deixar de dizer umas palavritas em relação a este tema, e então cá vai:

A comunidade brasileira é melhor pq são 150 milhões e nós só 10 milhões.

Os tutorias só podem existir se forem escritos por pessoas como tu (PYPT) ou como nós todos.

Continuação de bom trabalho pois esta comunidade tem dado muito a todos e tu (PYPT) foste uma grande mais valia para a comunidade.

Abraço

tejano96

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Traduzido:

Introdução

Este tutorial foi criado com o intuito de ensinar de maneira simples e objectiva esta linguagem de programação chamada Python.

Salientamos que este tutorial não é um tutorial aprofundado, nem um manual de referência.

O que é Python?

Python é uma linguagem interpretada, bastante portável, orientada a objectos (incluindo herança múltipla).

Apresenta semântica dinâmica, um moderno mecanismo de tratamento de erros e excepções, só visto em linguagens modernas como Java e as versões mais recentes de C++.

Python possui uma forma eficiente de acesso e reutilização de código com o uso de módulos, recolha de lixo automática, recursos avançados de manipulação de textos, listas e outras estruturas de dados (como dicionários, mais poderosos que o hash de Perl, pois os valores assumidos podem conter qualquer outro tipo de objecto e até mesmo outros dicionários).

Python possui ainda uma sintaxe simples, quase como um pseudo-código, próxima da linguagem matemática MATLAB.

História

O seu desenvolvimento teve início em 1990, pelo holandês Guido van Rossum, na CWI em Amesterdão e continuou na CNRI (fundação que sustenta a linguagem hoje) em Reston.

O conjunto de entidades e pessoas ligadas ao Python, sobretudo via Internet, formam a Python Software Activity (PSA).

Características

Em Python, ao contrário de C++ ou Java, as funções são tratadas como objectos, característica de linguagens de programação funcional como Lisp, muito utilizada em aplicações de inteligência artificial.

Outro ponto importante, oferecendo grande flexibilidade, é que, em Python, cada argumento de uma função pode assumir um valor default.

Módulos do Python

Os módulos, em Python, são colecções de funções.

A versão 1.5.2, de 1999 já incluía mais de 140 módulos, sem contar a extensão gráfica Tk que é importante na construção das ferramentas de utilização da linguagem, além de outros módulos que podem ser encontrados a partir do site oficial (www.python.org), quase todos livres e gratuitos.

Como ilustração, podemos citar alguns módulos, como o cgi (para programação de páginas dinâmicas), ftplib (para montagem de scripts para interacção com servidores FTP), gzip (para leitura e escrita de arquivos comprimidos), math (para utilização de funções matemáticas), re (para busca de texto com expressões regulares, característica da linguagem Perl), string (para operações com strings), time (para obtenção de hora actual e conversão de formatos de data), xmllib (para interpretação de arquivos em formato XML).

Outro módulo especial é o NumPy, utilizado na computação científica.

O que é NumPy

O NumPy é um conjunto de extensões para Python que oferecem várias funcionalidades para manipulação de conjuntos de objectos chamados arrays.

Estes, por sua vez, podem ter qualquer número de dimensões.

A vantagem destas extensões é que podemos processar grandes conjuntos de forma tão rápida quanto os resultados das linguagens não interpretadas de mais baixo nível.

A manipulação de grandes conjuntos numéricos, que é o caso do processamento de imagens, se fossem usadas as estruturas de dados padrão de Python, poderia ser muito lenta e ocupar muito espaço.

Entretanto, mesmo assim, comparando a execução de comandos de iteração (como o comando "for''), críticos em linguagens interpretadas, o Python revela-se eficiente, sendo mais rápido, por exemplo, que o MATLAB.

Tanto Python como MATLAB podem facilmente agregar funções (boa extensividade).

O facto de o Python ter código aberto e ser gratuitamente distribuído, inclusive com o Numerical Python, foi um elemento decisivo na escolha desta linguagem, já que a intenção, entre outras, é beneficiar qualquer pessoa interessada em ferramentas de processamento de imagens.

Tipos de variáveis dinâmicos

Um dos conceitos básicos de programação é a variável, que é um associação entre um nome e um valor.

Ou seja, temos em:

Código

a = 1

A variável a recebe o valor de 1.

Em Python, não precisamos de declarar variáveis; para criar uma, basta atribuir-lhe um valor.

No exemplo acima, criámos uma variável chamada a.

Quando dizemos que a linguagem possui tipos de variáveis dinâmicos, o tipo de valor ao qual um nome está associado pode variar durante a execução de um programa.

Não quer dizer que não exista tipo -- embora em Python não o declaremos, as variáveis assumem um tipo -- apenas que este tipo pode variar durante o curso da execução.

Esta propriedade por si só não é tão importante, embora realmente torne a escrita dos programas mais ágil: não precisamos decidir de imediato qual informação será armazenada, e podemos converter uma informação entre diversos tipos sem definir uma nova variável.

Associada à orientação a objectos, no entanto, possui reflexos interessantes, que discutiremos mais adiante.

Controlo de bloco por indentação

Na maior parte das linguagens, há instruções ou símbolos específicos que delimitam blocos de código que compõem um laço ou expressão condicional. Por exemplo, em C:

Código

    if ( a < 0 ) {

    /* bloco de código */

    }

ou em Fortran:

 

Código

if ( a .lt. 0 ) then

    /* bloco de código */

    endif

Nestes dois casos, os blocos são delimitados -- em C por chaves, e em Fortran pelo par then e endif.

Em Python, os blocos são marcados apenas por indentação:

Código

    if ( a < 0 ):

    # bloco de código

    # (ao fim da secção indentada

    # termina o bloco)

    # próxima instrução (após o if)

Esta propriedade faz com que a linguagem seja muito clara e fácil de ler -- a indentação está sempre correcta -- mas também requer um controlo formal sobre a indentação.

É importante convencionar se a indentação será feita por uma tabulação ou por um número determinado de espaços, já que todas as pessoas ao editar um programa Python devem usar o mesmo tipo.

Uma boa dica que evita confusão é usar 4 espaços para cada nível.

Tipos de variáveis de alto nível

Como dito antes, Python possui tipos, e alguns destes tipos merecem uma atenção especial por serem de alto nível, e portanto, bastante úteis.

Python oferece:

    * Strings: a cadeia de caracteres, uma forma de dado muito comum, possui um tipo específico.

    * Listas: uma lista é como um vector noutras linguagens: um conjunto de valores organizados (indexados) por um índice numérico e inteiro.

     

Código

  a = [ "A", "B", "C" ]

          print a[2]

    * Tuplas: tuplas são listas imutáveis; noutras palavras, não podem ser alteradas uma vez criadas.

    * Dicionários: dicionários são como listas, mas que possuem índices cujo tipo não precisa de ser inteiro.

      Dicionários são conhecidos em outras linguagens como arrays associativos ou hashes.

       

Código

autor = { "nome" : "Christian", "idade" : 26 }

            print autor["nome"]

    * Classes: classes são tipos especiais que servem para apoiar programação orientada a objectos, que será discutida a seguir.

Orientação a objectos

Neste tópico, faremos uma rápida explicação sobre como pode ser feita a orientação a objectos.

Orientação a objectos (OO) é uma forma de estruturar um programa: ao invés de definirmos variáveis e criarmos funções, passando parâmetros entre elas, definimos objectos que possuem dados e acções associadas.

O programa orientado a objectos é resultado da 'colaboração' entre estes objectos.

Para a orientação a objectos ser utilizada, a linguagem de programação deve dar suporte a objectos (e aos seus tipos, as classes).

Em Python, há suporte completo a OO; aliás, a linguagem vai além de simples suporte: todos os elementos básicos em Python são objectos.

Segue um exemplo de uma classe, e da criação de um objecto, que nos termos da linguagem Python é chamado de instância:

   

Código

class Produto:

      def vende(self):

      # Aqui entrariam as acções que realizam uma venda

      pass

        p = Produto()

        p.preco = 10.00

        p.descricao = "Halls extra forte"

        p.vende()

        print p

Por que utilizar Python?

Uma boa pergunta é -- já que existe uma quantidade de linguagens diferentes -- por que é que aprender Python é importante ou mesmo interessante?

Há diversas respostas; a mais importante, na minha opinião, é que Python é fácil.

É fácil em diversos sentidos:

    * Os conceitos fundamentais da linguagem são simples.

    * A sintaxe da linguagem é clara e fácil de aprender.

    * A linguagem possui um interpretador de comandos que permite aprender e testar rapidamente trechos de código.

    * Na grande maioria dos casos, um programa em Python será muito mais curto que seu correspondente escrito noutra linguagem.

      Isto também faz com que seja mais rápido de escrever.

    * Existe suporte para todo tipo de biblioteca e base de dados possível.

      Ou seja, pode-se fazer em Python qualquer tipo de programa, mesmo que utilize gráficos, base SQL ou outra tecnologia externa.

    * É possível escrever extensões para Python em C e C++ se é necessário performance máxima, ou se é desejável fazer interface com alguma ferramenta que possua biblioteca apenas nestas linguagens.

    * Python permite que o programa funcione em múltiplas plataformas; noutras palavras, a sua aplicação feita para Linux pode correr sem problemas em Windows e em outros sistemas.

    * Python é pouco punitivo: em geral, "tudo pode" e há poucas regras arbitrárias; isto acaba por tornar agradável o uso da linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelo tradução.  ;)

Agora já me posso concentrar em "produzir" o programa...

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso funciona? o_O Btw, isto é consola, não era suposto fazer-se um GUI?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho o teu código muito espaçado. ;)

Prefero vê-lo assim:

class Python_Ensina_Python:
    print 'Este tutorial basico serve para ensinar o mais essencial de Python'
    print '\n'*1
    print 'As unicas palavras que deverao ser inseridas uma de cada vez para visualizar este tutorial basico sao:'\
          ' introducao , o que e python? , historia , caracteristicas , modulos do python , o que e numpy? ,'\
          ' tipos de variaveis dinamicos , controlo de bloco por indentacao , tipos de variaveis de alto nivel ,'\
          ' orientacao a objectos , porque utilizar python?'          
    print '\n'*1

    while 1:
        try:
            busca_tutorial = raw_input ('Digite uma das palavras obrigatorias acima descritas: ')
            if busca_tutorial == 'introducao':
                print '\n'*1
                print 'Este tutorial foi criado com o intuito de ensinar de maneira simples e objectiva esta linguagem de programacao chamada Python.'\
                      ' Salientamos que este tutorial nao e um tutorial aprofundado, nem um manual de referencia.'
                break
      
        except:
                print '\n'*1
                print 'Leia primeiro antes de inserir alguma palavra/numero, so aceito as palavras obrigatórias citadas acima'


class Retorno_Ou_Fim (Python_Ensina_Python):
    while 1:
        try:
            print '\n'*1
            retorno_fim = raw_input ('Responda somente sim ou nao , Deseja voltar a consultar o tutorial?: ')

            if retorno_fim == 'sim':
               print '\n'*1
               busca_tutorial = raw_input ('Digite uma das palavras obrigatorias acima descritas: ')

            elif retorno_fim == 'nao':
                print '\n'*1
                print 'Obrigado por ler o tutorial!'      
                break
                   
        except:
                print '\n'*1
                print 'Digite somente sim ou nao'
                print '\n'*1


raw_input ('Digite Enter para sair')

Manias minhas. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não programo em Python, mas percebo o código e tenho algumas sugestões a fazer:

1º - Acho que não precisas de usar POO num programa deste tipo.

2º - Penso que um programa assim não faz muito sentido, se alguém quiser ler sobre python vai ao google e encontra o que quer num instante. Quando propuseste o projecto, pensei que seria algo deste tipo: http://tryruby.hobix.com/ .

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OK, quanto ao uso de POO, tens razão, não tinha reparado que era para fazer uma GUI.

2º Quem for Português e procurar no Google por tutoriais sobre Python terá que se contentar com os tutoriais existentes escritos em Brasileiro porque não vi até agora nenhum tutorial de Português na Internet e a única página oficial que existe em Português sobre Python é a Brasileira www.pythonbrasil.com.br.

Isso que me indicaste é um interpretador de Ruby para ser usado em Modo Online.

Pois, eu sei que é um interpretador de Ruby, mas acho que se a ideia é ensinar Python devia ser desta forma (claro que não online), em vez de textos e documentação. Um interpretador como aquele é uma forma interactiva de ensinar, e o utilizador fica logo mais interessado.

Recomendo a quem gosta de "opinar" sobre o programa que em vez de criticar me ajude a fazer o programa.  :wallbash:

Pediste "muitas críticas constructivas", eu só sugeri algumas mudanças, não te obriguei a nada :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Amigos...

Eu vou ser um daqueles que vai aproveitar esta oportunidade para aprender Python .

Como queria aprender uma linguagem orientada a objectos decid aprender Python .

Agr queria propor a moderação para que este tutorial funcione na perfeição.

Um topico reservado apenas para o codigo postado pelo nosso amigo PYPT e outros que tenham conhecimento para o fazer  e que fosse aberto um topico para tirarmos as nossas duvidas sobre esse mesmo codigo .

Obrigado .

PS. Apenas um sugestão .

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas Amigos...

Eu vou ser um daqueles que vai aproveitar esta oportunidade para aprender Python .

Como queria aprender uma linguagem orientada a objectos decid aprender Python .

Olá!

Bem-Vindo a Python!

Agr queria propor a moderação para que este tutorial funcione na perfeição.

O tutorial vai funcionar na perfeição, espero é ter a sorte de não ter bugs  :P

Um topico reservado apenas para o codigo postado pelo nosso amigo PYPT

http://www.portugal-a-programar.pt/index.php?showtopic=10556

e outros que tenham conhecimento para o fazer

http://www.portugal-a-programar.pt/forum/32-outros-sgbd/

e que fosse aberto um topico para tirarmos as nossas duvidas sobre esse mesmo codigo .

Se alguém tiver dúvidas sobre este código que as coloque neste tópico que eu responderei (sou o constructor e desenvolvedor do programa deste tópico)

;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá!

Finalmente terminei o programa escrito em Modo Consola.

class Python_Ensina_Python:
    print 'Este tutorial basico serve para ensinar o mais essencial de Python'
    print '\n'*1
    print 'As unicas (palavras obrigatorias) que deverao ser inseridas uma de cada vez para visualizar este tutorial basico sao:'\
          ' introducao , o que e python , historia , caracteristicas , modulos do python , o que e numpy ,'\
          ' tipos de variaveis dinamicas , controlo de bloco por indentacao , tipos de variaveis de alto nivel ,'\
          ' orientacao a objectos , porque utilizar python'          
    print '\n'*1

    while 1:
        try:
            busca_tutorial = raw_input ('Digite uma das palavras obrigatorias acima descritas: ')
            a = busca_tutorial
            if busca_tutorial == 'introducao':
                print '\n'*1
                print 'Este tutorial foi criado com o intuito de ensinar de maneira simples e objectiva esta linguagem de'\
                      ' programacao chamada Python.'\
                      ' Salientamos que este tutorial nao e um tutorial aprofundado, nem um manual de referencia.'

            elif busca_tutorial == 'o que e python':
                  print '\n'*1
                  print 'Python e uma linguagem interpretada, bastante portavel, orientada a objectos'\
                        ' (incluindo heranca multipla).'\
                        ' Apresenta semantica dinamica, um moderno mecanismo de tratamento de erros e excepcoes, so'\
                        ' visto  em linguagens modernas como Java e as versoes mais recentes de C++.'\
                        ' Python possui uma forma eficiente de acesso e reutilizacao de codigo com o uso de modulos,'\
                        ' recolha de lixo automatica, recursos avancados de manipulacao de textos, listas e outras'\
                        ' estruturas de dados (como dicionarios, mais poderosos que o hash de Perl, pois os valores'\
                        ' assumidos podem conter qualquer outro tipo de objecto e ate mesmo outros dicionarios).'\
                        ' Python possui ainda uma sintaxe simples, quase como um pseudo-codigo, proxima da linguagem'\
                        ' matematica MATLAB.'

            elif busca_tutorial == 'historia':
                  print '\n'*1
                  print 'O seu desenvolvimento teve inicio em 1990, pelo holandes Guido van Rossum, na CWI em Amesterdao'\
                        ' e continuou na CNRI (fundacao que sustenta a linguagem hoje) em Reston.'\
                        ' O conjunto de entidades e pessoas ligadas a Python, sobretudo via Internet, formam a Python'\
                        ' Software Activity (PSA).'

            elif busca_tutorial == 'caracteristicas':
                  print '\n'*1
                  print 'Em Python, ao contrario de C++ ou Java, as funcoes sao tratadas como objectos,'\
                        ' caracteristica de linguagens de programacao funcional como Lisp, muito utilizada'\
                        ' em aplicacoes de inteligencia artificial.'\
                        ' Outro ponto importante, oferecendo grande flexibilidade, e que, em Python, cada'\
                        ' argumento de uma funcao pode assumir um valor default.'

            elif busca_tutorial == 'modulos do python':
                  print '\n'*1
                  print 'Os modulos, em Python, são coleccoes de funcoes.'\
                        ' A versao 1.5.2, de 1999 já incluia mais de 140 modulos, sem contar a extensao grafica'\
                        ' Tk que é importante na construção das ferramentas de utilização da linguagem, além de'\
                        ' outros modulos que podem ser encontrados a partir do site oficial (www.python.org),'\
                        ' quase todos livres e gratuitos.'\
                        ' Como ilustracao, podemos citar alguns modulos, como o cgi (para programacao de paginas'\
                        ' dinamicas), ftplib (para montagem de scripts para interaccao com servidores FTP), gzip'\
                        ' (para leitura e escrita de arquivos comprimidos), math (para utilizacao de funcoes'\
                        ' matematicas), re (para busca de texto com expressoes regulares, caracteristica da'\
                        ' linguagem Perl), string (para operaçoes com strings), time (para obtencao de hora actual'\
                        ' e conversao de formatos de data), xmllib (para interpretacao de arquivos em formato XML).'\
                        ' Outro modulo especial é o NumPy, utilizado na computacao cientifica.'

            elif busca_tutorial == 'o que e numpy':
                  print '\n'*1
                  print 'O NumPy e um conjunto de extensoes para Python que oferecem varias funcionalidades para'\
                        ' manipulacao de conjuntos de objectos chamados arrays.'\
                        ' Estes, por sua vez, podem ter qualquer numero de dimensoes.'\
                        ' A vantagem destas extensoes e que podemos processar grandes conjuntos de forma tão rapida'\
                        ' quanto os resultados das linguagens nao interpretadas de mais baixo nível.'\
                        ' A manipulacao de grandes conjuntos numericos, que e o caso do processamento de imagens, se'\
                        ' fossem usadas as estruturas de dados padrao de Python, poderia ser muito lenta e ocupar'\
                        ' muito espaco.'\
                        ' Entretanto, mesmo assim, comparando a execucao de comandos de iteracao'\
                        ' (como o comando "for''), criticos em linguagens interpretadas, o Python revela-se'\
                        ' eficiente, sendo mais rapido, por exemplo, que o MATLAB.'\
                        ' Tanto Python como MATLAB podem facilmente agregar funcoes (boa extensividade).'\
                        ' O facto de Python ter codigo aberto e ser gratuitamente distribuido, inclusive com o'\
                        ' Numerical Python, foi um elemento decisivo na escolha desta linguagem, ja que a intencao,'\
                        ' entre outras, e beneficiar qualquer pessoa interessada em ferramentas de processamento'\
                        ' de imagens.'

            elif busca_tutorial == 'tipos de variaveis dinamicas':
                   print '\n'*1
                   print 'Um dos conceitos basicos de programacao é a variavel, que é um associacao entre um nome e'\
                         ' um valor.'\
                         ' Ou seja, temos em:'\
                         ' a = 1'\
                         ' A variavel a recebe o valor de 1.'\
                         ' Em Python, não precisamos de declarar variaveis; para criar uma, basta atribuir-lhe um valor.'\
                         ' No exemplo acima, criamos uma variável chamada a.'\
                         ' Quando dizemos que a linguagem possui tipos de variaveis dinamicos, o tipo de valor ao qual um'\
                         ' nome esta associado pode variar durante a execucao de um programa.'\
                         ' Não quer dizer que não exista tipo -- embora em Python não o declaremos, as variaveis assumem'\
                         ' um tipo -- apenas que este tipo pode variar durante o curso da execucao.'\
                         ' Esta propriedade por si so não e tao importante, embora realmente torne a escrita dos programas'\
                         ' mais agil: não precisamos decidir de imediato qual informacao sera armazenada, e podemos'\
                         ' converter uma informacao entre diversos tipos sem definir uma nova variável.'\
                         ' Associada à orientacao a objectos, no entanto, possui reflexos interessantes, que discutiremos'\
                         ' mais adiante.'

            elif busca_tutorial == 'controlo de bloco por indentacao':
                   print '\n'*1
                   print 'Na maior parte das linguagens, ha instrucoes ou simbolos especificos que delimitam blocos'\
                         ' de codigo que compoem um laco ou expressao condicional. Por exemplo, em C:'\
                         ' if ( a < 0 ) {'\
                         ' /* bloco de codigo */'\
                         ' }'\
                         ' ou em Fortran:'\
                         ' if ( a .lt. 0 ) then'\
                         ' /* bloco de codigo */'\
                         ' endif'\
                         ' Nestes dois casos, os blocos são delimitados -- em C por chaves, e em Fortran pelo par'\
                         ' then e endif.'\
                         ' Em Python, os blocos são marcados apenas por indentacao:'\
                         ' if ( a < 0 ):'\
                         ' # bloco de codigo'\
                         ' # (ao fim da seccao indentada'\
                         ' # termina o bloco)'\
                         ' # proxima instrucao (após o if)'\
                         ' Esta propriedade faz com que a linguagem seja muito clara e facil de ler -- a indentacao'\
                         ' esta sempre correcta -- mas tambem requer um controlo formal sobre a indentacao.'\
                         ' E importante convencionar se a indentacao sera feita por uma tabulacao ou por um numero'\
                         ' determinado de espacos, ja que todas as pessoas ao editar um programa Python devem usar'\
                         ' o mesmo tipo.'\
                         ' Uma boa dica que evita confusão e usar 4 espacos para cada nivel.'

            elif busca_tutorial == 'tipos de variaveis de alto nivel':
                   print '\n'*1
                   print 'Como dito antes, Python possui tipos, e alguns destes tipos merecem uma atencao especial'\
                         ' por serem de alto nivel, e portanto, bastante uteis.'\
                         ' Python oferece:'\
                         ' * Strings: a cadeia de caracteres, uma forma de dado muito comum, possui um tipo '\
                         ' especifico.'\
                         ' * Listas: uma lista e como um vector noutras linguagens: um conjunto de valores'\
                         ' organizados (indexados) por um indice numerico e inteiro.'\
                         ' a = [ "A", "B", "C" ]'\
                         ' print a[2]'\
                         ' * Tuplas: tuplas são listas imutaveis; noutras palavras, não podem ser alteradas'\
                         ' uma vez criadas.'\
                         ' * Dicionarios: dicionarios são como listas, mas que possuem indices cujo tipo não'\
                         ' precisa de ser inteiro.'\
                         ' Dicionarios são conhecidos em outras linguagens como arrays associativos ou hashes.'\
                         ' autor = { "nome" : "Christian", "idade" : 26 }'\
                         ' print autor["nome"]'\
                         ' * Classes: classes são tipos especiais que servem para apoiar programacao'\
                         ' orientada a objectos, que sera discutida a seguir.'

            elif busca_tutorial == 'orientacao a objectos':
                   print '\n'*1
                   print 'Neste topico, faremos uma rapida explicacao sobre como pode ser feita a orientacao a objectos.'\
                         ' Orientacao a objectos (OO) e uma forma de estruturar um programa: ao inves de definirmos'\
                         ' variaveis e criarmos funcoes, passando parametros entre elas, definimos objectos que possuem'\
                         ' dados e accoes associadas.'\
                         ' O programa orientado a objectos e resultado da colaboracao entre estes objectos.'\
                         ' Para a orientacao a objectos ser utilizada, a linguagem de programacao deve dar suporte a'\
                         ' objectos (e aos seus tipos, as classes).'\
                         ' Em Python, ha suporte completo a OO; alias, a linguagem vai alem de simples suporte: todos'\
                         ' os elementos basicos em Python são objectos.'\
                         ' Segue um exemplo de uma classe, e da criacao de um objecto, que nos termos da linguagem'\
                         ' Python é chamado de instancia:'\
                         ' class Produto:'\
                         ' def vende(self):'\
                         ' # Aqui entrariam as accoes que realizam uma venda'\
                         ' pass'\
                         ' p = Produto()'\
                         ' p.preco = 10.00'\
                         ' p.descricao = "Halls extra forte"'\
                         ' p.vende()'\
                         ' print p'\

            elif busca_tutorial == 'porque utilizar python':
                   print '\n'*1
                   print 'Uma boa pergunta e -- ja que existe uma quantidade de linguagens diferentes -- por que e'\
                         ' que aprender Python e importante ou mesmo interessante?'\
                         ' Ha diversas respostas; a mais importante, na minha opiniao, e que Python e facil.'\
                         ' E facil em diversos sentidos:'\
                         ' * Os conceitos fundamentais da linguagem são simples.'\
                         ' * A sintaxe da linguagem e clara e facil de aprender.'\
                         ' * A linguagem possui um interpretador de comandos que permite aprender e testar'\
                         ' rapidamente trechos de codigo.'\
                         ' * Na grande maioria dos casos, um programa em Python sera muito mais curto que seu'\
                         ' correspondente escrito noutra linguagem.'\
                         ' Isto também faz com que seja mais rapido de escrever.'\
                         ' * Existe suporte para todo tipo de biblioteca e base de dados possivel.'\
                         ' Ou seja, pode-se fazer em Python qualquer tipo de programa, mesmo que utilize graficos,'\
                         ' base SQL ou outra tecnologia externa.'\
                         ' * E possivel escrever extensoes para Python em C e C++ se e necessário performance'\
                         ' maxima, ou se e desejavel fazer interface com alguma ferramenta que possua biblioteca apenas'\
                         ' nestas linguagens.'\
                         ' * Python permite que o programa funcione em multiplas plataformas; noutras palavras, a sua'\
                         ' aplicacao feita para Linux pode correr sem problemas em Windows e em outros sistemas.'\
                         ' * Python e pouco punitivo: em geral, tudo pode e ha poucas regras arbitrarias; isto acaba'\
                         ' por tornar agradavel o uso da linguagem.'\

                   break
                
        except:
                   
                    print '\n'*1
                    print 'Leia primeiro antes de inserir alguma'\
                          ' palavra/numero, so aceito as palavras'\
                          ' obrigatorias'\
                          ' citadas acima.'


class Retorno_Ou_Fim (Python_Ensina_Python):
    while 1:
          try:
            print '\n'*1
            retorno_fim = raw_input ('Responda somente sim ou nao , Deseja voltar a consultar o tutorial?: ')

            if retorno_fim == 'sim':
               print '\n'*1
               busca_tutorial = raw_input ('Digite uma das palavras obrigatorias acima descritas: ')

            elif retorno_fim == 'nao':
                print '\n'*1
                print 'Obrigado por ler o tutorial!'      
                break
                   
          except:
                  print '\n'*1
                  print 'Digite somente sim ou nao'
                  print '\n'*1


raw_input ('Digite Enter para sair')

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora