1 of 34

Python

Primeiros passos

2 of 34

Python no

universo das linguagens

https://spectrum.ieee.org/top-programming-languages/

3 of 34

O ambiente de desenvolvimento

  • On line
    • Python Shel https://www.python.org/shell/
    • Replit

https://repl.it/languages/python3

    • Codingground

https://www.tutorialspoint.com/execute_python_online.php

4 of 34

Baixe o Python

  • Para MS-Windows, versão 3.9.5

https://www.python.org/downloads/

  • Para Linux... Pacotes

apt-cache search python* apt-get install python*

  • Documentações, tutoriais etc https://wiki.python.org/moin/BeginnersGuide/Programmers

5 of 34

Após a instalação do PyCharm

6 of 34

Oi mundo!

Verifiquem suas instalações.

7 of 34

O Shell do Python

Esse é o modo “interativo” do Python, onde instruções são informadas uma a uma e

imediatamente executas.

8 of 34

Google Colab

  • https://colab.research.google.com/

9 of 34

Versão no colab

import sys

print( sys.version_info )

10 of 34

Escrevendo e rodando em Python

  • Em um editor de arquivo texto (vi, vim, notepad....), crie o arquivo oimundo.py e

transcreva:

s = “oi “

s2 = “ mundo!”

print( s + s2 )

  • Na linha de comando do S.O. (cmd.exe no Windows ou bash no linux) digite: python oimundo.py

11 of 34

Compilado x interpretado

  • O Python compila o código-fonte (script) para uma versão intermediária chamada bytecode.
  • O bytecode é interpretado pela VM do Python

https://www.sciencedirect.com/topics/computer-science/interpreted- language#:~:text=Python%20is%20an%20interpreted%20language,like%20code%20for%20these%20languages.

Considerações:

  1. Fácil de aprender
  2. Pode-se codificar em diferentes paradigmas
  3. “Extensível”
  4. Comunidade aberta e ativa

12 of 34

Antes de programar...

  • Um programa é um algoritmo codificado segundo as regras de uma linguagem de

programação.

  • Algoritmo é um conjunto de instruções finita que descrevem como um problema

pode ser resolvido.

  • Todo programa/algoritmo manipulam dados, ou seja, o programa recebe dados (entrada), processa alguma coisa em decorrência desses dados e produz novos dados (saída). Os dados são sempre referenciados nos programas pelas variáveis.

13 of 34

Variáveis

  • Na matemática: ax+by+c=0 ou

f(x) = (ax+c) / b

  • Em informática:

as variáveis são “identificadas” por um nome.

Para cada LP existem um conjunto de termos que não podem ser utilizados como identificados – palavras-reservadas.

As LP podem ser CASE-SENSITIVE ou não.

  • Associado a cada variável existe um “tipo” e um “valor/conteúdo”

Quando a LP exige a declaração da variável, geralmente, é chamada de fortemente tipada.

  • O conteúdo/valor ou dado pode ser de diferentes naturezas e eventualmente indicar o tipo da variável. A natureza pode ser numérica, caracteres, lógicos, objetos etc.

Ex: 12 não é o mesmo que “12”

14 of 34

Variáveis em Python

  • Toda variável é um objeto.

  • Python é CASE-SENSITIVE, ou seja, var e VAR são dois identificadores válidos e distintos.

  • Python é considerada fortemente tipada, mas não precisa ter as variáveis declaradas antes de referenciá-las em expressões. Passam a existir no momento que recebem um valor/conteúdo.

15 of 34

Identificadores em Python

  • Um identificador Python é um nome usado para identificar uma variável, função, classe, módulo ou outro objeto. Um identificador começa com uma letra A a Z ou a a z ou um sublinhado (_) seguido de zero ou mais letras, sublinhados e dígitos (0 a 9).
  • Algumas convenções:
    • O nome das classes começam com a primeira letra em maiúsculas;
    • Identificadores em classes iniciados com um único (_) indica campos privados
    • Iniciando com _ _ indica que é fortemente privado
    • Se o identificador também terminar com dois , o identificador será considerado especial e

definido pela linguagem

16 of 34

Palavras reservadas

and

assert

break

class

continue

del

elif

else

except

exec

for

from

global

if

import

is

lambda

not

or

pass

raise

return

try

while

with

and

assert

break

class

continue

17 of 34

Tipos de dados

O Python 3 possui 5 tipos de dados:

  • Números
    • int
    • long
    • float
    • complex
  • String
  • Bool (True/False)
  • List
  • Tuple
  • Dictionary

int

long

float

complex

10

51924361L

0.0

3.14j

100

-0x19323L

15.20

45.j

-786

0122L

-21.9

9.322e-36j

080

0xDEFABCECBDAECBFBAEl

32.3+e18

.876j

-0490

535633629843L

-90.

-.6545+0J

-0x260

-052318172735L

-32.54e100

3e+26J

0x69

-4721885298529L

70.2-E12

4.53e-7j

18 of 34

Strings

Exemplos: #!/usr/bin/python str = 'Hello World!'

print( str )

print( str[0] )

print( str[2:5] )

print( str[2:] )

print( str * 2 )

# imprime o conteúdo de str (Hello World!)

# imprime apenas o 1o caractere (H) # imprime da 3a a 5 letra (llo)

# imprime da 3a letra até o final

# repete o conteúdo de str duas vezes

print( str + “ test“ ) # imprime o resultado da concatenação de str com test

19 of 34

