Introdução

Sobre

Por ser uma linguagem de programação relativamente simples e de alto nível, Python é muito usada como primeira linguagem e inicio de estudos em diversas universidades.

Python é utilizado em diversas áreas, como criação de scripts, desenvolvimento back-end, criação de jogos, aplicações web e ciência de dados.

Em novembro de 2021, Python é considerada a linguagem mais popular no mundo segundo o TIOBE Index.

Características

Python é uma linguagem interpretada—utiliza um interpretador para analisar e executar código.

Também é um software de código aberto, e ser uma linguagem bastante popular há muitas bibliotecas de terceiros.

Quando e Como Surgiu?

O início da implementação da linguagem Python se deu em 1989 por Guido van Rossum no Centro de Matemática e Tecnologia da Informação (CWI), na Holanda. Foi criada inicialmente para uso no sistema operacional Amoeba, sucedendo a linguagem de programação ABC.

Introdução

Sobre

Por ser uma linguagem de programação relativamente simples e de alto nível, Python é muito usada como primeira linguagem e inicio de estudos em diversas universidades.

Python é utilizado em diversas áreas, como criação de scripts, desenvolvimento back-end, criação de jogos, aplicações web e ciência de dados.

Em novembro de 2021, Python é considerada a linguagem mais popular no mundo segundo o TIOBE Index.

Características

Python é uma linguagem interpretada—utiliza um interpretador para analisar e executar código.

Também é um software de código aberto, e ser uma linguagem bastante popular há muitas bibliotecas de terceiros.

Quando e Como Surgiu?

O início da implementação da linguagem Python se deu em 1989 por Guido van Rossum no Centro de Matemática e Tecnologia da Informação (CWI), na Holanda. Foi criada inicialmente para uso no sistema operacional Amoeba, sucedendo a linguagem de programação ABC.

Primeiros Passos

Instalação do Python

Para começarmos a utilizar o Python, será necessário instalá-lo. Isso pode ser feito consegue fazer isso através do site oficial.

No Windows, é possível instalar diretamente no terminal utilizando o gerenciador de pacotes do próprio sistema operacional com o comando winget install --id=Python.Python.3.

Editor de Código

Para poder programar é recomendado utilizar um editor de texto apropriado, como PyCharm—que é próprio para o Python—ou Visual Studio Code—que é mais abrangente.

Executar

Existem várias formas de executar um script Python, e uma maneira simples e universal é utilizar o terminal. Executando o comando python seguido do nome de um arquivo com o código-fonte, o mesmo será executado. Alternativamente, é possível executar python sem argumentos; nesse caso será iniciado um read–eval–print loop no terminal, onde o código digitado será interpretado em tempo real.

Criando Nosso Primeiro Programa

Uma das funcionalidades mais simples que muitas linguagens de programação possuem é a exibição de texto. Para fazer isso em Python, utilizamos a função print ("imprimir"). Exibiremos como exemplo a frase "Olá, Mundo!"—superstição comum em programadores.

print("Olá, Mundo!")

Entre os parênteses após print está nossa mensagem, denotada entre aspas duplas para que seja interpretada como tal pelo Python. Após a execução do código acima, será exibido "Olá, Mundo!".

Entrada de Dados

Agora que já aprendemos como exibir algo na tela e sobre variáveis, vamos aprender como "pegar" dados de um usuário.

Digamos que você queira fazer uma calculadora. Para que sejam realizadas as operações, é necessário ler valores informados pelo usuário.

Para isso temos a função input, que permite, você ler dados inseridos pelo usuário. Veja um exemplo:

input("Pedindo entrada do usuário")

Como visto, aspas duplas denotam um literal string—um pedaço de texto—que será exibido na tela durante a execução da função. No caso de nossa calculadora , podemos utilizar:

input("Digite o primeiro operando: ")

Essa invocação de input apenas lê o que o usuário digitar mas esse valor não é armazenado em lugar algum. Podemos dar um nome a esse valor, assim ele não é descartado:

n1 = input("Digite o primeiro operando: ")

