0% acharam este documento útil (0 voto)
5 visualizações18 páginas

Introdução à Linguagem Python

Este documento descreve o Python como uma linguagem de programação poderosa e fácil de aprender, com estruturas de dados eficientes e orientada a objetos. Python é uma linguagem interpretada multiplataforma disponível gratuitamente, com tipagem dinâmica e forte, ideal para scripting e desenvolvimento rápido de aplicações. O documento também cobre os tipos básicos em Python, como números, strings e valores booleanos.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações18 páginas

Introdução à Linguagem Python

Este documento descreve o Python como uma linguagem de programação poderosa e fácil de aprender, com estruturas de dados eficientes e orientada a objetos. Python é uma linguagem interpretada multiplataforma disponível gratuitamente, com tipagem dinâmica e forte, ideal para scripting e desenvolvimento rápido de aplicações. O documento também cobre os tipos básicos em Python, como números, strings e valores booleanos.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

INTRODUÇÃO

Python é uma linguagem de programação poderosa e fácil de aprender. Conta com estruturas
de dados eficientes e de alto nível e uma abordagem simples, mas eficaz, para a programação
orientada a objetos. A elegante sintaxe do Python e seu tipagem dinâmica, junto com seu
natureza interpretada, fazem deste um linguagem ideal para scripting e desenvolvimento rápido de
aplicações em diversas áreas e sobre a maioria das plataformas.

O intérprete de Python e a extensa biblioteca padrão estão à disposição gratuitamente em forma


binária e de código-fonte para as principais plataformas a partir do site da Python,
[Link] e pode ser distribuído livremente. O mesmo site também contém
distribuições e links de muitos módulos livres de Python de terceiros, programas e
ferramentas e documentação adicional.

O interpretador Python pode ser facilmente estendido com novas funcionalidades e tipos de
dados implementados em C ou C++ (ou outras linguagens acessíveis a partir de C). Python também
pode ser usado como uma linguagem de extensões para aplicações personalizáveis.

O que é Python?
Python é uma linguagem de programação criada por Guido van Rossum no início dos
anos 90 cujo nome está inspirado no grupo de comediantes inglês “Monty Python”. É um
linguagem semelhante ao Perl, mas com uma sintaxe muito limpa e que favorece um código legível.

Trata-se de uma linguagem interpretada ou de script, com tipagem dinâmica, fortemente tipada,
multiplataforma e orientado a objetos.
Linguagem interpretada ou de script
Uma linguagem interpretada ou de script é aquela que é executada utilizando um programa
intermediário chamado intérprete, em vez de compilar o código para linguagem de máquina que possa
compreender e executar diretamente um computador (linguagens compiladas).
A vantagem das linguagens compiladas é que sua execução é mais rápida. No entanto, os
linguagens interpretadas são mais flexíveis e mais portáveis.

Python tem, no entanto, muitas das características das linguagens compiladas, por isso
que se poderia dizer que é semi interpretado. Em Python, como em Java e muitos outros
linguagens, o código-fonte é traduzido para um pseudo código máquina intermediário chamado
bytecode a primeira vez que é executado, gerando arquivos .pyc ou .pyo (bytecode
otimizado), que são os que serão executados em sucessivas ocasiões.
Tipagem dinâmica
A característica de tipagem dinâmica refere-se ao fato de que não é necessário declarar o tipo de dado
que vai conter uma determinada variável, mas seu tipo será determinado em tempo de
execução de acordo com o tipo de valor ao qual é atribuído, e o tipo dessa variável pode mudar se
se lhe atribui um valor de outro tipo.

