Noções básicas

Apenas a imprimir hello world não é suficiente, não é? Você quer fazer mais do que isso - quer tomar alguma contribuição, manipulá-la e tirar algo disso. Podemos alcançar isso em Python usando constantes e variáveis, e também aprenderemos alguns outros conceitos neste capítulo.

Comentários

Comentários estão a qualquer texto à direita do # símbolo e é principalmente útil como notas para o leitor do programa.

Por exemplo:

print('hello world') # Note that print is a function

ou:

# Note that print is a function
print('hello world')

Use tantos comentários úteis como você pode em seu programa para:

  • explicar suposições
  • explicar decisões importantes
  • explique detalhes importantes
  • explique os problemas que você está tentando resolver
  • explique os problemas que você está tentando superar em seu programa, etc.

O código diz como, os comentários devem dizer o porquê.

Isso é útil para os leitores do seu programa para que eles possam facilmente entender o que o programa está fazendo. Lembre-se, essa pessoa pode ser você mesmo após seis meses!

Constantes literais

Um exemplo de uma constante literal é um número como 5, 1.23, ou uma string como 'This is a string' ou "It's a string!".

É chamado literal porque é literal - você usa seu valor literalmente. O número 2 sempre se representa e nada mais - é uma constante porque seu valor não pode ser alterado. Por isso, tudo isso é referido como constantes literais.

Numeros

Os números são principalmente de dois tipos: números inteiros e flutuadores.

Um exemplo de um número inteiro é 2 que é apenas um número inteiro.

Exemplos de números de ponto flutuante (ou floats para breve) são 3.23 e 52.3E-4. A E A notação indica poderes de 10. Neste caso, 52.3E-4 significa 52.3 * 10^-4^.

Nota para Programadores Experientes

Não há separadas long. A int tipo pode ser um número inteiro de qualquer tamanho.

Strings

Uma string é uma seqüência de caracteres. As strings são basicamente apenas um monte de palavras.

Você estará usando strings em quase todos os programas Python que você escreve, então preste atenção na parte a seguir.

Citação única

Você pode especificar seqüências de caracteres usando aspas simples, como 'Quote me on this'.

Todos os espaços em branco, ou seja, espaços e guias, dentro das citações, são preservados como é.

Citação Dupla

As strings em aspas duplas funcionam exatamente da mesma maneira que as strings com aspas simples. Um exemplo é "What's your name?".

Citação Tripla

