Você está na página 1de 9

04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.

13

3.9.13 Vai

3. Uma Introdução Informal ao Python


Nos exemplos a seguir, entrada e saída são diferenciadas pela presença ou ausência de prompts ( >>> e … ):
para repetir o exemplo, você deve digitar tudo após o prompt, quando o prompt aparecer; as linhas que não
começam com um prompt são geradas pelo interpretador. Observe que um prompt secundário em uma linha
isolada em um exemplo significa que você deve digitar uma linha em branco; isso é usado para encerrar um
comando de várias linhas.

Você pode alternar a exibição de prompts e saída clicando em >>>


no canto superior direito de uma caixa de
exemplo. Se você ocultar os prompts e a saída para um exemplo, poderá copiar e colar facilmente as linhas
de entrada em seu interpretador.

Muitos dos exemplos neste manual, mesmo aqueles inseridos no prompt interativo, incluem comentários.
Comentários em Python começam com o caractere hash
# , e se estendem até o final da linha física. Um
comentário pode aparecer no início de uma linha ou após um espaço em branco ou código, mas não dentro
de uma string literal. Um caractere hash dentro de uma string literal é apenas um caractere hash. Como os
comentários são para esclarecer o código e não são interpretados pelo Python, eles podem ser omitidos ao
digitar exemplos.

Alguns exemplos:

# this is the first comment

spam = 1 # and this is the second comment

# ... and now a third!

text = "# This is not a comment because it's inside quotes."

3.1. Usando Python como uma calculadora


Vamos tentar alguns comandos simples do Python. Inicie o interpretador e aguarde o prompt principal, >>> .
(Não deve demorar muito.)

3.1.1. Números¶

O interpretador funciona como uma calculadora simples: você pode digitar uma expressão nele e ele
escreverá o valor. A sintaxe da expressão é direta: os operadores + , - e funcionam * como / na maioria das
outras linguagens (por exemplo, Pascal ou C); parênteses ( () ) podem ser usados ​para agrupamento. Por
exemplo:

>>> 2 + 2
>>>
4

>>> 50 - 5*6

20

>>> (50 - 5*6) / 4

5.0

>>> 8 / 5 # division always returns a floating point number

1.6

Os números inteiros (ex 2 . , 4 , 20 ) possuem tipo int , aqueles com parte fracionária (ex 5.0 . , 1.6 )
possuem tipo
float . Veremos mais sobre tipos numéricos posteriormente no tutorial.

A divisão ( / ) sempre retorna um float. Para fazer a divisão do piso e obter um resultado inteiro (descartando
qualquer resultado fracionário) você pode usar o //
operador; para calcular o resto você pode usar % :

https://docs.python.org/3.9/tutorial/introduction.html#lists 1/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13

3.9.13 Vai

>>> 17 / 3 # classic division returns a float


>>>
5.666666666666667

>>>

>>> 17 // 3 # floor division discards the fractional part

>>> 17 % 3 # the % operator returns the remainder of the division

>>> 5 * 3 + 2 # floored quotient * divisor + remainder

17

Com Python, é possível usar o ** operador para calcular potências [1] :

>>> 5 ** 2 # 5 squared
>>>
25

>>> 2 ** 7 # 2 to the power of 7

128

O sinal de igual ( = ) é usado para atribuir um valor a uma variável. Depois, nenhum resultado é exibido antes
do próximo prompt interativo:

>>> width = 20
>>>
>>> height = 5 * 9

>>> width * height

900

Se uma variável não for “definida” (atribuída a um valor), tentar usá-la resultará em um erro:

>>> n # try to access an undefined variable


>>>
Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'n' is not defined

Há suporte completo para ponto flutuante; operadores com operandos de tipo misto convertem o operando
inteiro em ponto flutuante:

>>> 4 * 3.75 - 1 >>>


14.0

No modo interativo, a última expressão impressa é atribuída à variável


_ . Isso significa que quando você está
usando o Python como uma calculadora de mesa, é um pouco mais fácil continuar os cálculos, por exemplo:

>>> tax = 12.5 / 100


>>>
>>> price = 100.50

>>> price * tax

12.5625

>>> price + _

113.0625

>>> round(_, 2)

113.06

Esta variável deve ser tratada como somente leitura pelo usuário. Não atribua explicitamente um valor a ela -
você criaria uma variável local independente com o mesmo nome, mascarando a variável interna com seu
comportamento mágico.

Além de int e float , o Python suporta outros tipos de números, como Decimal e Fraction . Python
também tem suporte embutido para números complexos e usa o sufixo j ou J para indicar a parte imaginária
https://docs.python.org/3.9/tutorial/introduction.html#lists 2/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
também tem suporte embutido para números complexos e usa o sufixo j ou J para indicar a parte imaginária
3.9.13
(por exemplo 3+5j , ). Vai

