<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Funções
Até agora, vimos diversos tipos de dados, atribuições, comparações e estruturas de controle.
A ideia da função é dividir para conquistar, onde
Step1:  Ótimo temos uma função e podemos reaproveita-la. Porém, para de fato reaproveita-la temos que utilizar o comando return.
Step2:  Pronto agora sim! Já podemos reaproveitar nossa função!
E como fazer isso?
Step3:  Quando chamamos a função maximo(3, 4) estamos definindo que x = 3 e y = 4. Após, as expressões são avaliadas até que não se tenha mais expressões, e nesse caso é retornado None. Ou até que encontre a palavra especial return, retornando como valor da chamada da função.
Step4:  Já entendemos o que é e como criar funções. 
Para testar vamos criar uma função que irá realizar uma conta.
Step5:  Também podemos definir um valor padrão para um ou mais argumentos
Vamos reescrever a função economias para que os gastos sejam fixados em 150, caso não seja passado nenhum valor por padrão.
Step6:  É importante notar que uma variável que está dentro de uma função, não pode ser utilizada novamente enquanto a função não terminar de ser executada. 
No mundo da programação, isso é chamado de escopo. Vamos tentar imprimir o valor da variável dinheiro.
Step7:  <span style="color
Step8:  <span style="color
Step9:  Funções embutidas
Python tem um número de funções embutidas que sempre estão presentes. Uma lista completa pode ser encontrada em https
Step10:  Note que ambas as variáveis são strings. Portanto precisamos converter para inteiro a idade.
Step11:  open
A função open, permite abrir um arquivo para leitura e escrita.
open(nome_do_arquivo, modo)
Modos
Step12:  Métodos
read() - retorna uma string única com todo o conteúdo do arquivo.
readlines() - todo o conteúdo do arquivo é salvo em uma lista, onde cada linha do arquivo será um elemento da lista.
Step13:  Para remover o \n podemos utilizar o método read que irá gerar uma única string e depois aplicamos o método splitlines.
<ASSISTANT_TASK:>
Python Code:
def maximo(x, y):
    if x > y:
        z = x
    else:
        z = y
Explanation: Funções
Até agora, vimos diversos tipos de dados, atribuições, comparações e estruturas de controle.
A ideia da função é dividir para conquistar, onde:
Um problema é dividido em diversos subproblemas
As soluções dos subproblemas são combinadas numa solução do problema maior.
Esses subproblemas têm o nome de funções.
Funções possibilitam abstrair, ou seja permite capturar a computação realiza e tratá-la como primitiva.
Suponha que queremos que a variável z seja o máximo de dois números (x e y).
Um programa simples seria:
if x &gt; y:
    z = x
else:
    z = y
A ideia é encapsular essa computação dentro de um escopo que pode ser tratado como primitiva.
É utilizado simplesmente chamando o nome e fornecendo uma entrada.
Os detalhes internos sendo escondidos dos usuários.
Uma função tem 3 partes importantes:
def &lt;nome&gt; ( &lt;parametros&gt; ):
        &lt;corpo da função&gt;
def é uma palavra chave
&lt;nome&gt; é qualquer nome aceito pelo Python
&lt;parametros&gt; é a quantidade de parâmetros que será passado para a função (pode ser nenhum).
&lt;corpo da função&gt; contém o código da função.
Voltando ao exemplo:
End of explanation
def maximo(x, y):
    if x > y:
        return x
    else:
        return y
Explanation: Ótimo temos uma função e podemos reaproveita-la. Porém, para de fato reaproveita-la temos que utilizar o comando return.
End of explanation
z = maximo(3, 4)
Explanation: Pronto agora sim! Já podemos reaproveitar nossa função!
E como fazer isso?
End of explanation
print(z)
Explanation: Quando chamamos a função maximo(3, 4) estamos definindo que x = 3 e y = 4. Após, as expressões são avaliadas até que não se tenha mais expressões, e nesse caso é retornado None. Ou até que encontre a palavra especial return, retornando como valor da chamada da função.
End of explanation
def economias (dinheiro, conta, gastos):
    total = (dinheiro + conta) - gastos
    return (total)