Fortemente tipado
Não é permitido tratar uma variável como se fosse de um tipo diferente do que tem, é necessário
converter explicitamente essa variável para o novo tipo previamente. Por exemplo, se
temos uma variável que contém um texto (variável do tipo string) não poderemos
tratar ela como um número (somar a cadeia "9" e o número 8). Em outras linguagens o tipo de
a variável mudaria para se adaptar ao comportamento esperado, embora isso seja mais
propenso a erros.
Multiplataforma
O intérprete do Python está disponível em múltiplas plataformas (UNIX, Solaris, Linux,
DOS, Windows, OS/2, Mac OS, etc.) portanto, se não utilizarmos bibliotecas específicas de cada
plataforma nosso programa poderá rodar em todos esses sistemas sem grandes mudanças.
A orientação a objetos é um paradigma de programação no qual os conceitos do mundo
os reais relevantes para o nosso problema são transferidos para classes e objetos em nosso programa. A
A execução do programa consiste em uma série de interações entre os objetos.
Python também permite a programação imperativa, programação funcional e
programação orientada a aspectos.
Por que Python?
Python é uma linguagem que todo mundo deveria conhecer. Sua sintaxe é simples, clara e fácil;
o tipagem dinâmica, o gerenciador de memória, a grande quantidade de bibliotecas disponíveis e a
potência da linguagem, entre outros, fazem com que desenvolver uma aplicação em Python seja
sencillo, muito rápido e, o que é mais importante, divertido.
A sintaxe do Python é tão simples e próxima da linguagem natural que os programas
elaborados em Python parecem pseudocódigo. Por este motivo se trata além de um dos
melhores linguagens para começar a programar.
Python não é adequado, no entanto, para programação de baixo nível ou para aplicações
em que o desempenho é crítico.
Alguns casos de sucesso no uso do Python são Google, Yahoo, a NASA, Indústrias Light
& Magic, e todas as distribuições Linux, nas quais o Python representa cada vez mais uma parte
por cento maior de os programas disponíveis.
Instalação do Python
Jython, IronPython, PyPy, etc. CPython é a mais utilizada, a mais rápida e a mais madura.
Quando as pessoas falam sobre Python, normalmente se referem a esta implementação. Neste caso
tanto o intérprete quanto os módulos estão escritos em C. Jython é a implementação em Java.
de Python, enquanto IronPython é sua contrapartida em C# (.NET). Seu interesse reside em
que utilizando estas implementações se podem utilizar todas as bibliotecas disponíveis para
os programadores de Java e .NET. PyPy, por fim, como vocês devem ter adivinhado pelo nome,
trata-se de uma implementação em Python de Python.
Ferramentas básicas
Existem duas maneiras de executar código Python. Podemos escrever linhas de código no
intérprete e obter uma resposta do intérprete para cada linha (sessão interativa) ou bem
podemos escrever o código de um programa em um arquivo de texto e executá-lo.
Na hora de realizar uma sessão interativa, é aconselhável instalar e utilizar o iPython, em vez de
da console interativa do Python. Pode ser encontrado em[Link]
conta com características adicionais muito interessantes, como o autocompletamento ou o operador
?. (para ativar o recurso de preenchimento automático no Windows é necessário instalar
PyReadline, que pode ser baixado de[Link] moin/PyReadline/Intro)

A função de autocompletar é ativada pressionando a tecla de tabulação. Se digitarmos fi e pressionarmos