3.1.2. Cordas

Além de números, o Python também pode manipular strings, que podem ser expressas de várias maneiras.
Eles podem ser colocados entre aspas simples ( '...' ) ou aspas duplas ( "..." ) com o mesmo resultado
[2] . \ pode ser usado para escapar aspas:

>>> 'spam eggs' # single quotes


>>>
'spam eggs'

>>> 'doesn\'t' # use \' to escape the single quote...

"doesn't"

>>> "doesn't" # ...or use double quotes instead

"doesn't"

>>> '"Yes," they said.'

'"Yes," they said.'

>>> "\"Yes,\" they said."

'"Yes," they said.'

>>> '"Isn\'t," they said.'

'"Isn\'t," they said.'

No interpretador interativo, a string de saída é colocada entre aspas e os caracteres especiais são escapados
com barras invertidas. Embora às vezes isso possa parecer diferente da entrada (as aspas podem mudar), as
duas strings são equivalentes. A string é colocada entre aspas duplas se a string contiver aspas simples e
sem aspas duplas, caso contrário, será colocada entre aspas simples. A print() função produz uma saída
mais legível, omitindo as aspas e imprimindo caracteres de escape e especiais:

>>> '"Isn\'t," they said.'


>>>
'"Isn\'t," they said.'

>>> print('"Isn\'t," they said.')

"Isn't," they said.

>>> s = 'First line.\nSecond line.' # \n means newline

>>> s # without print(), \n is included in the output

'First line.\nSecond line.'

>>> print(s) # with print(), \n produces a new line

First line.

Second line.

Se você não quiser que os caracteres precedidos por \ sejam interpretados como caracteres especiais, você
pode usar strings brutas adicionando um r antes da primeira aspa:

>>> print('C:\some\name') # here \n means newline!


>>>
C:\some

ame

>>> print(r'C:\some\name') # note the r before the quote

C:\some\name

Os literais de string podem abranger várias linhas. Uma maneira é usar aspas triplas:
"""...""" ou
'''...''' . O fim das linhas é incluído automaticamente na string, mas é possível evitar isso adicionando
um \ no final da linha. O exemplo a seguir:

print("""\

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

""")

produz a seguinte saída (observe que a nova linha inicial não está incluída):
https://docs.python.org/3.9/tutorial/introduction.html#lists 3/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
produz a seguinte saída (observe que a nova linha inicial não está incluída):
3.9.13 Vai

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

Strings podem ser concatenadas (coladas) com o + operador e repetidas com * :

>>> # 3 times 'un', followed by 'ium'


>>>
>>> 3 * 'un' + 'ium'

'unununium'

Dois ou mais literais de string (ou seja, aqueles entre aspas) próximos um do outro são automaticamente
concatenados.

>>> 'Py' 'thon'


>>>
'Python'

Esse recurso é particularmente útil quando você deseja quebrar strings longas:

>>> text = ('Put several strings within parentheses '


>>>
... 'to have them joined together.')

>>> text
'Put several strings within parentheses to have them joined together.'

Isso só funciona com dois literais, não com variáveis ​ou expressões:

>>> prefix = 'Py'


>>>
>>> prefix 'thon' # can't concatenate a variable and a string literal

File "<stdin>", line 1

prefix 'thon'

SyntaxError: invalid syntax

>>> ('un' * 3) 'ium'

File "<stdin>", line 1

('un' * 3) 'ium'

SyntaxError: invalid syntax

Se você quiser concatenar variáveis ​ou uma variável e um literal, use + :

>>> prefix + 'thon'


>>>
'Python'

Strings podem ser indexadas (subscritas), com o primeiro caractere tendo índice 0. Não há um tipo de
caractere separado; um caractere é simplesmente uma string de tamanho um:

>>> word = 'Python'


>>>
>>> word[0] # character in position 0

'P'

>>> word[5] # character in position 5

'n'

Os índices também podem ser números negativos, para começar a contar da direita:

>>> word[-1] # last character


>>>
'n'

d[ 2] # d l t h t
https://docs.python.org/3.9/tutorial/introduction.html#lists 4/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
>>> word[-2] # second-last character

'o'
3.9.13 Vai

>>> word[-6]

'P'

Observe que, como -0 é igual a 0, os índices negativos começam em -1.

Além da indexação, o fatiamento também é suportado. Enquanto a indexação é usada para obter caracteres
individuais, o fatiamento permite obter a substring:

>>> word[0:2] # characters from position 0 (included) to 2 (excluded)


>>>
'Py'

>>> word[2:5] # characters from position 2 (included) to 5 (excluded)

'tho'