Estrutura de Dados

  • As estruturas disponíveis em Python são: listas (lists), registros (tuples) e dicionários

(dictionaries – map)

  • Conjuntos (sets) estão disponíveis na biblioteca sets (a partir da versão 2.5)

  • As listas são como vetores/matrizes unidimensionais, mas pode-se utilizar listas de listas

  • Os dicionários são matrizes associativas

  • As tuplas são conjuntos de campos pré-definidos.

20 of 34

Conversão de tipos de dados

converte string para int converte string para long converte string para float

converte um obj para string

converte um int para um caractere converte um int para um caractere unicode converte um char para um int

  • int( str [,base] )
  • long( str [,base] )
  • float( str )
  • complex( real [,imag] ) cria um n. complexo
  • str( x )
  • repr( x )
  • eval( str )
  • chr( x )
  • unichr( x )
  • ord( n )
  • hex( n ), oct(x) converte um número para hexadecimal, octal.
  • tuple( s ) list( s ) set(s) dict( s ) frozenset( s )

21 of 34

Operadores

  • Aritméticos:

+ - /

* %

  • Relacionais:

<

<=

=> >

== !=

  • Lógicos:

and

or

  • Bit a bit

<< >>

& | ~ ^

A

B

and

Or

True

True

True

True

True

False

False

True

False

True

False

True

False

False

False

False

22 of 34

Sintaxe geral

  • Não existem delimitadores de final de instrução
  • Blocos são especificados por indentação (deslocamentos a direita, indicando subordinação a instrução anterior)
  • Declarações que esperam um nível de indentação terminam com dois-pontos (:)
  • O símbolo # é utilizado para identificar comentário de linha, tudo que é colocado após o símbolo não será reconhecido pelo compilador
  • Os valores são atribuídos da direita para esquerda
  • O símbolo de igual (=) é utilizado para atribuição, enquanto que o duplo símbolo de igual (==) é utilizado para comparação

23 of 34

Controle do fluxo de execução

  • Bloco/Instrução condicional

if expressão_lógica : comando1

else:

comando2

24 of 34

Repetição (loops)

  • while condição : comandos
  • Exemplo 1:

conta = 1

while conta<10: print(conta) conta += 1

  • Exemplo 2:

condicao = True while(condicao):

print("BLOCO while() e condicao==True")

condicao = False else:

print("BLOCO ELSE e condicao==False")

25 of 34

Laço for

  • for iterating_var in sequence/list :

comandos

  • Exemplo #!/usr/bin/python

for letter in 'Python‘ :

print( 'Current Letter :', letter )

fruits = ['banana', 'apple', 'mango'] for fruit in fruits :

print( 'Current fruit :', fruit )

print( “fim“ )

26 of 34

Laço for com índice

  • Exemplo

#!/usr/bin/python

fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)):

print ( 'Current fruit :', fruits[index] )

print( "Good bye!“ )

27 of 34

Cuidado com a indentação...

28 of 34

Linhas grandes...

>>>total = \

a + \ b

>>> total

3

29 of 34

Funções de Entrada/Saída (E/S)

  • print( obj )

from help:

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:

end:

string inserted between values, default a space.

string appended after the last value, default a newline.

flush: whether to forcibly flush the stream.

30 of 34

Funções de Entrada/Saída (E/S)

input(prompt=None, /)

From help:

  • Read a string from standard input. The trailing newline is stripped. The prompt string, if given, is printed to standard output without a trailing newline before reading input.

If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.

On *nix systems, readline is used if available.

31 of 34

Exemplos de E/S:

  • Para ler String a partir do teclado:

str = input()

  • Para ler um inteiro a partir do teclado: num_int = int( input() )
  • Para ler um float a partir do teclado: num_float = float(input())

  • Para ler um número:

num = eval( input() )

  • Para descobrir o tipo de uma variável: type( nome )

32 of 34

Parâmetros da linha de comando

No shell o usuário pode entrar com os parâmetros, exemplo:

  1. python test.py arg1 arg2 arg3
  2. python test.py –i arq1.txt -o arq2.txt

No programa:

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'

print 'Argument List:', str(sys.argv)

Para tratar o caso 2, existe a opção “getopt.getopt ”

33 of 34

#!/usr/bin/python

import sys, getopt

def main(argv): inputfile = '' outputfile = '' try:

opts, args = getopt.getopt(argv, \ "hi:o:",["ifile=","ofile="])

except getopt.GetoptError:

print 'test.py -i <inputfile> -o <outputfile>'

sys.exit(2)

for opt, arg in opts: if opt == '-h':

print 'test.py -i <inputfile> -o <outputfile>' sys.exit()

elif opt in ("-i", "--ifile"):

inputfile = arg

elif opt in ("-o", "--ofile"): outputfile = arg

print 'Input file is "', inputfile

print 'Output file is "', outputfile

if name == " main ":

main(sys.argv[1:])

Fim do arquivo test.py

Ao executar este programa:

$ python test.py –h

usage: test.py -i <inputfile> -o

<outputfile>

$ test.py -i BMP -o

usage: test.py -i <inputfile> -o

<outputfile>

$ test.py -i inputfile Input file is " inputfile Output file is "

34 of 34

Referências

  • Python Brasil

http://python.org.br/

  • TutoriaisPoint

https://www.tutorialspoint.com/python/python_basic_syntax.htm

  • Tutorial - Learn Python in 10 minutes https://www.stavros.io/tutorials/python/