No caso acima, a entrada do usuário será armazenada e acessível na variável n1.

Tipagem dinâmica

Python utiliza o conceito de tipagem dinâmica, ou seja, o tipos dos objetos em um programa podem variar durante a execução.

Ao fazemos uma entrada, como n = input("Digite um número: ") Estamos simplesmente lendo um valor e inserindo na variável n. Embora a mensagem sugira que n receberá um número, a função input retorna uma string (sequência de caracteres). n, então, é inicialmente uma string. Isso pode ser verificado com a função type: type(n).

Se quisermos forçar que a entrada seja interpretada como um número, devemos converter seu tipo utilizando um construto chamado cast. No nosso caso o cast será feito utilizando a função int, que retorna um número inteiro a partir de uma string:

n = int(input("Digite um número: "))

Dessa forma, a string retornada é transformada em um número inteiro; assim, n agora é um inteiro.

Além da função int, há funções similares como str (produz uma string) e float (produz um número real).

Tipos

Alguns dos tipos preexistentes no Python são os seguintes.

  • str (popularmente string): Representa uma cadeia de caracteres, como "abc":

    >>> a = 'codinStruct'
    >>> type(a)
    <type 'str'>
    
  • int: Representa um número inteiro, como 59:

    >>> a = 1
    >>> type(a)
    <type 'int'>
    
  • float: Representa um número real, como 3,14:

    >>> a = 1.0
    >>> type(a)
    <type 'float'>
    
  • bool: Pode alternar entre os valores lógicos True (verdade) e False (falsidade).

    >>> a = True
    >>> type(a)
    <type 'bool'>
    

Operações Aritméticas

Assim como na maioria das linguagens, para se fazer cálculos em Python, usamos alguns operadores, são eles:

OperadorSignificado
*Realiza multiplicação
+Realiza adição
-Realiza subtração
/Realiza divisão
%O resto de uma divisão

Alguns exemplos de operações e seus resultados:

n1 = 10
n2 = 2

resultado1 = n1 * n2 | # Resulta em 20
resultado2 = n1 + n2 | # Resulta em 12
resultado3 = n1 - n2 | # Resulta em 8
resultado4 = n1 / n2 | # Resulta em 5
resultado5 = n1 % n2 | # Resulta em 0: o resto da divisão e 10 por 2 é 0

Comentários

Comentários em Python começam com o caractere cerquilha # e se estendem até o final da linha. Um comentário pode aparecer no início da linha ou após espaço em branco, ou código, mas não dentro de um literal string.

Comentários devem ser usados para dar uma visão geral do código e fornecer informação adicional que não esteja prontamente disponível no próprio código. Comentários devem conter somente informações relevantes para a leitura e entendimento do programa.

Listas

Lista é um tipo de dado para armazenar coleção de dados. Apesar da simplicidade para ser usada, tem uma grande utilidade, onde é possível guardar vários tipos de dados, dentro de uma lista. Para começarmos, vamos entender como se cria uma lista:

Para criarmos uma lista, usamos [] e os dados dentro da lista. Vale a pena lembrar que, as listas podem armazenar quaisquer tipos de dados, inclusive, listas.

Vamos a alguns exemplos:

  • Listas de Strings:
lista = ["Maçã", "Banana", "Melancia"]
print(lista)
# O Resultado é: ['Maçã', 'Banana', 'Melancia']
  • Lista de Inteiros:
lista = [1, 2, 3, 4]
print(lista)
# O Resultado é: [1, 2, 3, 4]
  • Listas de Booleans:
lista = [True, False, True, True]
print(lista)
# O Resultado é: [True, False, True, True]
  • Lista de Listas:
lista1 = ["João", 21, False]
lista2 = [1, 2, 3, 4]
lista3 = [True, False, True, True]
lista = [lista1, lista2, lista3]
print(lista)
# O Resultado é: [['João', 21, False], [1, 2, 3, 4], [True, False, True, True]]

Mais sobre listas

Para se acessar um valor específico de uma lista, basta acrescentar o valor do seu índice. Caso você não esteja familiarizado, os índices começam em 0. Vamso a um exemplo:

# ÍNDICES: 0      1       2
lista = ["João", 21, "Estudante"]
print(lista[2])
# O Resultado é: ['Estudante']

Propriedades

As listas tem alguma diferenças, de outros tipos de dados usados para armazenar coleções, como por exemplo:

  • Ordenado:

A lista é ordenada, ou seja, a cada item adicionado, ele ficará na ordem em que foi adicionado.

lista = ["A", "B", "C"]
print(lista)
# Saída: ['A', 'B', 'C']
  • Mutável:

A lista pode ser alterada, ou seja, podemos adicionar, remover ou alterar itens dela.

lista = ["A", "B", "C"]
lista[2] = 10
print(lista)
# Saída: ['A', 'B', 10]
  • Duplicados:

A lista permite que se tenha valores duplicados, como ela é indexada, é possível adicionar itens duplicados tranquilamente.

lista = ["A", "B", "C", "B"]
print(lista)
# Saída: ['A', 'B', 'C', 'B']

Tuplas

Parecida com Listas, a Tupla também é usada para armazenar coleções de dados. Diferente das Listas, que são inicializadas com [], as tuplas são iniciadas com ().Vejamos alguns exemplos de como funcionam as Tuplas:

tupla = ("Maçã", "Banana", "Melancia")
print(tupla)
# Saida: ('Maçã', 'Banana', 'Melancia')

Muito semelhante as Listas, as Tuplas possuem propriedades parecidas com as listas, como por exemplo, elas são ordenadas, e seus itens podem ser acessados atraves de index [1]:

tupla = ("Maçã", "Banana", "Melancia")
print(tupla[1])
# Saida: Banana

Propriedades

  • Ordenado:

A tupla é ordenada, ou seja, a cada item adicionado, ele ficará na ordem em que foi adicionado.

tupla = ("A", "B", "C")
print(tupla)
# Saída: ('A', 'B', 'C')
  • Imutável:

Diferente da Listas, a tupla NÃO pode ser alterada, ou seja, não podemos adicionar, remover ou alterar itens após a criação dela.

tupla = ("A", "B", "C")
tupla(2) = 10
print(tupla)
# Saída: ERRO
  • Duplicados:

A tupla permite que se tenha valores duplicados, como ela é indexada, é possível adicionar itens duplicados tranquilamente.

tupla = ("A", "B", "C", "B")
print(tupla)
# Saída: ('A', 'B', 'C', 'B')

Conjuntos

Os conjuntos, semelhantemente a Lista e Tupla, são usados para armazenar coleções de dados. Vejamos um exemplo de sua implementação:

conjuntos = {"Maçã", "Banana", "Melancia"}
print(conjuntos)
# Saída: {'Maçã', 'Banana', 'Melancia'}

Os conjuntos contém algumas diferenças de propriedades comparadas com uma Lista e uma Tupla, como por exemplo, não existe índice (Não é possível acessar um item do conjunto com [1])

conjunto = {"Maçã", "Banana", "Melancia"}
print(conjunto[1])
# Saida: ERRO

Propriedades

  • NÃO Ordenado:

Os conjuntos não são ordenados, ou seja, a ordem em que eles são criados, não são a ordem que serão exibidos.

conjunto = {"A", "B", "C"}
print(conjunto)
# Saída: {'C', 'A', 'B'}
  • Imutável:

Os cojuntos NÃO podem ser alterados, ou seja, não podemos adicionar, remover ou alterar itens após a criação de um cojunto.

conjunto = {"A", "B", "C"}
conjunto[2] = 10
print(conjunto)
# Saída: ERRO
  • Duplicados:

A conjunto NÃO permite valores duplicados, como não é indexada, não é possível adicionar itens duplicados.

conjunto = {"A", "B", "C", "B"}
print(conjunto)
# Saída: {'A', 'C', 'B'}

Dicionário