eco = economias(10, 20, 10)
print(eco)
Explanation: Já entendemos o que é e como criar funções. 
Para testar vamos criar uma função que irá realizar uma conta.
End of explanation
def economias(dinheiro, conta, gastos=150):
    total = (dinheiro + conta) - gastos
    return(total)
print(economias(100, 60))
print(economias(100, 60, 10))
Explanation: Também podemos definir um valor padrão para um ou mais argumentos
Vamos reescrever a função economias para que os gastos sejam fixados em 150, caso não seja passado nenhum valor por padrão.
End of explanation
print(dinheiro)
Explanation: É importante notar que uma variável que está dentro de uma função, não pode ser utilizada novamente enquanto a função não terminar de ser executada. 
No mundo da programação, isso é chamado de escopo. Vamos tentar imprimir o valor da variável dinheiro.
End of explanation
def economias(dinheiro, conta, gastos=150):
    total = (dinheiro + conta) - gastos
    total = total + eco
    return(total)
print(economias(100,60))
Explanation: <span style="color:blue;">Por que isso aconteceu?</span>
Esse erro acontece pois a variável dinheiro somente existe dentro da função economias, ou seja, ela existe apenas no contexto local dessa função.
Vamos modificar novamente a função economias:
End of explanation
def conta(valor, multa=7):
     # Seu código aqui
Explanation: <span style="color:blue;">Por que não deu problema?</span>
Quando utilizamos uma variável que está fora da função dentro de uma função estamos utilizando a ideia de variáveis globais, onde dentro do contexto geral essa variável existe e pode ser utilizada dentro da função.
<span style="color:red;">Isso não é recomendado! O correto seria ter um novo argumento!</span>
Exercício de Funções
Crie uma função que receba dois argumentos.
* O primeiro argumento é o valor de um determinado serviço
* O segundo é a porcentagem da multa por atraso do pagamento. O valor padrão da porcentagem, se não passado, é de 7%. A função deve retornar o valor final da conta com o juros. Lembre-se de converter 7%.
End of explanation
idade = input('Digite sua idade:')
print(idade)
nome = input('Digite seu nome:')
print(nome)
print(type(idade))
print(type(nome))
Explanation: Funções embutidas
Python tem um número de funções embutidas que sempre estão presentes. Uma lista completa pode ser encontrada em https://docs.python.org/3/library/functions.html.
<span style="color:blue;">Já utilizamos algumas delas! Quais?</span>
input
Uma outra função que é bem interessante, é a input. Essa função permite que o usuário digite uma entrada, por exemplo:
End of explanation
idade = int(input("Digite sua idade:"))
print(type(idade))
Explanation: Note que ambas as variáveis são strings. Portanto precisamos converter para inteiro a idade.
End of explanation
import os
os.remove("arquivo.txt")
arq = open("arquivo.txt", "w")
for i in range(1, 5):
    arq.write('{}. Escrevendo em arquivo\n'.format(i))
arq.close()
Explanation: open
A função open, permite abrir um arquivo para leitura e escrita.
open(nome_do_arquivo, modo)
Modos:
        * r - abre o arquivo para leitura.
        * w - abre o arquivo para escrita.
        * a - abre o arquivo para escrita acrescentando os dados no final do arquivo.
        * + - pode ser lido e escrito simultaneamente.
End of explanation
f = open("arquivo.txt", "r")
print(f, '\n')
texto = f.read()
print(texto)
f.close()
f = open("arquivo.txt", "r")
texto = f.readlines()
print(texto)
f.close()
#help(f.readlines)
Explanation: Métodos
read() - retorna uma string única com todo o conteúdo do arquivo.
readlines() - todo o conteúdo do arquivo é salvo em uma lista, onde cada linha do arquivo será um elemento da lista.
End of explanation
f = open("arquivo.txt", "r")
texto = f.read().splitlines()
print(texto)
f.close()
Explanation: Para remover o \n podemos utilizar o método read que irá gerar uma única string e depois aplicamos o método splitlines.
End of explanation
<END_TASK>