Os índices de fatia têm padrões úteis; um primeiro índice omitido tem como padrão zero, um segundo índice
omitido tem como padrão o tamanho da string que está sendo fatiada.

>>> word[:2] # character from the beginning to position 2 (excluded)


>>>
'Py'

>>> word[4:] # characters from position 4 (included) to the end

'on'

>>> word[-2:] # characters from the second-last (included) to the end

'on'

Observe como o início é sempre incluído e o fim sempre excluído. Isso garante que é sempre igual a : s[:i]
+ s[i:] s

>>> word[:2] + word[2:]


>>>
'Python'

>>> word[:4] + word[4:]

'Python'

Uma maneira de lembrar como as fatias funcionam é pensar nos índices como apontando
entre os
caracteres, com a borda esquerda do primeiro caractere numerada como 0. Então a borda direita do último
caractere de uma string de n caracteres tem o índice n , por exemplo:

+---+---+---+---+---+---+

| P | y | t | h | o | n |

+---+---+---+---+---+---+

0 1 2 3 4 5 6

-6 -5 -4 -3 -2 -1

A primeira linha de números fornece a posição dos índices 0…6 na string; a segunda linha fornece os índices
negativos correspondentes. A fatia de i a
j consiste em todos os caracteres entre as arestas rotuladas i e j ,
respectivamente.

Para índices não negativos, o comprimento de uma fatia é a diferença dos índices, se ambos estiverem
dentro dos limites. Por exemplo, o comprimento de word[1:3] é 2.

A tentativa de usar um índice muito grande resultará em um erro:

>>> word[42] # the word only has 6 characters


>>>
Traceback (most recent call last):

File "<stdin>", line 1, in <module>

IndexError: string index out of range

No entanto índices de fatia fora do intervalo são tratados normalmente quando usados para fatiar:
https://docs.python.org/3.9/tutorial/introduction.html#lists 5/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
No entanto, índices de fatia fora do intervalo são tratados normalmente quando usados ​para fatiar:
3.9.13 Vai

>>> word[4:42]
>>>
'on'

>>> word[42:]

''

As strings do Python não podem ser alteradas — elas são imutáveis . Portanto, atribuir a uma posição
indexada na string resulta em um erro:

>>> word[0] = 'J'


>>>
Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

>>> word[2:] = 'py'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment

Se você precisar de uma string diferente, crie uma nova:

>>> 'J' + word[1:]


>>>
'Jython'

>>> word[:2] + 'py'

'Pypy'

A função len() interna retorna o comprimento de uma string:

>>> s = 'supercalifragilisticexpialidocious'
>>>
>>> len(s)

34

Veja também:

Tipo de sequência de texto — str


Strings são exemplos de tipos de sequência e suportam as operações comuns suportadas por esses
tipos.
Métodos de string
Strings suportam um grande número de métodos para transformações e pesquisas básicas.

Literais de string formatados


Literais de string que possuem expressões incorporadas.
Sintaxe da String de Formato
Informações sobre formatação de strings com str.format() .

Formatação de String no estilo printf


As antigas operações de formatação invocadas quando strings são o operando esquerdo do
% operador são descritas com mais detalhes aqui.

3.1.3. Listas

Python conhece vários tipos de dados compostos , usados ​para agrupar outros valores. A mais versátil é a list
, que pode ser escrita como uma lista de valores separados por vírgula (itens) entre colchetes. As listas
podem conter itens de tipos diferentes, mas geralmente todos os itens têm o mesmo tipo.

https://docs.python.org/3.9/tutorial/introduction.html#lists 6/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13

>>> squares = [1, 4, 9, 16, 25]


>>>
3.9.13
>>> squares
Vai

[1, 4, 9, 16, 25]

Assim como as strings (e todos os outros tipos de sequência integrados ), as listas podem ser indexadas e
divididas:

>>> squares[0] # indexing returns the item


>>>
1

>>> squares[-1]

25

>>> squares[-3:] # slicing returns a new list

[9, 16, 25]

Todas as operações de fatia retornam uma nova lista contendo os elementos solicitados. Isso significa que a
fatia a seguir retorna uma
cópia superficial da lista:

>>> squares[:]
>>>
[1, 4, 9, 16, 25]

As listas também suportam operações como concatenação:

>>> squares + [36, 49, 64, 81, 100]


>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Ao contrário das strings, que são imutáveis , as listas são do tipo mutável , ou seja, é possível alterar seu
conteúdo:

>>> cubes = [1, 8, 27, 65, 125] # something's wrong here


>>>
>>> 4 ** 3 # the cube of 4 is 64, not 65!

64

>>> cubes[3] = 64 # replace the wrong value

>>> cubes

[1, 8, 27, 64, 125]

