1. TEÓRICO
1.1. TIPOS DE VARIÁVEIS
1.1.1. Booleano: V ou F
1.1.2. Inteiro, int: 1 , 2 , 3
1.1.3. Real, Float: 1.3 , 2.4, 4.4
1.1.4. String: texto qualquer
1.2. ESTRUTURAS CONDICIONAIS
1.2.1. Condições
1.2.1.1. switch-case
1.2.1.2. Encadeada
1.2.1.3. simples
1.2.1.4. composta
1.2.2. Identação
1.2.2.1. Linha subordinada, contém espaçamento antes de ser iniciada
1.2.3. if: Se
1.2.4. else: Senão
1.2.5. elif:
1.3. OPERADORES RELACIONAIS
1.3.1. ==
1.3.1.1. Igual a
1.3.2. !=
1.3.2.1. Diferente de
1.3.3. >
1.3.3.1. Maior que
1.3.4. <
1.3.4.1. Menor que
1.3.5. >=
1.3.5.1. maior ou igual que
1.3.6. <=
1.3.6.1. menor ou igual que
1.4. ESTRUTURA DE DADOS
1.4.1. Lista
1.4.1.1. Mutável
1.4.1.2. Valor em COLCHETES [ ]
1.4.1.3. Sequencia: 0 ... n -1
1.4.1.4. exp: vogais = ['a', 'e', 'i', 'o', 'u']
1.4.1.5. Adicionar itens/valor na lista: vogais = [ ] vogais.append('a') vogais.append('e')
1.4.1.6. Selecionar valor da lista: pegar a posição do valor exp: vogais [3 ]
1.4.2. Tuplas
1.4.2.1. imutáveis.
1.4.2.2. Valor em PARENTESES ( )
1.4.2.3. Não permite adicionar valores
1.4.3. Sets
1.4.3.1. set habilita operações matemáticas de conjuntos, tais como: união, intersecção, diferença.
1.4.3.2. Valores em CHAVES { }
1.4.4. Dicionários
1.4.4.1. Mutável
1.4.4.2. Mapeamento de chave e valor
1.4.4.3. Valor em CHAVES { }
1.4.4.4. Estrutura exp: cadastro = {'nome': 'João', 'idade': 30, 'cidade': 'São Paulo'}
1.4.4.5. Acessar um valor: nome_dicionario[chave]
1.4.4.6. Adicionar um valor: nome_dicionario[chave] = novo_valor
1.5. ESTRUTURA DE REPETIÇÃO
1.5.1. While
1.5.1.1. Enquanto
1.5.2. Do-While
1.5.3. for
1.5.3.1. Para
1.6. ORIENTAÇÃO A OBJETOS
1.6.1. Conceitos
1.6.1.1. Uma linguagem é entendida como orientada a objetos se ela aplica o conceito de abstração e suporta a implementação do encapsulamento, da herança e do polimorfismo.
1.6.1.2. Código com responsabilidades coesas é sinal do paradigma OO.
1.6.1.3. juntar os dados para adicionar funcionalidades;
1.6.1.4. Acessar atributos através de referencias:
1.6.1.4.1. conta1.limite conta.titular
1.6.1.5. variavel = none
1.6.1.5.1. . Cancela a referencia, ela não aparece mais;
1.6.1.6. Garbage collector
1.6.1.6.1. responsável por jogar fora esses objetos em desuso é o coletor de lixo
1.6.2. Classe
1.6.2.1. Conceitos
1.6.2.1.1. Antes de criar um objeto temos a CLASSE
1.6.2.1.2. Uma classe é uma especificação de um tipo, definindo valores e comportamentos.
1.6.2.1.3. Uma boa analogia é considerar a classe como a receita para a criação de algum prato; por exemplo, um delicioso bolo de cenoura
1.6.2.1.4. Determina uma Estrutura de dados;
1.6.2.1.5. self
1.6.2.1.6. forma de organizar os dados (de um objeto) e seus comportamentos.
1.6.2.2. Criar uma Class:
1.6.2.2.1. Atributos
1.6.2.2.2. Métodos
1.6.3. Objeto
1.6.3.1. componentes de um programa
1.6.3.2. Um objeto é uma instância de uma classe onde podemos definir valores para seus atributos
1.6.3.3. Exemplo Objeto:
1.6.3.3.1. conta1 = Conta(1, "Fulano", 0.0) conta2 = Conta(2, "Beltrano", 0.0) conta3 = Conta(3, "Sicrano", 0.0, 2000.0)
1.6.4. Instancia
1.6.4.1. existência física, em memória, do objeto.
1.6.4.2. Construtor da classe – __ init __()
1.6.4.2.1. é possível determinar um estado inicial para variáveis de instâncias (atributos) por meio do método construtor da classe.
1.6.5. Encapsulamento de código:
1.7. MÉTODOS DE ORGANIZAÇÃO
1.7.1. Módulos
1.7.1.1. Um módulo é um arquivo contendo definições e instruções Python. O nome do arquivo é o nome do módulo acrescido do sufixo .py.
1.7.1.1.1. EXP: uma solução original implementada em um único arquivo .py é transformada em três módulos
1.7.1.2. Como utilizar um módulo:
1.7.1.2.1. preciso importá-lo para o arquivo
1.7.2. Bibliotecas
1.7.2.1. um módulo pode ser uma biblioteca de códigos
1.7.2.1.1. módulo math
1.7.2.1.2. módulo os
1.7.2.2. Importar funcionalidades da Biblioteca:
1.7.2.2.1. exp: import math math.sqrt(25) math.log2(1024) math.cos(45)
1.7.2.2.2. from math import sqrt, log2, cos sqrt(25) log2(1024) cos(45)
1.7.2.3. Classificação dos módulos (bibliotecas)
1.7.2.3.1. Módulos built-in
1.7.2.3.2. Módulos de terceiros
1.7.2.3.3. Módulos próprios
1.8. ORDEM DE PROCEDENCIA OPERACIONAL
1.8.1. 1- Parenteses, dos internos para os externos;
1.8.2. 2- Exponenciação ou potenciação
1.8.3. 3- Multiplicação e Divisão
1.8.4. 4- Soma e subtração
2. OBSERVAÇÕES
2.1. MULTIPLICAÇÃO DE STRING
2.1.1. 10 * "20" = 2020202020...
2.2. COMENTÁRIO
2.2.1. #
2.3. FORMATAÇÃO DE TEXTO
2.3.1. Snake_Case
2.3.1.1. exp: recebidos_em_atraso
2.4. IMPORTAR FUNÇÃO DE UM ARQUIVO
2.4.1. from 'arquivo'import 'função'
3. FUNÇÕES PRINCIPAIS
3.1. print("olá mundo")
3.1.1. Imprime no console oque você digitar
3.2. input("Digite seu número")
3.2.1. Trava o programa até que o usuário digite algo
3.2.2. Retorna uma STRING
3.3. int(variável)
3.3.1. Converte a variável para o tipo INTEIRO
3.4. variável.append('x')
3.4.1. Adicionar algo na variável, geralmente é uma lista
3.5. len (variável )
3.5.1. Tamanho da variável
3.5.2. exp: tamanho_lista = len(lista)
3.6. type(variável)
3.6.1. tipo da variável
3.7. format(variável)
3.7.1. substituir CHAVES pelo oq está dentro da função
3.7.1.1. exp: print("Ola { }. bem vindo".format(nome))
3.8. float(variável)
3.8.1. tranSforma variavel em float
3.9. def _ _ init _ _(self)
3.9.1. Função construtora
3.9.2. Self
3.9.2.1. referencia para saber onde guardamos o objeto;
3.9.3. Exemplo:
3.9.3.1. exp class Conta: def __init__(self, atributos) def __init__(self, numero, titular,saldo, limite) print("construindo objeto...{}".formar(self)) self.numero = numero self.titular = titular self.saldo = saldo self.limite = limite
3.10. {variavel.count('y')}
3.10.1. Quantas letrar y tem no texto
3.11. {variavel[0:x]}
3.11.1. Lista todos os caracteres do valor até a posição x
3.12. variavel.index(valor)
3.12.1. Posição do valor em sequencia;
4. CONCEITOS
4.1. ALGORITMOS DE BUSCA
4.1.1. Busca linear ou sequencial
4.1.1.1. Valores ordenados ou não
4.1.1.2. Começa por uma das extremidades da lista;
4.1.1.3. Estrutura de repetição “while”
4.1.1.3.1. permitirá percorrer a lista e comparar o elemento procurado com o elemento que está na posição da lista
4.1.1.4. Forma Exaustiva/Custosa computacionalmente;
4.1.1.5. Comparação do valor do elemento que se deseja;
4.1.2. Busca binária
4.1.2.1. Valores Ordenados
4.1.2.2. Verifica se o valor é maior ou menor que o valor central
4.1.2.2.1. Se for maior, então a busca acontecerá na metade superior da sequência (a inferior é descartada), se não for maior, a busca acontecerá na metade inferior da sequência (a superior é descartada).
4.1.2.2.2. ao encontrar o valor central de uma sequência, a divide em duas partes
4.1.2.2.3. Valor central = Elemento buscado = true
4.2. ALGORITMOS DE ORDENAÇÃO
4.2.1. Complexidade O(N2)
4.2.1.1. insertion sort.
4.2.1.1.1. Iniciado a partir do segundo valor
4.2.1.1.2. Primeiro elemento será uma referência para a ordenação
4.2.1.1.3. Nesse caminho, compara-se sempre o elemento da direita com os elementos à esquerda de modo que os elementos mais à esquerda sejam organizados e ordenados
4.2.1.1.4. "compara o valor da direita com a esquerda, e os da elementos da esquerda vão sendo organizados em ordem"
4.2.1.2. selection sort
4.2.1.2.1. transferir o menor valor do vetor para a primeira posição e, em seguida, o segundo menor valor para a segunda posição, e assim sucessivamente
4.2.1.3. bubble sort
4.2.1.3.1. ou flutuação
4.2.1.3.2. percorre vetor ou lista múltiplas vezes
4.2.1.3.3. não é indicado para uma grande quantidade de dados
4.2.1.4. codificação mais simples.
4.2.2. Complexidade O(N log N)
4.2.2.1. Merge sort
4.2.2.1.1. dividir para conquistar
4.2.2.2. Quick sort
4.2.2.2.1. escolhemos o pivô
4.2.2.3. Mais complexo