Os dicionários, são tipos de dados também usados para armazenar coleções de dados, porém, os dicionários tem uma particularidades, onde os índices, são selecionados por quem está os criando, ou seja, se na lista temos os índices [0], [1], etc, nos dicionários temos índices criados da forma como queremos, por exemplo ["nome"]. Vejamos alguns exemplos:

dicionario = {"nome": "João", "idade": 21}
print(dicionario)
# Saída: {'nome': 'João', 'idade': 21}

Para acessarmos algum atributo específico, procuramos por sua chave:

dicionario = {"nome": "João", "idade": 21}
print(dicionario["nome"])
# Saída: João
print(dicionario["idade"])
# Saída: 21

Propriedades

  • Ordenados

Quando dizemos que os dicionários estão ordenados, significa que os itens tem uma ordem definida e essa ordem não será alterada.

dicionario = {"nome": "João",
              "idade": 21}
print(dicionario)
# Saída: {'nome': 'João', 'idade': 21}
  • Mutável

Os dicionários podem ser alterados, o que significa que podemos alterar, adicionar ou remover itens após a criação do dicionário.

dicionario = {"nome": "João",
              "idade": 21}
dicionario["nome"] = "Elias"
print(dicionario)
# Saída: {'nome': 'Elias', 'idade': 21}
  • Duplicatas

Os dicionário não permitem chaves(índices) duplicados, ou seja, não podemos ter o seguinte caso:

dicionario = {"nome": "João",
              "idade": 21
              "nome": "Elias"}
print(dicionario)
# Saída: ERRO

Alteração em coleções

Temos várias coleções, e podemos fazer várias alterações, conforme já foi passado no curso, temos conjuntos, dicionario, tuplas, listas. Vamos conhecer mais sobre cada uma delas.

Listas

Para acessarmos um valor de uma lista, procuramos pelo seu índice [1], por exemplo:

lista = [1, 2, 3, 4]
print(lista[2])
# Saída: 3

Para acessarmos apenas alguns itens da lista, podemos usar a seguinte sintaxe: [:], o valor colocado antes do :, será usado como o início de onde você quer exibir os itens, consequentemente, o valor colocado depois, será até quanto, caso a esquerda fique vazio, será entendido como o primeiro, se o da direita ficar vazio, será considerado o último por exemplo:

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lista[2:])
# Saída: [3, 4, 5, 6, 7, 8, 9]
print(lista[2:3])
# Saída: [3]
print(lista[:3])
# Saída: [1, 2, 3]

Para procurarmos algo em uma lista, podemos usar a seguinte estrutura:

lista = ["Maçã", "Banana", "Melancia"]
if "Maçã" in thislist:
  print("Sim, 'Maçã' existe nesta lista!")
# Saída: Sim, 'Maçã' existe nesta lista!

Para inserirmos um item na lista em determinada posição, usamos insert, vejamos o exemplo:

lista = ["Maçã", "Banana", "Melancia"]
lista.insert(2, "Goiaba")
print(lista)
# Saída: ['Maçã', 'Banana', 'Goiaba', 'Melancia']

Para inserirmos um item no final da lista, usamos append, vejamos um exeplo:

lista = ["Maçã", "Banana", "Melancia"]
lista.insert("Goiaba")
print(lista)
# Saída: ['Maçã', 'Banana', 'Melancia', 'Goiaba']

Para adicionarmos uma coleção no final de uma lista, usamos extend, veja o exemplo:

lista = ["Maçã", "Banana", "Melancia"]
lista2 = ["Limão", "Laranja"]
lista.extend(lista2)
print(lista)
# Saída: ['Maçã', 'Banana', 'Melancia', 'Limão', 'Laranja']

Para removermos um item da lista, temos várias soluções, vejamos os exemplo abaixo:

lista = ["Maçã", "Banana", "Melancia"]
lista.remove("Melancia") # remove o item citado
lista.pop(2) # remove o item de index 2
lista.pop() # remove o último item
del lista[2] # remove o último item
print(lista)
# Saída em todos os casos: ['Maçã', 'Banana']
del lista # remove a lista inteira
print(lista)
# Saída: ERRO
lista.clear()
print(lista) #Limpa a lista
# Saída: []