A aba nos mostrará uma lista dos objetos que começam com fi (arquivo, filtro e finalmente). Se
escrevemos file. e pressionamos Tab nos mostrará uma lista dos métodos e propriedades do
objeto arquivo.
O operador ? nos mostra informações sobre os objetos. Ele é utilizado adicionando o símbolo de
interrogação no final do nome do objeto do qual queremos mais informações.
Tipos básicos
Em Python, os tipos básicos são divididos em:
Números, como pueden ser•3 (entero), 15.57 (de ponto flutuante) ou 7 + 5j (complexos)
Cadeias de texto, como • "Olá Mundo"
Valores booleanos:•True (cierto) y False (falso).
Inteiros
Os números inteiros são aqueles números positivos ou negativos que não têm decimais
(além do zero). Em Python, podem ser representados pelo tipo int (de inteiro, inteiro)
o tipo long (longo). A única diferença é que o tipo long permite armazenar números mais
grandes. É aconselhável não usar o tipo long a menos que seja necessário, para não desperdiçar
memória.
Ao atribuir um número a uma variável, ela passará a ter o tipo int, a menos que o número
seja tão grande quanto para exigir o uso do tipo long.
# type(int) retornaria int
entero = 23
Também podemos indicar ao Python que um número seja armazenado como long adicionando
uma L no final:
# type(int) devolvería long
23L
Reais
Os números reais são aqueles que têm decimais. Em Python, eles são expressos pelo tipo
float. Em outras linguagens de programação, como C, também temos o tipo double, semelhante
um float, mas de maior precisão (double = dupla precisão). Python, no entanto, implementa
seu tipo float de baixo nível através de uma variável do tipo double em C, ou seja, utilizando 64
bits, depois em Python sempre se utiliza dupla precisão.
real = 0.2703
Complexos
Os números complexos são aqueles que têm parte imaginária. Se você não conhecia isso
existência, é mais provável que você nunca precise disso, então você pode pular
este apartado tranquilamente. De fato, a maior parte das linguagens de programação carecem
de este tipo, aunque sea muy utilizado por engenheiros e cientistas em geral.
No caso de precisarem utilizar números complexos, ou simplesmente tiverem curiosidade,
os diré que este tipo, chamado complex em Python, também é armazenado usando ponto flutuante,
devido a que esses números são uma extensão dos números reais. Em concreto se
armazenar em uma estrutura de C, composta por duas variáveis do tipo double, servindo uma
de elas para armazenar a parte real e a outra para a parte imaginária.
Os números complexos em Python são representados da seguinte forma:
2.1 + 7.8j
Operadores
Operadores aritméticos
Cadenas
As cadeias não são mais do que texto encerrado entre aspas simples (‘cadeia’) ou duplas
("cadeia"). Dentro das aspas, é possível adicionar caracteres especiais escapando-os com
\, como \n, o caráter de nova linha, ou \t, o de tabulação.
Uma cadeia pode ser precedida pelo caractere u ou pelo caractere r, os quais indicam,
respectivamente, que se trata de uma cadeia que utiliza codificação Unicode e uma cadeia
raw (do inglês, crua). As strings raw se distinguem das normais porque os caracteres
Escapados mediante a barra invertida ( ) não são substituídos por suas contrapartes.
äóè
\n
Também é possível encerrarr uma string entre três aspas (simples ou duplas). De esta
forma poderemos escrever o texto em várias linhas, e ao imprimir a cadeia, serão respeitados os
saltos de linha que introduzimos sem ter que recorrer ao caractere \n, assim como as aspas sem
ter que escapá-las.
"""primeira linha
isto será visto em outra linha
As cadeias também aceitam operadores como +, que funciona realizando uma
concatenação das cadeias utilizadas como operandos e *, em que se repete a
cadeia tantas vezes quanto indicado pelo número usado como segundo operando.
um
dos
c = a + b # c é 'unodos'
c = a * 3 # c é “unounouno”
Booleanos
uma variável do tipo booleano só pode ter dois valores: Verdadeiro (certo) e Falso (falso). Estes
valores são especialmente importantes para as expressões condicionais e os laços, como
veremos mais adiante.
Estes são os diferentes tipos de operadores com os quais podemos trabalhar com valores
booleanos, os chamados operadores lógicos ou condicionais:
Os valores booleanos são também o resultado de expressões que utilizam operadores.
relacionais (comparações entre valores):

COLEÇÕES
Nesta parte veremos alguns tipos de coleções de dados: listas, tuplas e dicionários.
Listas
A lista é um tipo de coleção ordenada. Seria equivalente ao que em outras linguagens se
conhece por arrays, ou vetores.
As listas podem conter qualquer tipo de dado: números, cadeias, booleanos, ... e também
listas.
Criar uma lista é tão simples quanto indicar entre colchetes e separados por vírgulas os
valores que queremos incluir na lista:
l = [22, True, "uma lista", [1, 2]]
Podemos acessar cada um dos elementos da lista escrevendo o nome da lista e
indicando o índice do elemento entre colchetes. Tenha em mente, no entanto, que o índice
do primeiro elemento da lista é 0, e não 1:
l = [11, False]
mi_var = l[0] # mi_var vale 11
Se quisermos acessar um elemento de uma lista incluída dentro de outra lista, teremos que
utilizar duas vezes este operador, primeiro para indicar a que posição da lista exterior
queremos acessar, e o segundo para selecionar o elemento da lista interna:
l = [“una lista”, [1, 2]]
mi_var vale 1
O uso de colchetes para acessar e modificar os elementos de uma lista é comum em
muitos idiomas, mas Python nos reserva várias surpresas muito agradáveis.
Uma curiosidade sobre o operador [] do Python é que podemos usar também números.
negativos. Se um número negativo for utilizado como índice, isso se traduz em que o índice
comece a contar do final para a esquerda; ou seja, com [-1] acessaríamos o último
elemento da lista, com [-2] ao penúltimo, com [-3] ao antepenúltimo, e assim por diante.
Tuplas
Tudo o que se aplica às listas pode ser utilizado também às tuplas, exceto pela
forma de defini-la, para o que se utilizam parênteses em lugar de colchetes.
t = (1, 2, True, “python”)
Na verdade, o construtor da tupla é a vírgula, não o parêntese, mas o intérprete mostra
os parênteses, e nós deveríamos utilizá-los, por clareza.
> t = 1, 2, 3
>>> tipo(t)
tipo 'tupla'
Além disso, é necessário adicionar uma vírgula para tuplas de um só.
elemento, para diferenciá-lo de um elemento entre parênteses.
(1)
>>> tipo(t) tipo "int"
>>> t = (1,)
>>> tipo(t)
tipo "tupla"
Para nos referirmos a elementos de uma tupla, como em uma lista, usa-se o operador []:
t[0] # mi_var é 1
(1, 2)
Podemos utilizar o operador [] porque as tuplas, assim como as listas, fazem parte
de um tipo de objetos chamados sequências.
olá mundo
c[0] # h
mundo
c[::3] # hauo
Voltando ao tema das tuplas, sua diferença em relação às listas reside no fato de que as tuplas não possuem
esses mecanismos de modificação através de funções tão úteis das quais falávamos ao
final da seção anterior.
Além disso, são imutáveis, ou seja, seus valores não podem ser modificados uma vez criados; e têm
um tamanho fixo.
Dicionários
Os dicionários, também chamados de matrizes associativas, devem seu nome ao fato de que são
coleções que relacionam uma chave e um valor. Por exemplo, vamos ver um dicionário de
filmes e diretores
Richard Curtis
Matar Bil
Jean-Pierre Jeunet
O primeiro valor refere-se à chave e o segundo ao valor associado à chave. Como chave
podemos utilizar qualquer valor imutável: poderíamos usar números, strings, booleanos,
tuplas, … mas não listas ou dicionários, uma vez que são mutáveis. Isso ocorre porque os diccionários
Cenários são implementados como tabelas hash, e na hora de introduzir um novo par chave-valor
no dicionário, calcula-se o hash da chave para depois poder encontrar a entrada
correspondente rapidamente. Se o objeto chave fosse modificado depois de ter sido
introduzido no dicionário,
A principal diferença entre dicionários e listas ou tuplas é que os valores
armazenados em um dicionário, acessa-se não pelo seu índice, porque na verdade eles não têm
ordem, exceto por sua chave, utilizando novamente o operador [].

Richard Curtis
Assim como em listas e tuplas, este operador também pode ser usado para reatribuir valores.
Quentin Tarantino
No entanto, neste caso não é possível utilizar slicing, entre outras coisas porque os
dicionários não são sequências, e sim mapeamentos (mapeados, associações).

CONTROLE DE FLUXO
Nesta seção, vamos ver os condicionais e os loops.
Sentenças condicionais
Se
A forma mais simples de um estado condicional é um if (do inglês if) seguido de uma
condição a avaliar, dois pontos (:) e na linha seguinte, indentado, o código a executar em
caso de que se cumpra essa condição.
[Link]
se (if) fav é igual a “[Link]”
se fav == "[Link]":
Você tem bom gosto!
print "Obrigado"
É importante garantir que o código seja indentado exatamente como foi feito no exemplo, ou seja,
certifiquem-se de pressionar Tabulação antes dos dois comandos print, uma vez que esta é a forma de
Python saber que a sua intenção é que os dois print sejam executados apenas no caso
de que se cumpra a condição, e não a de que se imprima a primeira cadeia se se cumpre a
condição e a outra sempre, coisa que se expressaria assim:
se fav == "[Link]":
Você tem bom gosto!
Obrigado
Em outras linguagens de programação, os blocos de código são determinados ao serem encerrados entre
chaves, e o indentá-los não é mais do que uma boa prática para que seja mais simples
seguir o fluxo do programa com um só golpe de vista.
se … senão
O que faríamos se quiséssemos que certas ordens fossem executadas no caso de que a
condição não se cumprisse? Sem dúvida poderíamos adicionar outro if que tivesse como condição a
negação do primeiro:
se fav == "[Link]":
Você tem bom gosto!
print "Obrigado"
se fav != "[Link]":
Vá, que pena
mas o condicional tem uma segunda construção muito mais útil:
se fav == "[Link]":
Você tem bom gosto!
print "Obrigado"
senão:
Vá, que pena
Vemos que a segunda condição pode ser substituída por um else
se … senão se … senão se … caso contrário

se numero < 0:
print "Negativo"
elif numero > 0:
imprimir "Positivo"
senão:
Cero
elif é uma contração de else if, portanto elif numero > 0 pode ser lido como “se não, se
número é maior que 0”. Ou seja, primeiro se avalia a condição do if. Se for verdadeira, se
executa seu código e continua executando o código posterior à condição; se não for cumprida,
a condição do elif é avaliada. Se a condição do elif for verdadeira, seu código é executado e
continua executando o código posterior à condição; se não for cumprido e houver mais de um elif
continua com o seguinte na ordem de aparição. Se a condição do if não for cumprida nem de
nenhum dos elif, o código do else é executado.
A se C else B
Também existe uma construção semelhante ao operador ? de outros idiomas, que não é mais que
uma forma compacta de expressar um if else. Nesta construção, avalia-se o predicado C e
retorna A se for verdadeiro ou B se não for: A se C, caso contrário B. Vamos ver um exemplo:
par
Laços
Enquanto os condicionais nos permitem executar diferentes fragmentos de código
dependendo de certas condições, os loops nos permitem executar o mesmo fragmento
de código um certo número de vezes, enquanto uma determinada condição for atendida.
Enquanto
O loop while (enquanto) executa um fragmento de código enquanto uma condição for verdadeira.

edad = 0
enquanto idade < 18:
idade = idade + 1
print "Felicidades, tienes " + str(edad)
A variável idade começa valendo 0. Como a condição de que idade é menor que 18 é
certa (0 é menor que 18), entra-se no loop. A idade é aumentada em 1 e a mensagem é impressa
informando que o usuário completou um ano. Lembre-se de que o operador + para as
cadenas funciona concatenando ambas cadenas. É necessário utilizar a função str (destring,
cadeia) para criar uma cadeia a partir do número, dado que não podemos concatenar números
y cadeias.
Outra palavra-chave que podemos encontrar dentro dos loops é continue (continuar).
Como vocês devem ter adivinhado, não faz outra coisa senão passar diretamente para a próxima iteração do
bucle.
edad = 0
enquanto idade < 18:

idade = idade + 1
se idade % 2 == 0:
continuar
print "Felicidades, tienes " + str(edad)
para … em
Em Python, for é utilizado como uma forma genérica de iterar sobre uma sequência. E como tal
tenta facilitar seu uso para este fim.
secuencia = [“uno”, “dos”, “tres”]
para elemento em sequência:
imprimir elemento

Como dissemos, os for são utilizados em Python para percorrer sequências, por isso vamos
Utilizar um tipo de sequência, como é a lista.
36
FUNÇÕES
Uma função é um fragmento de código com um nome associado que realiza uma série de
tarefas e retorna um valor. Para os fragmentos de código que têm um nome associado e não
valores de retorno geralmente são chamados de procedimentos. Em Python, não existem os procedimentos-
tos, já que quando o programador não especifica um valor de retorno a função devolve o
valor None (nada), equivalente ao null do Java.
Em Python, as funções são declaradas da seguinte forma:
def minha_função(param1, param2):
imprimir param1
imprimir param2

Para chamar a função (executar seu código) escrever-se-ia:


mi_funcion(“hola”, 2)

ORIENTAÇÃO A OBJETOS
Classes e objetos
Para entender este paradigma primeiro temos que compreender o que é uma classe e o que é um
objeto. Um objeto é uma entidade que agrupa um estado e uma funcionalidade relacionadas. O
o estado do objeto é definido através de variáveis chamadas atributos, enquanto que a
a funcionalidade é modelada através de funções a que se conhece pelo nome de
métodos do objeto.
Em Python, as classes são definidas pela palavra-chave class seguida pelo nome da
clase, dois pontos (:) e a seguir, indentado, o corpo da classe. Como no caso de
as funções, se a primeira linha do corpo for uma string de texto, essa será a string
de documentação da classe ou docstring.
O primeiro que chama a atenção no exemplo anterior é o nome tão curioso que tem.
o método __init__. Este nome é uma convenção e não um capricho. O método __init__,
com uma dupla barra baixa no início e no final do nome, é executado logo após criar um
novo objeto a partir da classe, processo que é conhecido pelo nome de instanciação. O
o método __init__ serve, como sugere seu nome, para realizar qualquer processo de
inicialização que seja necessário. Como vemos o primeiro parâmetro de __init__ e do resto de
métodos. da classe é sempre self.
Este mecanismo é necessário para poder acessar os atributos e métodos do objeto
diferenciando, por exemplo, uma variável local mi_var de um atributo do objeto self.mi_var.
Herança
Há três conceitos que são básicos para qualquer linguagem de programação orientada a
objetos: o encapsulamento, a herança e o polimorfismo.
Em uma linguagem orientada a objetos, quando fazemos uma classe (subclasse) herdar de outra
classe (superclasse) estamos fazendo com que a subclasse contenha todos os atributos e métodos
que tinha a superclasse. No entanto, ao ato de herdar de uma classe também se chama a
menudo “extender uma classe”.
Para indicar que uma classe herda de outra, coloca-se o nome da classe da qual se herda
entre parênteses depois do nome da classe:
Herança múltipla
Em Python, ao contrário de outras linguagens como Java ou C#, é permitida a herança múltipla.
ou seja, uma classe pode herdar de várias classes ao mesmo tempo. Por exemplo, poderíamos ter uma
classe Jacaré que herdará da classe Terrestre, com métodos como andar() e atributos
como velocidade_andar e da classe Aquático, com métodos como nadar() e atributos como
velocidade_nadar. Basta enumerar as classes das quais se herda, separando-as por vírgulas:

Polimorfismo
A palavra polimorfismo, do grego poly morphos (várias formas), refere-se à habilidade
de objetos de distintas classes responderem à mesma mensagem. Isso pode ser conseguido a
através da herança: um objeto de uma classe derivada é ao mesmo tempo um objeto de a
classe pai, de forma que onde se requerir um objeto da classe pai também se pode
utilizar um da classe filha.
Python, por ser de tipagem dinâmica, não impõe restrições aos tipos que podem ser passados.
a uma função, por exemplo, além de que o objeto se comporte como se espera: se vai a
chamar um método f() do objeto passado como parâmetro, por exemplo, evidentemente o
o objeto terá que contar com esse método. Por esse motivo, ao contrário de linguagens de tipagem
estático como Java ou C++, o polimorfismo em Python não é de grande importância.
Encapsulamento
A encapsulação refere-se a impedir o acesso a determinados métodos e atributos de
objetos estabelecendo assim o que pode ser utilizado de fora da classe.
Isso é conseguido em outras linguagens de programação como Java utilizando modificadores de
acesso que definem se qualquer um pode acessar essa função ou variável (público) ou se está
restringido o acesso à própria classe (privado).
Em Python não existem modificadores de acesso, e o que geralmente se faz é que o acesso a
uma variável ou função é determinado pelo seu nome: se o nome começa com dois
guiones bajos (e não termina também com dois guiones bajos) se trata de uma variável ou função
privada, caso contrário é pública.

Funções de ordem superior


O conceito de funções de ordem superior refere-se ao uso de funções como se fossem um valor
qualquer que seja, possibilitando passar funções como parâmetros de outras funções ou
devolver funções como valor de retorno.
Iterações de ordem superior sobre listas
mapa(função, sequência[, sequência, ...])
filtrar(função, sequência)
reduzir(função, sequência[, inicial])
Decoradores
Um decorador não é mais do que uma função que recebe uma função como parâmetro e
devolve outra função como resultado. Por exemplo, poderíamos querer adicionar a funcionalidade
de que se imprimisse o nome da função chamada por motivos de depuração

Módulos e Pacotes
Módulos
Para facilitar a manutenção e a leitura, os programas muito longos podem ser divididos.
em módulos, agrupando elementos relacionados. Os módulos são entidades que permitem
uma organização e divisão lógica do nosso código. Os arquivos são sua contraparte física:
cada arquivo Python armazenado no disco equivale a um módulo.
Vamos a criar nosso primeiro módulo, então criando um pequeno arquivo [Link] com
o seguinte conteúdo:

Pacotes
Se os módulos servem para organizar o código, os pacotes servem para organizar os
módulos. Os pacotes são tipos especiais de módulos (ambos são do tipo módulo) que
permitam agrupar módulos relacionados. Enquanto os módulos correspondem a nível físico
com os arquivos, os pacotes são representados por diretórios.
Para fazer com que o Python trate um diretório como um pacote, é necessário criar um arquivo
__init__.py nesta pasta. Neste arquivo, podem ser definidos elementos que pertencem a
dicho pacote, como uma constante DRIVER para o pacote bbdd, embora normalmente se
tratará de um arquivo vazio. Para fazer com que um certo módulo esteja dentro de um
pacote, basta copiar o arquivo que define o módulo para o diretório do pacote.
Como os módulos, para importar pacotes também se utiliza import e from-import e o
caracter . para separar pacotes, subpacotes e módulos.

Entrada/Saída e Ficheiros
Entrada padrão
A forma mais simples de obter informações do usuário é por meio da função
entrada_bruta

Parâmetros de linha de comando


Além do uso de input e raw_input, o programador Python conta com outros métodos para
obter dados do usuário. Um deles é o uso de parâmetros na hora de chamar o programa
na linha de comando. Por exemplo:

Saída padrão
A forma mais simples de mostrar algo na saída padrão é por meio do uso da sentença
imprimir, como hemos visto multitud de veces en ejemplos anteriores. En su forma más básica a
a palavra-chave print é seguida por uma string, que será exibida na saída padrão ao ser executada
o estamento.

Os especificadores mais simples são formados pelo símbolo % seguido de uma letra que
indica o tipo com o qual formatar o valor Por exemplo:

Arquivos
Os arquivos em Python são objetos do tipo file criados através da função open (abrir). Este
a função toma como parâmetros uma string com o caminho para o arquivo a ser aberto, que pode ser relativo
o absoluta; uma cadeia opcional indicando o modo de acesso (se não for especificado, acessa-se
em modo leitura) e, por fim, um inteiro opcional para especificar um tamanho de buffer
distinto do utilizado por padrão.
O modo de acesso pode ser qualquer combinação lógica dos seguintes modos:
r’• : ler, leitura. Abre o arquivo em modo leitura. O arquivo deve existir
previamente, caso contrário, será lançada uma exceção do tipo IOError.
'w'• : escrever, escrita. Abra o arquivo no modo de escrita. Se o arquivo não existir, ele
cria. Se existir, sobrescreva o conteúdo.
'a': anexar, adicionar. Abre o arquivo em modo de escrita. Difere do modo 'w' em
que neste caso não se sobrepõe o conteúdo do arquivo, mas sim se começa
a escrever ao final do arquivo.
binário
'+'• : permite leitura e escrita simultâneas.
‘U’• : newline universal, saltos de linha universais. Permite trabalhar com arquivos que
tenha um formato para as quebras de linha que não coincide com o da plataforma
atual (no Windows usa-se o caractere CR LF, no Unix LF e no Mac OS CR).

Leitura de arquivos
Para a leitura de arquivos, são utilizados os métodos read, readline e readlines.
Escrita de arquivos
Para a escrita de arquivos, são utilizados os métodos write e writelines. Enquanto o
primeiro funciona escrevendo em um arquivo uma cadeia de texto que é tomada como
parâmetro, o segundo usa como parâmetro uma lista de cadeias de texto indicando
as linhas que queremos escrever no arquivo.
CONCLUSÕES
1. Linguagem muito parecida com Pseudocódigo, bastante limpa com uma sintaxe legível por sua
gran parecido ao linguagem natural.
2. Recomendado para começar a programar
3. É uma linguagem de muito alto nível que pode ser utilizada em diferentes plataformas e para
diferentes tipos de aplicações.
4. Linguagem fácil de entender, distribuir mesmo em uso comercial.

Você também pode gostar