Python3 01 – Iniciando…

novembro 8th, 2017 by Rudson Alves Leave a reply »

Nesta nova série, pretendo apresentar a linguagem de programação Phyton 3, mais especificamente 3.6.1 e superiores, conforme o texto for sendo desenvolvido. A intenção é criar uma coletânea de artigos sucintos, mas ainda com profundidade suficiente para dar uma boa compreensão do Python 3 e suas especificidades. O texto será construído com foco no usuário iniciante em Python, não sendo necessário o conhecimento de versões anteriores. Porém, algum conhecimento em programação pode ser conveniente.

Como não tenho muita competência com as novas mídias, especificamente vlogs, tão pouco com a edição de vídeos, vou me manter firme no bom e simples blog com texto corrido, empregando exemplos de código quanto conveniente.

1. Uma Breve Apresentação do Python 3

“Dada a sua simplicidade, o Python é uma linguagem de programação fácil de se aprender e muito poderosa. Possui uma estrutura de dados de alto nível com orientação a objetos simples e muito efetivo. Com uma sintaxe elegante e tipagem dinâmica, unido a um interpretador robusto e bem otimizado, o Python se torna uma linguagem ideal para scripts e o desenvolvimento rápido de aplicativos em diferentes áreas e plataformas.” (em uma tradução livre do Manual do Python)

Embora seja uma linguagem interpretada, o Python é extremamente poderoso. Entre seus pontos fortes, pode-se citar:

  • Rápida Aprendizagem: dada a sua simplicidade e clareza no código, o Python apresenta uma curva de aprendizagem muito acentuada, sendo muito empregada no ensino de programação em diversas instituições de nível superior;
  • Multiparadigma: uma das grandes vantagens do uso do Python na academia é a possibilidade de se explorar diferentes paradigmas de programação, como: imperativa, procedural, funcional, orientação a objetos, capacidade reflexiva, dentre outros. Uma linguagem multiparadigma tende a atender mais necessidades, dando ao Python mais flexibilidade, além de ser uma ótima ferramenta no aprendizado;
  • Tipagem Dinâmica Forte: para alguns, isto pode ser uma desvantagem. Mas, se bem utilizado, simplifica e agiliza muito a construção de programa. No Python, a tipagem de uma variável é definida no momento de sua criação. Por exemplo, definindo a = 12, o interpretador irá inferir que “a” é do tipo inteiro;
  • Orientada a Objeto: no Python, todas as variáveis são objetos. Embora suporte funções e classes, não é obrigado a usá-las.
  • Indentação Obrigatória: a indentação do código no Python é obrigatória, já que os blocos de instrução são delimitados pela profundidade da indentação. Isto é, os códigos que estiverem rente a mesma margem esquerda farão parte do nível hierárquico do bloco com indentação mais à esquerda.

Talvez algum dia retome esta lista, mas, no momento, não pretendo ser muito extenso e vou direto ao primeiro contato com a linguagem desta série. Escrevi um pouco mais de informações sobre o Python 2 em Python 1 – Uma introdução ao Python. Embora existam pequenas diferenças nas duas versões, também há muitas semelhanças. Aqui, tentarei ser um pouco mais direto.

2. Primeiro Contato

Os códigos apresentados neste texto vão pressupor que o código será executado sobre o Python 3.6.1 ou superior e sobre GNU/Linux. Adaptações para Windows e instalações de IDEs são bem documentadas na internet e, possivelmente, terão referências adicionadas futuramente.

O Python 3 geralmente é invocado nas distribuições Linux atuais com o comando python3. Dada a grande quantidade de aplicativos em Python ainda na versão 2, a maioria das distribuições ainda não roda o Python 3 como padrão no sistema.

