lista = [1,2,23,4,2]
lista.sort()
lista

# Instanciando

# A variável "a" é um numero com valor 7
a = 7
# A variável "name" é cadeia, ele pode tem qualquer caracteres no teclado 
nome = 'Felipe'

print('O valor da "a" é:', a) # Aqui "print()" e "type()" são funções, vou explicar sobre elas mais tarde
print('O tipo da "a" é:', type(a))

print('O valor da "nome" é:', nome)
print('O tipo da "nome" é:', type(nome))

"""
Explanation: author = "Peter J Usherwood"
Estas tutorias são um introdução para Python no contexto de ciência de dados. Elas não assumem conhecimento prévio de Python ou programação de computadors, comecando na começa. Os dois primeiro notebooks chamado "Conceitos Básicos" são os fundamentais de Python e são relevantes para qualquer pessoa querando a aprender Python.
Variáveis - Estruturas de dados
Variáveis com um valor

As variáveis são as representações dos nossos informações
Em idiomas de programação de computadores um variável tem dois propatidades, um tipo, e um valor. Em Python voce só precisa atribuir um valor, Python vai infere o tipo. 

Criando as variávels

Quando nós criamos um variável com um valor (e tipo) nós "instanciamos" a variavel
Para instanciar uma variável nós precisamos duas coisas: um nome pela variável (isso pode ser quase qualquer string de texto, mas nao pode ter espaços ou começa com um numero), e o valor, nos atribuimos o valor para a variável usando o '=' operador.
End of explanation
"""


# Operações numéricas

a = 6 
b = 10
c = a*b # multiplicação
print('"a" is', a,'\n"b" is', b, '\n"c (a*b)" is', c)
print('\n') # \n é uma caracter de linha nova

a = a*b # multiplicação e substituindo para "a" novamente
print('"a" is', a,'\n"b" is', b)
print('\n')

a = a/10 # Aqui nós usamos uma variável sem atribuindo ela um nome (10)
print('"a" is', a)
print('\n')

# Operações de strings
a = 'Olá'
b = 'Felipe'

c = a + ' ' + b # Aqui nós usamos vários operações em uma linha
print('"a" is', a,'\n"b" is', b, '\nc (a+b) is', c)
print('\n')

"""
Explanation: Há mais tipos dos variávels então isso, vamos encontrar mais mais tarde.
Advançado!
Usando a função type(x) poderia ser muito util quando voce tem um erro no seu codigo de tipo "Type Error". Acontece muito em Python porque variaveis não são fixado para um tipo.
Mudando os valores
Quando nós temos uma variável nós podemos mudar o valor com operações:
- A operaçâo mais basica é o '=' nós usamos antes para instanciar, nós podemos usar isso para mudar o valor directamente (você pode pensar sobre isso como criando uma variável nova e substituindo a variável antiga)
O de cima é um caso especial, normalmente você vai usar outras operações e com elas o comportamento é diferente
- Nós precisamos dois variávels e uma operação, a combinação vai dar uma variável nova terçia (normalmente)
- Esta variável terça pode ser atribuido para uma variável usado na operação
- As duas variávels usado dever ser o mesmo tipo 
- As operações vão funcaionar diferente dependente no tipo da variável
End of explanation
"""


# Instanciando
lista_eg = [6,10,'Paulo']
print('Os valores do "lista_eg" estão:', lista_eg)
print('O tipo do "lista_eg" está:', type(lista_eg))
print('\n')

# Chamando
print('O valor do segundo índice está:', lista_eg[1]) # Nota nas listas de Python o primeiro índice é 0 (não 1)
print('\n')

# Substiuindo/Mudando os valores 
lista_eg[1] = lista_eg[1]*4
print('O valor do segundo índice está:', lista_eg[1])
print('\n')

lista_eg

"""
Explanation: Variáveis com vários valores
As listas são um tipo de variável com vários valores. 

Estes tem um conjunto das variávels em uma lista, você busca sobre dando o índice da variável voce quer
O índice é um inteiro
O valor é qualquer tipo de variável
As listas tem ordem
Os valores podem ter tipos das variáveis diferentes em uma lista
End of explanation
"""


# Instanciando
dict_eg = {'cebolas':6, 'cenuras':10, 'nome':'Sopa'}
print('Os valores do "dict_eg" é:', dict_eg)
print('O tipo do "dict_eg" é:', type(dict_eg))
print('\n')

# Chamando
print('O valor pelas "cebolas" é:', dict_eg['cebolas'])
print('\n')

# Substiuindo/Mudando os valores 
dict_eg['cebolas'] = 50
print('O valor pelas "cebolas" é:', dict_eg['cebolas'])
print('\n')

"""
Explanation: Os dicionários são um outro tipo de variável com vários valores. Nota: dicionários de Python são dados na forma de JSON 

Estes tem um conjunto de "pares de valores-chaves", você busca sobre dado usando uma "chave" (única)
A chave é uma referencia única
O valor poder ser qualquer tipo de variável
Os dicionários não tem ordem
Os valores podem ter tipos das variáveis diferentes em um dicionário
End of explanation
"""