Você também pode adicionar novos itens no final da lista, usando o append() método (veremos mais sobre
métodos posteriormente):

>>> cubes.append(216) # add the cube of 6


>>>
>>> cubes.append(7 ** 3) # and the cube of 7

>>> cubes

[1, 8, 27, 64, 125, 216, 343]

A atribuição a fatias também é possível, e isso pode até alterar o tamanho da lista ou limpá-la completamente:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']


>>>
>>> letters

['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> # replace some values

>>> letters[2:5] = ['C', 'D', 'E']

>>> letters

['a', 'b', 'C', 'D', 'E', 'f', 'g']

>>> # now remove them

>>> letters[2:5] = []

>>> letters

['a', 'b', 'f', 'g']

>>> # clear the list by replacing all the elements with an empty list

>>> letters[:] = []

https://docs.python.org/3.9/tutorial/introduction.html#lists 7/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
e e s[ ] []

>>> letters

3.9.13 Vai
[]

A função integrada len() também se aplica a listas:

>>> letters = ['a', 'b', 'c', 'd']


>>>
>>> len(letters)

É possível aninhar listas (criar listas contendo outras listas), por exemplo:

>>> a = ['a', 'b', 'c']


>>>
>>> n = [1, 2, 3]

>>> x = [a, n]

>>> x

[['a', 'b', 'c'], [1, 2, 3]]

>>> x[0]
['a', 'b', 'c']

>>> x[0][1]

'b'

3.2. Primeiros passos para a programação


Claro, podemos usar Python para tarefas mais complicadas do que somar dois e dois. Por exemplo, podemos
escrever uma subsequência inicial da
série de Fibonacci da seguinte forma:

>>> # Fibonacci series:


>>>
... # the sum of two elements defines the next

... a, b = 0, 1

>>> while a < 10:

... print(a)
... a, b = b, a+b

...

Este exemplo apresenta vários novos recursos.

A primeira linha contém uma atribuição múltipla : as variáveis a ​e b


simultaneamente obtêm os novos
valores 0 e 1. Na última linha isso é usado novamente, demonstrando que as expressões do lado direito
são todas avaliadas primeiro antes que qualquer uma das atribuições ocorra . As expressões do lado
direito são avaliadas da esquerda para a direita.
O while loop é executado enquanto a condição (aqui: ) permanecer verdadeira. Em Python, como em C,
qualquer valor inteiro diferente de zero é verdadeiro; zero é falso. A condição também pode ser uma string
ou valor de lista, na verdade qualquer sequência; qualquer coisa com comprimento diferente de zero é
verdadeira, sequências vazias são falsas. O teste usado no exemplo é uma comparação simples. Os
operadores de comparação padrão são escritos da mesma forma que em C: (menor que), (maior que),
(igual a), (menor que ou igual a), (maior que ou igual a) e (diferente de). a < 10 < > == <= >= !=
The body of the loop is indented: indentation is Python’s way of grouping
statements. At the interactive
prompt, you have to type a tab or space(s) for
each indented line. In practice you will prepare more
complicated input
for Python with a text editor; all decent text editors have an auto-indent
facility. When a
compound statement is entered interactively, it must be
followed by a blank line to indicate completion
https://docs.python.org/3.9/tutorial/introduction.html#lists 8/9
04/07/2022 19:26 3. Uma introdução informal ao Python — documentação do Python 3.9.13
p y, y p
3.9.13 Vai

(since the parser cannot


guess when you have typed the last line). Note that each line within a basic
block
must be indented by the same amount.
The print() function writes the value of the argument(s) it is given.
It differs from just writing the
expression you want to write (as we did
earlier in the calculator examples) in the way it handles multiple
arguments,
floating point quantities, and strings. Strings are printed without quotes,
and a space is inserted
between items, so you can format things nicely, like
this:

>>> i = 256*256
>>>
>>> print('The value of i is', i)

The value of i is 65536

The keyword argument end can be used to avoid the newline after the output,
or end the output with a
different string:

>>> a, b = 0, 1
>>>
>>> while a < 1000:

... print(a, end=',')

... a, b = b, a+b

...

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

Footnotes

[1] Since ** has higher precedence than - , -3**2 will be


interpreted as -(3**2) and thus result in -9 . To
avoid this
and get 9 , you can use (-3)**2 .

[2] Ao contrário de outros idiomas, caracteres especiais como, por exemplo, \n têm o mesmo significado
com aspas simples ( '...' ) e duplas ( "..." ). A única diferença entre os dois é que entre aspas
simples você não precisa escapar " (mas você tem que escapar \' ) e vice-versa.

https://docs.python.org/3.9/tutorial/introduction.html#lists 9/9

Você também pode gostar