alves@luskan:$ python3
Python 3.6.1 (default, Jul 28 2017, 17:35:34) 
[GCC 7.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help
Type help() for interactive help, or help(object) for help about object.
>>> help(print)

Também é possível chamar a IDE padrão do Python conhecida como idle3 (apenas idle para o Python 2). Embora não a utilize muito, devo admitir que esta IDE é bem versátil, com ótima ferramenta de completar que faz consulta a biblioteca de funções, módulos e demais objetos do Python. Ela também possui um editor embutido para a criação de código que tem sido bem elogiado. Pessoalmente, acho que vale uma conferida.

A captura da imagem na figura acima cancelou o texto de consulta do autocompletar da idle3, deixando apenas a sombra. Noutra ocasião, tendo capturá-la adequadamente.

Voltando ao conteúdo, este é o prompt do Python no modo interativo. A primeira função apresentada aqui é o comando help(), que, diferentemente do que ocorre no Python 2, não necessita de passar o nome da função/classe como string, de forma que apenas o comando help(print) apresenta o texto de suporte a função print.

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.



-- MOST: *stdin*                                                         (1,1) 100%
Press `Q' to quit, `H' for help, and SPACE to scroll.

Pressione q para retornar ao modo interativo ou espaço para rolar o scroll do texto. Para sair do modo interativo, utilize o comando exit().

2.1. Primeiro Código – Comando print

Para o tradicional Hello World!, será empregada a função de impressão do Python, print(). Para isto, escreva o comando abaixo no modo interativo:

>>> print('Hello World!')
Hello World!
>>> print('Hello', 'World!')
Hello World!
>>>

Os dois comandos geram a mesma saída. A função print() imprime todos os argumentos passados separados por um espaço e terminado com um alimentador de linha de linha, por padrão. Estes valores podem ser alterados ao se passar as variáveis sep e end em qualquer ordem, como apresentado no help anterior. Agora, tente algo como:

>>> print('Hello', 'World!', sep = '*-*', end = ' ;-D\n')
Hello*-*World! ;-D
>>>

Para escrever um programa em Python, saia do interpretador e utilize um editor de texto de sua escolha para criar o código hello.py a seguir:

#!/bin/env python3
# Programa hello.py
#
print('Hello', 'World!')

A primeira linha do programa diz ao sistema, através do programa env (environment), que, se o interpretador deste código é o python3, as demais linhas iniciadas pelo caractere “#” são comentários e serão ignorados pelo interpretador. Para executar o programa, pode chamá-lo pelo interpretador:

alves@luskan:$ python3 hello.py
Hello World!

No caso acima, a linha 1 é dispensável. Uma segunda forma é fazer o aplicativo executável e chamar pelo nome, como mostrado abaixo:

alves@luskan:$ chmod +x hello.py
alves@luskan:$ ./hello.py
Hello World!

Neste segundo caso, a linha 1 é essencial. O “./” é necessário para indicar o diretório corrente como caminho para o hello.py. Isto pode ser omitido se adicionar um ponto, “.“, à variável PATH do sistema, mas não é recomendado por questões de segurança.

A linha 1 também pode ser apenas uma chamada ao interpretador, como

#!/bin/python3
# Programa hello.py
#
print('Hello', 'World!')

O efeito será exatamente o mesmo. O shell consulta a linha com o “#!” para usar como interpretador para o script. A desvantagem deste segundo modo é a possibilidade do interpretador python3 não possuir uma chamada instalada em /bin/, o que acontece no Slackware, bem como em outras distribuições.

alves@luskan:$ ./hello.py 
bash: ./hello.py: /bin/python3: interpretador incorreto: Arquivo ou diretório não encontrado

Na maioria dos sistemas, o Python 3 possui uma chamada em /usr/bin/python3. O mais aconselhável é deixar o comando env iniciar o ambiente do Python, o que dá mais mobilidade a seu código.

2.2. Entrada – Comando input

A entrada de dados mais básica do Python é através do comando input(). Sua sintaxe é bem simples:

input(Prompt = None)

O comando input apenas aguada que seja inserido uma sequência de caracteres pela entrada padrão, o teclado, e a retorna como uma string. O Prompt padrão é nada (None), mas se inserido é impresso antes do comando aguardar a entrada. O código a seguir faz a entrada das informações de um registro de informações básico.

print('Preencha os campos a seguir.')
Nome = input('Seu nome completo: ')
Nascimento = input('Data de nascimento: ')
Natural = input('Naturalidade: ')

print()
print('{0}, nascido em {1}, natural de {2}'.format(Nome, Nascimento, Natural))

Em seguida torne-o executável e faça um teste.

alves@luskan:$ chmod +x input.py 
alves@luskan:$ ./input.py 
Preencha os campos a seguir.
Seu nome completo: Albert Einstein
Data de nascimento: 14 de março de 1879
Naturalidade: Ulm, Alemanha

Albert Einstein, nascido em 14 de março de 1879, natural de Ulm, Alemanha

3. Considerações

Esta foi apenas uma breve introdução ao Python e sem grandes pretensões. Nos textos seguintes pretendo ser mais profundo, abordando mais detalhes e particularidades que fazem o Python ser tão interessante. No próximo texto apresento os diferentes tipos básicos de dados no Python e algumas das características que os destacam frente às linguagens tradicionais de programação.

Advertisement

Deixe uma resposta