Você pode especificar cadeias de várias linhas usando aspas triplas - (""" or '''). Você pode usar aspas simples e aspas duplas livremente nas citações triplas. Um exemplo é:

'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

As strings são imutáveis

Isso significa que, uma vez que você criou uma string, você não pode alterá-la. Embora isso possa parecer uma coisa ruim, realmente não é. Vamos ver por que isso não é uma limitação nos vários programas que vemos mais tarde.

Nota para Programadores C / C

Não há separadas char tipo de dados em Python. Não há necessidade real e tenho certeza de que não vai perder.

Nota para programadores Perl / PHP

Lembre-se de que as strings single-quoted e as strings duplas são as mesmas - elas não diferem de forma alguma.

O método de formato

Às vezes, podemos querer construir strings de outras informações. É aqui que o método format() é útil.

Salve as seguintes linhas como um arquivo str_format.py:

age = 20
name = 'Swaroop'

print('{0} was {1} years old when he wrote this book'.format(name, age))
print('Why is {0} playing with that python?'.format(name))

Saida:

$ python str_format.py
Swaroop was 20 years old when he wrote this book
Why is Swaroop playing with that python?

Como funciona

Uma string pode usar certas especificações e, posteriormente, a format O método pode ser chamado para substituir essas especificações por argumentos correspondentes ao format method.

Observe o primeiro uso em que usamos {0} e isso corresponde à variável name qual é o primeiro argumento para o método de formato. Da mesma forma, a segunda especificação é {1} correspondendo a age qual é o segundo argumento para o método de formato. Observe que o Python começa a contar de 0, o que significa que a primeira posição está no índice 0, a segunda posição está no índice 1 e assim por diante.

Observe que poderíamos ter alcançado o mesmo usando a concatenação de Cadeia de caracteres:

name  ' is '  str(age)  ' years old'

Mas isso é muito mais feio e propenso a erros. Em segundo lugar, a conversão para string seria feita automaticamente pelo format método em vez da conversão explícita para as strings necessárias neste caso. Em terceiro lugar, ao usar o format método, podemos mudar a mensagem sem ter que lidar com as variáveis usadas e vice-versa.

Observe também que os números são opcionais, então você também pode ter escrito como:

age = 20
name = 'Swaroop'

print('{} was {} years old when he wrote this book'.format(name, age))
print('Why is {} playing with that python?'.format(name))

que dará a mesma saída exata que o programa anterior.

O que Python faz no format O método é que ele substitui cada valor do argumento pelo local da especificação. Pode haver especificações mais detalhadas, como:

# decimal (.) precision of 3 for float '0.333'
print('{0:.3f}'.format(1.0/3))
# fill with underscores (_) with the text centered
# (^) to 11 width '___hello___'
print('{0:_^11}'.format('hello'))
# keyword-based 'Swaroop wrote A Byte of Python'
print('{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python'))

Saida:

0.333
___hello___
Swaroop wrote A Byte of Python

Como estamos discutindo a formatação, note que print sempre termina com um personagem invisível de "nova linha" (\n) de modo que repetidas chamadas para print Todos serão impressos em uma linha separada cada. Para evitar que este caractere da nova linha seja impresso, você pode especificar que ele deve end com um espaço em branco:

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

A saída é:

ab

Ou você pode end com um espaço:

print('a', end=' ')
print('b', end=' ')
print('c')

A saída é:

a b c

Seqüências de escape

Suponha, você quer ter uma string que contenha uma única citação ('), Como você especificará essa string? Por exemplo, a string é "What's your name?". Você não pode especificar 'What's your name?' porque o Python será confundido em relação a onde a cadeia começa e termina. Então, você precisará especificar que essa citação única não indica o fim da string. Isso pode ser feito com a ajuda do que é chamado de sequência de fuga. Você especifica a citação única como \' : observe a barra invertida. Agora, você pode especificar a string como 'What\'s your name?'.

Outra maneira de especificar essa string específica seria "What's your name?" isto é, usando aspas duplas. Da mesma forma, você precisa usar uma seqüência de escape para usar uma cotação dupla em uma string com citações duplas. Além disso, você deve indicar a barra invertida usando a seqüência de escape \\.

E se você quisesse especificar uma string de duas linhas? Uma maneira é usar uma seqüência de citações triplas citadas como mostrado anteriormente ou você pode usar uma seqüência de escape para o caractere da nova linha - \n para indicar o início de uma nova linha. Um exemplo é:

'This is the first line\nThis is the second line'

Outra sequência de escape útil para saber é a guia: \t. Há muitas outras seqüências de escape, mas mencionei apenas as mais úteis aqui.

Uma coisa a notar é que, em uma string, uma única barra invertida no final da linha indica que a string é continuada na próxima linha, mas nenhuma nova linha é adicionada. Por exemplo:

"This is the first sentence. \
This is the second sentence."

é equivalente a

"This is the first sentence. This is the second sentence."

Raw String

Se você precisa especificar algumas strings onde nenhum processamento especial, como seqüências de escape, é tratado, então o que você precisa é especificar uma raw string por prefixo r ou R para a string. Um exemplo é:

r"Newlines are indicated by \n"

Observação para usuários de expressões regulares/strong>

Sempre use strings cruas ao lidar com expressões regulares. Caso contrário, um monte de backwhacking pode ser necessário. Por exemplo, as backreferências podem ser referidas como '\\1' ou r'\1'.

Variável

O uso de apenas constantes literais pode em breve tornar-se chato - precisamos de alguma maneira de armazenar qualquer informação e manipulá-las também. Aqui é onde variáveis Entre na foto. As variáveis são exatamente o que o nome implica - seu valor pode variar, ou seja, você pode armazenar qualquer coisa usando uma variável. As variáveis são apenas partes da memória do seu computador onde você armazena alguma informação. Ao contrário das constantes literais, você precisa de algum método para acessar essas variáveis e, portanto, você lhes dá nomes.

Identificação Nomeação

As variáveis são exemplos de identificadores. Identificadores são nomes dados para identificar algo. Existem algumas regras que você deve seguir para identificar os identificadores:

  • O primeiro caractere do identificador deve ser uma letra do alfabeto (maiúsculas ASCII ou minúsculas ASCII ou personagem Unicode) ou um sublinhado que você deve seguir para identificar os identificadores (_).
  • O resto do nome do identificador pode consistir em letras (caracteres ASCII maiúsculo ou minúsculo ASCII ou Unicode), sublinhados (_) or digits (0-9).
  • Os nomes dos identificadores diferenciam maiúsculas de minúsculas. Por exemplo, myname e myName não são os mesmo. Observe as letras minúsculas n no primeiro e na maiúscula N no ultimo.
  • Exemplos de validos nomes de identificadores são i, name_2_3. Exemplos de invalidos nomes de identificadores são 2things, this is spaced out, my-name e >a1b2_c3.

Tipos de dados

As variáveis podem conter valores de diferentes tipos chamados tipos de dados. Os tipos básicos são números e strings, que já discutimos. Em capítulos posteriores, veremos como criar nossos próprios tipos usando classes.

Objeto

Lembre-se, Python se refere a qualquer coisa usada em um programa como um objeto. Isto é significado no sentido genérico. Em vez de dizer "o algo"', nós dizemos "o objeto".

Nota para usuários de programação orientada a objetos:

Python é fortemente orientado a objetos no sentido de que tudo é um objeto, incluindo números, cadeias e funções.

Agora veremos como usar variáveis junto com constantes literais. Salve o exemplo a seguir e execute o programa.

Como escrever programas Python

Doravante, o procedimento padrão para salvar e executar um programa Python é o seguinte:

Para PyCharm

  1. Abra PyCharm.
  2. Crie um novo arquivo com o nome do arquivo mencionado.
  3. Digite o código do programa fornecido no exemplo.
  4. Clique com o botão direito do mouse e execute o arquivo atual.

NOTA: sempre que você precisa fornecer argumentos de linha de comando, clique em Run -> Edit Configurations e digite os argumentos no Script parameters: seção e clique no botão OK:

PyCharm command line arguments

Para outros editores

  1. Abra seu editor de escolha.
  2. Digite o código do programa fornecido no exemplo.
  3. Salve-o como um arquivo com o nome do arquivo mencionado.
  4. Execute o intérprete com o comando python program.py para executar o programa.

Exemplo: Usando variáveis e constantes literais

Digite e execute o seguinte programa:

# Filename : var.py
i = 5
print(i)
i = i  1
print(i)

s = '''This is a multi-line string.
This is the second line.'''
print(s)

Output:

5
6
This is a multi-line string.
This is the second line.

Como funciona

Veja como funciona este programa. Primeiro, atribuímos o valor constante literal 5 para a variável i usando o operador de atribuição (=). Esta linha é chamada de declaração porque afirma que algo deve ser feito e neste caso, nós conectamos o nome da variável i ao valor 5. Em seguida, imprimimos o valor de i usando o print declaração que, sem surpresa, apenas imprime o valor da variável na tela.

Então, adicionamos 1 ao valor armazenado em i e guarde-o de volta. Em seguida, imprimimos e, esperançosamente, obtemos o valor 6.

Da mesma forma, atribuímos a string literal à variável s e depois imprima.

Nota para programadores de linguagem estática

As variáveis são usadas apenas atribuindo-lhes um valor. Não é necessária nenhuma declaração ou definição de tipo de dados.

Linha lógica e física

Uma linha física é o que você ve quando você escreve o programa. Uma linha lógica é o que Python sees como uma declaração única. Python assume implicitamente que cada um linha física corresponde a um linha lógica.

Um exemplo de uma linha lógica é uma declaração como print 'hello world' - se isso fosse em uma linha por si só (como você vê em um editor), isso também corresponde a uma linha física.

Implícitamente, o Python encoraja o uso de uma única instrução por linha que torna o código mais legível.

Se você quiser especificar mais de uma linha lógica em uma única linha física, então você precisa especificar explicitamente isso usando um ponto e vírgula (;) que indica o fim de uma linha / declaração lógica. Por exemplo:

i = 5
print(i)

é efetivamente o mesmo que

i = 5;
print(i);

que também é o mesmo que

i = 5; print(i);

e o mesmo que

i = 5; print(i)

No entanto, eu fortemente recomendado que você fique com escrevendo um máximo de uma única linha lógica em cada linha física. A idéia é que você nunca deve usar o ponto e vírgula. Na verdade, eu nunca usado ou mesmo visto um ponto-e-vírgula em um programa Python.

Há um tipo de situação em que este conceito é realmente útil: se você tem uma longa linha de código, você pode dividi-lo em várias linhas físicas usando a barra invertida. Isso é referido como junção de linha explícita:

s = 'This is a string. \
This continues the string.'
print(s)

Output:

This is a string. This continues the string.

similarmente,

i = \
5

é o mesmo que

i = 5

Às vezes, existe uma suposição implícita na qual você não precisa usar uma barra invertida. Este é o caso em que a linha lógica tem parênteses iniciais, parênteses iniciais ou uma aparência frouxa inicial, mas não um final. Isso é chamado junção de linha implícita. Você pode ver isso em ação quando escrevemos programas usando lista em capítulos posteriores.

Indentação

Espaço em branco é importante em Python. Na realidade, espaço em branco no início da linha é importante. Isso é chamado indentação. O espaço em branco principal (espaços e guias) no início da linha lógica é usado para determinar o nível de indentação da linha lógica, que por sua vez é usado para determinar o agrupamento de declarações.

Isso significa que declarações que vão juntas devem tem a mesma indentação. Cada um desses conjuntos de instruções é chamado de bloco. Veremos exemplos de como os blocos são importantes em capítulos posteriores.

Uma coisa que você deve lembrar é que o recuo incorreto pode dar origem a erros. Por exemplo:

i = 5
# Error below! Notice a single space at the start of the line
 print('Value is', i)
print('I repeat, the value is', i)

Quando você executa isso, você obtém o seguinte erro:

  File "whitespace.py", line 3
    print('Value is', i)
    ^
IndentationError: unexpected indent

Observe que existe um único espaço no início da segunda linha. O erro indicado por Python nos diz que a sintaxe do programa é inválida, ou seja, o programa não foi escrito corretamente. O que isso significa para você é esse você não pode começar arbitrariamente novos blocos de declarações (exceto o bloco principal padrão que você usou ao longo do tempo, é claro). Os casos em que você pode usar novos blocos serão detalhados em capítulos posteriores, como o controle de fluxo.

Como identar

Use quatro espaços para indentação. Esta é a recomendação oficial da linguagem Python. Os bons editores irão fazer isso automaticamente por você. Certifique-se de usar um número consistente de espaços para indentação, caso contrário seu programa não será executado ou terá um comportamento inesperado.

Nota para programadores de linguagem estática

Python sempre usará indentação para blocos e nunca usará aparelhos. Execute from __future__ import braces para saber mais.

Resumo

Agora que passamos por muitos detalhes gentis, podemos avançar para coisas mais interessantes, como instruções de fluxo de controle. Certifique-se de ficar confortável com o que você leu neste capítulo.