Python é uma das linguagens de programação mais utilizadas no campo da inteligência artificial, possuindo diversas bibliotecas e frameworks que são utilizados para este fim, como por exemplo: Tensorflow, PyTorch, Scikit-Learn, Numpy, etc. É uma linguagem de programação interpretada com uma sintaxe bastante simples e fácil de aprender. Foi criada por Guido van Rossum em 1991. Seu nome é inspirado no grupo humorístico britânico “Monty Python”.
Neste tutorial, e em tutoriais posteriores, utilizaremos a plataforma na nuvem do Google “Google Colab” (https://colab.research.google.com/) para executarmos e testarmos nossos exemplos (falaremos um poucos mais sobre esta ferramenta em tutoriais futuros).
Variáveis
Variáveis são locais na memória que armazenam algum valor. Python é uma linguagem de tipagem dinâmica, o que significa que não precisamos definir o tipo da variável no momento da sua declaração, como é comum em outras linguagens, pois a mesma terá o tipo do valor a ela atribuído no momento da sua declaração (através do operador “=”).
Por exemplo, para declararmos uma variável chamada “x” que tenha como valor o número inteiro “10”, basta utilizarmos o seguinte comando:
x = 10

Por ser uma linguagem de tipagem dinâmica podemos atribuir um novo valor, de um outro tipo para a variável x, como por exemplo uma string:
x = “uma string”

Em Python uma string é definida como um conjunto de caracteres entre aspas (simples ou duplas (como no exemplo))
Apesar de ser possível, não é recomendável a alteração do tipo da variável no decorrer do fluxo do programa, como no exemplo dado, já que isto pode causar certa confusão para aqueles que tentarem entender o que está sendo feito no mesmo.
Nomes de variáveis
Em Python os nomes de variáveis devem começar com um underscore “_” ou letra [a-z|A-Z] seguido de letras e/ou números e/ou underscores, não devem conter caracteres especiais ($, #, etc) e não devem utilizar palavras reservadas (if, else, for, while, etc).
Como exemplo, os seguintes nomes são válidos:
minhavariavel, minha_variavel, _minhavariavel, _minhavariavel1
Enquanto estes são inválidos:
1minhavariavel (começa com número), $minhavariavel (caracter “$”)
É importante também que nossas variáveis tenham nomes claros e objetivos, tornando assim mais fácil o entendimento do programa.
Por exemplo:
idade = 10
nome = “Joao”
Ao invés de:
i = 10
n = “Joao”
Lembrando que isto é apenas por questões de clareza e objetividade de código, as declarações das variáveis “i” e “n” não apresentarão erros no momento da execução do programa.
Python é uma linguagem “case sensitive”, ou seja, letras maiúsculas e minúsculas são interpretadas de forma diferente. Por exemplo, a variável “a” é diferente da variável “A”.

Tipos de variáveis
Vamos apresentar por enquanto os três tipos mais básicos de variáveis: Número, String e Booleano
O tipo número é subdividido em três categorias: número inteiro, ponto flutuante (com casas decimais) e número complexo (com o sufixo “j”).
O tipo string consiste em uma cadeia de caracteres entre aspas duplas ou simples.
O tipo booleano pode ter dois valores: True ou False (verdadeiro ou falso).

Obs: Aqui foram apresentados apenas os tipos mais básicos de variáveis, tipos que representam estruturas de dados como listas e dicionários, por exemplo, serão apresentados em tutoriais futuros.
Operadores
Em Python temos diversos tipos de operadores: aritméticos, relacionais, de atribuição, lógicos e etc.
Operadores são símbolos/sinais que operam sobre operandos.
Na expressão 1 + 2 = 3, os números 1, 2 e 3 são os operandos e os sinais ‘+’ e ‘=’ são os operadores.
Operadores aritméticos
Os operadores aritméticos são os de adição, subtração, multiplicação, divisão, potência, módulo e divisão com arredondamento para baixo (+, -, *, /, **, %, // respectivamente).
O operador “+” soma os dois operandos, o operador “-” subtrai o operando da direita do da esquerda, o operando “*” multiplica os dois operandos, o operando “/” divide o operando da esquerda pelo da direita, o operando “**” eleva o operando da esquerda a potência representada pelo operando da direita, o operando “%” retorna o resto da divisão do operando da esquerda pelo da direita e o operador “//” “corta” as casas decimais resultantes da divisão do operando da esquerda pelo da direita.

Nos exemplos da imagem acima utilizamos apenas dois operandos para cada operador, mas poderíamos usar um número indefinido deles (tanto operandos quanto operadores), como por exemplo: x = 2 + 5 + 8 – 2.
A ordem das operações obedece a seguinte regra: primeiro é realizada a potenciação, depois a multiplicação e divisão, e por último a adição e subtração, da esquerda para a direita.
x = 4 + 10 / 2 ** 2 * 2
No exemplo acima, o valor de “x” será 9, pois primeiro é realizada a potenciação (2 ** 2 = 4), depois a divisão de 10 pelo resultado da potenciação (10 / 4 = 2.5), depois este resultado é multiplicado por 2 (2.5 * 2 = 5) e, finalmente, é somado 4 ao resultado (4 + 5 = 9.
Podemos alterar esta ordem com a utilização de parenteses, se quisermos que primeiro seja realizada a soma entre 4 e 10 e depois o restante das operações, fazemos desta forma:
x = (4 + 10) / 2 ** 2 * 2
Neste caso, o valor de “x” será 7. Primeiro é realizada a soma entre 4 e 10, resultando em 14, depois 2 ** 2, resultando em 4, em seguida 14 / 4, resultando em 3.5, e finalmente 3.5 * 2 = 7.
Ou seja, tudo que estiver entre parenteses têm precedência sobre os demais operadores.
Operadores relacionais (comparação)
Os operadores relacionais são: igual a, diferente de, maior que, menor que, maior ou igual a, menor ou igual a (==, !=, >, = e <= respectivamente). Estes operadores comparam os operandos retornando um valor booleano (True ou False).

Percebam a diferença entre os operadores < e e >= (menor e menor OU igual, maior e maior OU igual). A expressão (d < a) retorna False já que “d” e “a” são iguais (“d” NÃO é menor que “a”) ao passo que d <= a (menor OU igual) retorna True.
Operadores de atribuição
Os operadores de atribuição servem para atribuir valores a variáveis. São eles: =, +=, -=, *=, /=, %=, **= e //=.

Percebam que “a += 10” é equivalente a “a = a + 10”, “b -= 2” é equivalente a “b = b – 2” e assim por diante.
Operadores lógicos
Os operadores lógicos são: “and”, “or” e “not” (E, OU e NÃO). Eles operam sobre valores booleanos.
O operador “and” retorna True se, e apenas se, os DOIS operandos forem True, caso contrário, retorna False.
O operador “or” retorna True se ao MENOS UM dos operandos for True, se ambos forem False ele retorna False.
O operador “not” “nega” o valor sobre o qual opera, ou seja, se for True retorna False, se for False, retorna True.

Operadores bit a bit
Os operadores “bit a bit” realizam operações lógicas sobre os bits individuais das variáveis. São eles & (E), | (OU), ^ (XOR), ~(complemento), <> shift a direita.
Consideremos os valor 5 e 4 representados na forma binária como 00000101 e 00000100 respectivamente (considerando apenas 8 bits).

No primeiro caso 00000101 & 00000100 resulta em 00000100 (é considerado no resultado apenas o terceiro bit, direita para esquerda, pois nas duas variáveis este bit é igual a 1)
Em seguida 00000101 | 00000100 resulta em 00000101 (são considerados os bits da posição 1 e 3, já que o valor deles em uma OU outra variável é 1)
Depois em 00000101 ^ 00000100 resulta em 00000001 (por se tratar do OU EXCLUSIVO, somente a posição onde APENAS UM dos bits é 1 é considerada, neste caso a posição 1)
No exemplo ~ 00000101 todos os bits são invertidos resultando no valor 11111010
No caso 00000101 <> 1 todos os bits são movidos uma posição para a direita resultando em 00000010 (é o mesmo que dividir o número por 2).
Deixe um comentário