A função que faz isso em Python é a print(). Ela aceita diferentes valores como parâmetro, como um texto. Veja como fica um “Hello World” em Python.
Interface horripilante. Aquelas informações iniciais de Python com sua versão, depois Type “help” e, em seguida, o comando print(“Hello World”), tudo preto e branco, deixa a coisa confusa e com um ar retrô que pode sugerir algo ultrapassado, justamente o que a Python não é.
Algo que podemos fazer com os recursos nativos que vieram junto com a instalação original de Python é rodar o IDLE, um shell mais amigável para esses testes iniciais.
Só ir na tela de procura do Windows e digitar IDLE. Corresponde a última opção do menu que já mostrarmos anteriormente. Veja como um “Hello World” é visualmente mais simpático nele.
As saídas são pintadas em azul, o comando print em rosa, parênteses em preto e um valor literal string, delimitado por aspas duplas, em verde.
Porém, o mais comum, é escrevermos um arquivo de script em Python no editor de nossa preferência, como o Visual Studio Code, e em seguida o rodarmos no shell ou no terminal. Ou ainda, usar uma das IDEs específicas para desenvolvimento em Python, discutidas na seção 3.
Até aqui, vimos que o comando print() pode ser usado para gerar saídas no console, mas ele não é o único a fazer isso. Dá para usar o interpretador como uma calculadora também, colocando expressões matemáticas direto no terminal, como uma soma ou subtração. Qualquer expressão matemática (válida) digitada ali será avaliada após um enter e gerará uma saída. Dessa forma, uma expressão com 2 números, como 1+1, ou outra com vários, como 5+22-13+7, pode ser usada normalmente.
É possível também usar os operadores de multiplicação (*), divisão (/), bem como organizar parênteses para modificar a precedência de operadores (que seguem a mesma definição da matemática, o que está entre parênteses primeiro, depois multiplicação e divisão na mesma ordem de prioridade, e por fim soma e subtração). Existe também o operador resto da divisão (%), como em Javascript, C++ e Java.
Além desses, temos também algumas que merecem destaque. A primeira é a operação de potência ou potenciação. Um número elevado ao outro. O número 2 ao quadrado (2 elevado a potência 2) e 2 ao cubo (2 elevado a potência 3) pode ser representado, em Python, por 2**2 e 2**3, respectivamente. Ou seja, o segundo operando é o valor da potência sobre o primeiro.
É perfeitamente possível também usar números com casas decimais. Para isso, basta usar o ponto (.). Por exemplo, 14.3 * 20 é uma expressão matemática válida. Sendo assim, a operação de raiz ou radiciação está definida também, dado que ela é o inverso da potenciação. Raiz quadrada de 4 pode ser calculada como 4**0.5 ou 4**(1/2). Já a raiz cúbica de 27 como 27**(1/3).
Agora você já pode abrir um terminal em Python no lugar da calculadora para fazer contas! Mas, naturalmente, não é para isso que Python serve. Ela pode ser usada muito além do processamento de expressões matemáticas. Fazem parte da linguagem também os tradicionais operadores lógicos, que são:
Digite todas essas expressões lógicas, marcadas em azul, no terminal. Agora, troque alguns dos números 4 por 6 e rode de novo. A figura abaixo mostra os resultados dos novos testes.
Dessa forma, o resultado de uma expressão lógica é True ou False. Isso, junto com os operadores lógicos, não representa novidade nenhuma em relação as outras linguagens. C# e Javascript, por exemplo, possuem os mesmo operadores citados. JS tem até alguns a mais, como o operador precisamente igual (===), que Python não tem.
Porém, no restante dos operadores lógicos usuais, como o AND e o OR lógicos, Python difere. No lugar dos tradicionais && (AND) e || (OR) usados nas linguagens C, C++, C# e JS, Python usa simplesmente and e or. Simples assim. Para checar se um número armazenado em uma variável aux é maior que zero e menor que 5 basta escrever (aux > 0 and aux <5).
Ainda não falamos sobre tipos de dados, mas você já sabe o que é string. É o tipo de dado que representa um texto, como uma frase, um parágrafo ou um simples caractere. No primeiro exemplo, “Hello World” é um valor do tipo string ou, simplesmente, uma string. Até aqui vimos operadores aplicados a números, mas existem dois operadores especiais que podem ser usados com strings.
O primeiro é o símbolo de adição (+) que, quando usado com strings, provoca a concatenação de strings. Concatenar é juntar, assim, ao juntar uma string “texto1” com outra “texto2”, obtemos como resultado as duas juntas, concatenadas. De forma programática, fica: “texto1” + “texto2” = “texto1texto2”. Esse operação especial de concatenar strings com o operador + se chama sobrecarga de operador. Sobrecarga porque, justamente, o operador é usado para mais de uma função. Esse recurso existe em várias outras linguagens também.
No entanto, Python permite ainda a sobrecarga de um segundo operador matemático para strings. Trata-se do operador de multiplicação (*) que, quando usado com strings, torna-se um operador de repetição. Assim, “texto1″*2 = “texto1texto1”.
Por fim, o caractere de escape dentro de uma string, ou seja, aquele usado para inserir símbolos ou comandos especiais, é a barra invertida. Um comando especial, por exemplo, é pular uma linha na string. Para isso, usa-se “\n”, como em várias outras linguagens também (C++, Java e Javascript). A imagem abaixo ilustra os exemplos dessa subseção.
Variáveis correspondem aos recursos de uma linguagem de programação que permitem ao desenvolvedor armazenar valores, alterá-los e utilizá-los no programa sempre que preciso. Em Pyhton não é diferente e a criação de variáveis ocorre exatamente como em Javascript. O nome da variável do lado esquerdo, sinal de igual, e o valor do lado direito. Esse tipo de comando é chamado de atribuição. Dessa forma, um sinal de igual (=) é usado para atribuições, enquanto dois sinais (==) é usado para comparações.
O comando print() também pode ser usado para impressão dos valores armazenados pelas variáveis. Para isso, é só usar o identificador (nome da variável) dentro dos parênteses do comando, como print(a) para imprimir na tela o valor retido pela variável a. Naturalmente, a variável precisa existir, que significa que ela precisa ser atribuída a algum valor antes de ser usada no comando print(). A imagem abaixo mostra a atribuição de 6 variáveis diferentes com os comandos de impressão na tela na sequência. Observações:
Python possui poucas palavras reservadas, apenas 35, o que é mais uma semelhança com JS (que possui 33). Comparado com C#, que possui cerca de 77, são poucas de fato.
É possível visualizar as palavras reservadas no terminal. Para isso, é preciso usar dois comandos, como na figura abaixo. Incluí ainda um terceiro comando, len(), usado para contar o número de itens de uma lista. Assim, vemos que atualmente, na versão 3.7, Python conta com 35 palavras reservadas ou palavras chaves.
O dinamicamente refere-se ao momento da criação de uma variável. Para criar uma basta escolher um nome válido (como não começar por números) e fazer uma atribuição a um valor. O tipo de dado da variável será determinado dinamicamente pelo tipo do valor usado na atribuição.
Sendo assim, um valor individual (também chamado de valor literal), sem uma atribuição, também tem um tipo de dado. Para saber qual é o tipo de dado de um valor é possível usar o comando type(), com o valor que se deseja descobrir o tipo digitado entre os parênteses. Por exemplo, type(12) gera como saída o tipo de dado compatível com o valor 12 (valor inteiro). Já o comando type(“Leandro”) retorna o tipo de dado do valor “Leandro” (texto ou string no inglês técnico de computação). No primeiro caso, temos um valor inteiro, que em Python, corresponde ao tipo int. No segundo, temos o tipo texto/string, que em Python é str.
Além desses 2 tipos muito utilizados, temos também o tipo bool, que equivale a um tipo lógico, e o tipo float, que equivale a um valor real, com casas decimais. Dessa forma, o comando type(4>3) retornará o tipo bool e type(3.45) retornará o o tipo float. A imagem a seguir ilustra os testes de tipo de dados dessa seção.