tutorial python - 1
DESCRIPTION
Tutorial apresentado em 11/10/2011 na SEICOM (Semana Acadêmica Integrada de Computação), Foz de Iguaçu, PR.TRANSCRIPT
![Page 1: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/1.jpg)
![Page 2: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/2.jpg)
é uma linguagem interpretada, interativa, funcional, orientada a objetos, dinamicamente tipada e com gerenciamento automático de memória
Similar, em certos aspectos, a Perl, Ruby, Scheme, Smalltalk e Tcl
![Page 3: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/3.jpg)
Entre todas as linguagens que aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações.
Eric Raymond
![Page 4: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/4.jpg)
Life is Better Without Braces.
Bruce Eckel
![Page 5: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/5.jpg)
Python has been an important part of Googlesince the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language.
Peter Norvik
![Page 6: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/6.jpg)
![Page 7: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/7.jpg)
Guido van Rossum é referido pela comunidade python, desde 1995, como Benevolent Dictator For Life(BDFL)
Desde dezembro de 2005 Guido trabalha na Google, dedicando 50% do seu tempo com a linguagemwww.python.org/~guidoneopythonic.blogspot.com/
![Page 8: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/8.jpg)
Não veio da cobra!"Over six years ago, in December
1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office ... would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python´s Flying Circus)”.
![Page 9: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/9.jpg)
![Page 10: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/10.jpg)
NADA!
Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF(Python Software Foundation)
![Page 11: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/11.jpg)
Para obter o interpretador Python acessar http://www.python.org/download/ Versões
Python 2.7.2 foi liberada em 11 de junho de 2011Python 3.2.2* foi liberada em 04 de
setembro de 2011
![Page 12: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/12.jpg)
http://www.python.org/about/success/GoogleNASAYahooInfoSeekMCI WorldcomIBM HigwayIndustrial Light and MagicAstraZenecaHoneywell...
![Page 13: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/13.jpg)
Governo FederalPetrobrasSerproEmbratelGlobo.comStarOneConectivaCPqDAsyncHaxentUTFPR...
![Page 14: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/14.jpg)
Vários projetos da comunidade Software Livre
BlenderLibreOfficeZope/PloneMoinMoinMailmanBitTorrentChandlerGimpPloneDjangoOpenERPinVesalius
![Page 15: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/15.jpg)
Web e Internet DatabaseGUIsCientífico e processamento
numéricoEducaçãoProgramação de rede Construção e teste de softwareDesenvolvimento de jogos e
renderização 3DOnde mais sua imaginação mandar!
![Page 16: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/16.jpg)
![Page 17: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/17.jpg)
Unix: HP-UX, Solaris ...Linux (freqüentemente pré-instalada)Mac OSX (sempre pré-instalada)Windows: 9x, ME, 2K, XP, Vista, Seven
(ctypes, win32all)Apple iPhoneGoogle Android
![Page 18: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/18.jpg)
Compilação Híbridacomo Java, programas Python são
compilados, porém para uma linguagemintermediária, destinada a um interpretador
Isola Python de muitas das excentricidades dasmáquinas reais na qual ele rodaprovê um nível de portabilidade
![Page 19: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/19.jpg)
Cythononde existir um compilador C ISO/IEC 9899:1990
Jythonmáquina virtual Java
PyPyPython implementado em Python
Python for .NET[Brian Lloyd], IronPython (da M$)
Python for DelphiLunaticPython
interoperando com LuaRuby/Python
em Ruby importar módulos Python)
![Page 20: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/20.jpg)
De altíssimo nível e poderosaElegante, com sintaxe
simples e concisaFácil de aprender, “cabe”
no seu cérebro !Multiparadigma:
Funcional, Procedural e Orientado a ObjetosPossui suporte nativo a
estruturas de dados complexas
![Page 21: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/21.jpg)
Extensa biblioteca padrão
Um módulo para o que você precisar
sys, random, re, datetime, calendar, csv, os, webbrowser, string, urlib, Tkinter, codecs, pickle, types, array, mutex, queue, zlib, gzip, md5, thread, socket, email, xml.dom, locale, etc.
![Page 22: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/22.jpg)
![Page 23: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/23.jpg)
Código é muito mais lido que escrito!
Readability importa! (muito)
Python te ajuda a escrever código mais legível
![Page 24: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/24.jpg)
![Page 25: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/25.jpg)
Python é case sensitiveLinhas são delimitadas por enterTipagem é forte e dinâmica
Não há declaração de variáveis como em C, Java, Pascal, etc.
Você pode utilizar o interpretador em modointerativo ou seu IDE/editor favoritos
![Page 26: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/26.jpg)
Em Python, variáveis são referências a objetosnão guardam os objetos em sinão têm tipo, mas os objetos aos quais elas se
referem têm tipoSão criadas dinamicamente
Uma variável não pode ser utilizada em uma expressão sem ter sido inicializada
não existe “criação automática” de variáveis
![Page 27: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/27.jpg)
Variáveis não são “caixas” com valoresVariáveis são “rótulos” colados em objetos
São criadas pela atribuiçãoOperador =
![Page 28: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/28.jpg)
Atribuição não gera uma cópia do objetoUma referência (variável) pode ser liberadaUsando del Não existindo mais referências a um objeto, ele é
removido da memória (garbage collector)
![Page 29: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/29.jpg)
Normalmente para programas maiores você irá codificar arquivos (scripts) em um IDE
extensão py
O script pode ser executado diretamente da linha de comando
python oi.py
Ou carregado para o interpretador interativo>>> import oi.py
![Page 30: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/30.jpg)
Módulos são arquivos que contêm qualquer estrutura python (classes, funções, variáveis, etc.) e podem ser importados nos programas
Quando importado pela primeira vez o módulo é compilado e um arquivo .pyc ou .pyo é gerado
Um módulo é um objeto singletonApenas uma instância é carregada em memória torna-se disponível globalmente para o programa
que fez a importação
![Page 31: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/31.jpg)
Funções importantes são disponibilizadas em módulos da biblioteca padrão
Ex.: módulo math tem funções como sin, cos, exp e outrasUm módulo pode conter não só funções, mas
também variáveis ou classesEx.: math define a constante pi
Os módulos são localizados pelo interpretador pela lista de diretórios em PYTHONPATH(sys.path), que inclui o diretório atual
![Page 32: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/32.jpg)
Para usar os elementos de um módulo, comando import
import modulofrom modulo import nome1,...,nomen
from modulo import *
A importação ocorre apenas uma vez!
Para carregar um módulo novamente (que tenha sido alterado) pode-se usar a função reload
![Page 33: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/33.jpg)
Exemplos
![Page 34: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/34.jpg)
Se um programa pode ser executado isolado ou importado dentro de outro, como distinguir as duas situações?
O módulo principal de um programa tem a variável __name__ contendo “__main__”
Para executar um código apenas se o módulo for o principal e não quando ele for importado
![Page 35: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/35.jpg)
![Page 36: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/36.jpg)
Python Enhancement Proposal
São documentos padronizados da comunidade Python Uma PEP propõe um padrão, melhoria,
funcionalidade, estrutura, explicações sobre funcionalidades, etc.
Veja a PEP #0http://www.python.org/dev/peps/pep-0000/
![Page 37: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/37.jpg)
A estrutura dos blocos é definida pelaindentação
Não misturar tabulações com espaços
![Page 38: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/38.jpg)
Quando o caractere # aparece, o interpretador ignora o restante do código até o final da linha
Isso não vale dentro de strings
Para várias linhas use asplas triplas (docstring)Será útil para documentar funções, classes, módulos,
etc.
![Page 39: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/39.jpg)
Tipos básicosint = normalmente 32 bitslong = limitado ao tamanho da memória Há promoção automática de int para long Divisão de inteiros em python < 3 resulta sempre int
![Page 40: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/40.jpg)
Tipos básicosfloat = ponto flutuante de 32 bitscomplex= para números complexos
![Page 41: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/41.jpg)
Construtores ou funções de conversãoint (n)float (n)complex (n)abs (n)
![Page 42: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/42.jpg)
Básicos+, -, *, /, **
Inteiros%, //
Bit a Bit&, |, ^, ~, >>, <<
![Page 43: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/43.jpg)
Módulo math e outros
![Page 44: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/44.jpg)
Representa o valor nuloEquivalente a False em operações booleanas
Aplicações típicasValor default em parâmetros de funçõesValor de retorno de funções que será descartado Como void de C/C++
![Page 45: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/45.jpg)
Constantes True e FalseOcorre conversão automática entre tipos
Conversão explícita pode ser feita com bool(x)
![Page 46: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/46.jpg)
Relacionais>, <, >=, <=, ==, !=, is, is notSempre retornam um bool
Lógicosand, or, not
![Page 47: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/47.jpg)
str – Sequência de bytes, com aacentuação dependente do encoding
Delimitadas por aspas, apóstrofo ou trêsaspas ou três apóstrofos
![Page 48: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/48.jpg)
Codificaçõesiso-8859-1: padrão ISO Latin-1iso-8859-15: idem, com símbolo € (Euro)cp1252: MS-Windows codepage 1252 ISO Latin-1 aumentado com caracteres usados em
editoração eletrônica (‘’ “” •)utf-8: Unicode codificado em 8 bits compatível com
ASCII até o código 127 utiliza 2 bytes para caracteres não-ASCII padrão recomendado pelo W3C e está sendo adotado
pela maioria dos sistemas
![Page 49: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/49.jpg)
Constantes str ou unicode são interpretadas segundo a codificação declarada num comentário especial no início do arquivo .py
Nós (brasileiros) frequentemente lidamos com textos não ASCII
![Page 50: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/50.jpg)
Use caracteres de formatação, como na printfde C
%s, %d, %f são os mais comuns
![Page 51: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/51.jpg)
Usando type
![Page 52: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/52.jpg)
Usando type
![Page 53: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/53.jpg)
Tuplas são sequências imutáveisnão é possível modificar as referências contidas na
tuplaTuplas constantes são representadas como
sequências de itens entre parênteses
CUIDADO: em certos contextos os parênteses em redor das tuplas podem ser omitidos
![Page 54: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/54.jpg)
Listas são coleções de itens heterogêneos que podem ser acessados sequencialmente ou indexados
São mutáveisConstantes do tipo lista são delimitadas por
colchetes []
![Page 55: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/55.jpg)
Facilmente você pode criar uma lista numérica com
range([inicio,] fim[, passo])
Retorna uma sequência numérica conforme os argumentos dados Normalmente usada em laços for
![Page 56: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/56.jpg)
Os tipos string, lista, tupla, buffer são sequências
Coleção ordenada e iterável de itens
Operaçõess[i] = acessa um items[-i] = acessa um item pelo finals+z = concatenas*n = produz n cópias de s concatenadase in s = elemento e está em s?e not in s = elemento e não está em s?
![Page 57: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/57.jpg)
Operações de slicings[a:b] cópia de a (inclusive) até b (exclusive)s[a:] cópia a partir de a (inclusive)s[:b] cópia até b (exclusive)s[:] cópia total de ss[a:b:n] cópia de n em n itens
Atribuição s[2:5] = [6,3,2,0]Aplicável somente em sequências mutáveis
![Page 58: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/58.jpg)
Dicionários são estruturas de dados queimplementam mapeamentos
coleções de pares chave:valor que podem ser recuperados pela chaveA chave pode ser qualquer imutável
![Page 59: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/59.jpg)
“List comprehensions”
Produz uma lista a partir de qualquer objeto iterável Sintaxe inspirada em Haskell
![Page 60: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/60.jpg)
![Page 61: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/61.jpg)
![Page 62: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/62.jpg)
Inverter a ordem das cartasbaralho.reverse()
Tirar a carta do topobaralho.pop()
Adicionar 4 coringasbaralho.extend([‘Coringa’]*4)
Colocar em ordembaralho.sort() Pelo número de letras: baralho.sort(key=len)
![Page 63: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/63.jpg)
Entrada com input
Saída com print
![Page 64: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/64.jpg)
ifif (expressao):
bloco[elif (expressao):
bloco][else:
bloco]
![Page 65: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/65.jpg)
exemplo
![Page 66: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/66.jpg)
forfor variavel in sequencia:
bloco[else:
bloco]while
while (expressao):bloco
[else:bloco]
![Page 67: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/67.jpg)
Exemplo
![Page 68: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/68.jpg)
Modularizam o códigoComando def inicia a definição de uma funçãoComando return marca o fim da execução da
função e define o resultado a ser devolvido Pode ser None
![Page 69: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/69.jpg)
Exemplo
![Page 70: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/70.jpg)
![Page 71: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/71.jpg)
Ei, não vamos complicar!
![Page 72: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/72.jpg)
Estourar a pilha de execução é “fácil”
E aí, tentou fat(1000)?
![Page 73: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/73.jpg)
Mudando o tamanho da pilha de ativação
![Page 74: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/74.jpg)
Classe file representam arquivos Use a função open (ou construtor file(), são
sinônimos)
abrir arquivo binário para leituraarq = file(‘imagem.png','rb')
abrir arquivo texto para escritaarq = open(‘log.txt','w')
abrir arquivo para acrescentar (append)arq = file(‘imagem.png','a')
![Page 75: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/75.jpg)
Ex.: Lendo um CSV
![Page 76: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/76.jpg)
Operações de E/S são realizadas pelo SO
O módulo os possui diversas variáveis e funções que ajudam um programa Python adequar-se ao SO
os.getcwd() o diretório atualos.chdir(dir) diretório atual para diros.sep caractere que separa componentes de um
caminho ('/' para Unix, '\\' para Windows) os.path.exists(path) diz se path se refere ao
nome de um arquivo existente
![Page 77: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/77.jpg)
Baterias: urllib e re
![Page 78: Tutorial Python - 1](https://reader034.vdocuments.mx/reader034/viewer/2022052303/54972d9eac7959042e8b5298/html5/thumbnails/78.jpg)