""" Exercício Python #103 - Ficha do Jogador Faça um programa que tenha uma função chamada ficha(), que receba dois parâmetros opcionais: o nome de um jogador e quantos gols ele marcou. O programa deverá ser capaz de mostrar a ficha do jogador, mesmo que algum dado não tenha sido informado. """ from pattern import title, end, prof title("Player record") def record(n='', g=''): if n == '': n = '<unknown>' if g.isnumeric(): g = int(g) else: g = 0 return f"Player '{n}' has scored {g} goal(s) in the league." n = str(input("Type a name » ")).strip().title() g = input("Number of goals » ") print(record(n, g)) end(), prof() def ficha(jog='<desconhecido>', gol=0):
""" Exercício Python #100 - Funções para sortear e somar Faça um programa que tenha uma lista chamada números e duas funções chamadas sorteia() e somaPar(). A primeira função vai sortear 5 números e vai colocá-los dentro da lista e a segunda função vai mostrar a soma entre todos os valores pares sorteados pela função anterior. """ from pattern import title, end, prof from random import sample, randint from time import sleep title('Functions for Raffle and Sum') lst = [] def raffle(input): r = sample(range(10), input) print(f"Sorting {len(r)} values from the list » ", end='') for i in r: lst.append(i) print(i, end=' ', flush=True), sleep(0.5) def sm(): s = [] for i in lst: if i % 2 == 0: s += [i] print(f"\n\nEven values are {s} and their sum is » {sum(s)}"), sleep(1)
from pattern import title, end from textwrap import dedent from lesson22 import coin, validate title("Exercising Python Modules") title('ex107 + ex108 + ex109 + ex110 + ex111 + ex112') p = validate.money("Enter price » R$ ") print(dedent(f""" The half of {coin.money(p)} is » {coin.half(p, True)}\n The double of '{coin.money(p)}' is » {coin.double(p, True)}\n Increasing '10%', we have » {coin.increase(p, 10, True)}\n Reducing '13%', we have » {coin.decrease(p, 13, True)} """)) title("Resume") coin.resume(p, 80, 35) end() """ Exercício Python #107 - Exercitando módulos em Python Crie um módulo chamado moeda.py que tenha as funções incorporadas aumentar(), diminuir(), dobro() e metade(). Faça também um programa que importe esse módulo e use algumas dessas funções. - Exercício Python #108 - Formatando Moedas em Python Adapte o código do desafio #107, criando uma função adicional chamada moeda() que consiga mostrar os números como um valor monetário formatado. - Exercício Python #109 - Formatando Moedas em Python Modifique as funções que form criadas no desafio 107 para que elas aceitem um parâmetro a mais, informando se o valor retornado por elas vai ser ou não formatado pela função moeda(), desenvolvida no desafio 108.
""" Exercício Python #113 - Funções aprofundadas em Python Crie um código em Python que teste se o site pudim está acessível pelo computador usado. """ from pattern import title, end from lesson22 import validate title("In-depth Python Functions") i = validate.integer("Type a integer number » ") r = validate.real("Type a real number » ") print(f"The integer reported was {i} and the real was {r}") end()
""" Faça um programa que tenha uma função notas() que pode receber várias notas de alunos e vai retornar um dicionário com as seguintes informações: - Quantidade de notas - A maior nota - A menor nota - A média da turma - A situação (opcional) Adicione também as docstrings dessa função para consulta pelo desenvolvedor. """ from pattern import title title("Analyzing and Generating Dictionaries") def notes(msg): note = 0 lst = [] dic = {} while True: i = float(input(msg)) if i == float(i): note = float(i) lst += [note] else: print(f"Invalid data. Please enter a number.") while True: res = str( input("Do you wish to continue? [Y/N] » ")).strip().upper()[0]
import pattern from textwrap import dedent pattern.title("Modularização") print(dedent(f""" » Surgiu no início da década de 60 » Sistemas ficando cada vez maiores » Foco: dividir um programa grande » Foco: aumentar a legibilidade » Foco: facilitarn a manutenção\n - - - - - - Vantagens - - - - - -\n » Organização do código » Facilidade na manutenção » Ocultação de código detalhado » Reutilização em outros projetos """)) from lesson22 import numeros num = int(input('Digite um valor: ')) fat = numeros.fatorial(num) print(f'0 fatorial de {num} é {fat}') print(f'O dobro de {num} é {numeros.dobro(num)}')
from pattern import title title("Handling Errors and Exceptions") try: a = int(input('Numerador: ')) b = int(input('Denominador: ')) r = a / b except (ValueError, TypeError): print('Tivemos um problema com os tipos de dados que você digitou.') except ZeroDivisionError: print('Não é possível dividir um número por zero!') except KeyboardInterrupt: print('O Usuário preferiu não informar os dados!') except Exception as erro: print(f'O problema encontrado foi {erro.__cause__}') else: print(f'O resultado é {r:.1f}') finally: print('Volte sempre! Muito obrigado!')
""" Exercício Python #102 - Função para Fatorial Nessa aula, vamos continuar nossos estudos de funções em Python, aprendendo mais sobre Interactive Help em Python, o uso de docstrings para documentar nossas funções, argumentos opcionais para dar mais dinamismo em funções Python, escopo de variáveis e retorno de resultados. """ from pattern import title, end, prof title("Function for Factorial") def fact(i=0, s=0, h=0): """This function calculates the factorial of a number Args: i (int): Input of the number to be factored s (str): If selected "Y", will show the calculation h (str): If selected "Y", will show the docstrings of function Returns: print: Shows the factorial of the number entered (i) """ f = 1 for c in range(i, 0, -1): if s == "Y": print(f"{c}", end=" ") if c > 1: print(f"x", end=" ") f *= c if s == "Y": print(f"» {f}")
from pattern import title from textwrap import dedent title("Lesson '20' content") print(dedent(""" » Interactive Help » docstrings » Argumentos opcionais » Escopo de variáveis » Retorno de resultados """), end='') title("Interactive Help") print("See the meaning » help(print) or print(input.__doc__)") title("docstrings") print( "Function Manual which can be accessed by the command » help(def), example » help(couter)" ) def contador(i, f, p): """ Faz uma contagem e mostra na tela. Args: i (int): início da contagem f (int): fim da contagem p (int): passo da contagem retunr : sem retorno
""" Exercício Python #101 - Funções para votação Crie um programa que tenha uma função chamada voto() que vai receber como parâmetro o ano de nascimento de uma pessoa, retornando um valor literal indicando se uma pessoa tem voto NEGADO, OPCIONAL e OBRIGATÓRIO nas eleições. """ from pattern import title, end, prof from datetime import date title("Voting Functions") def vote(i): v = date.today().year - i if v < 16: return f"\nWith {v} years » Cannot vote." elif v < 18 or v > 65: return f"\nWith {v} years » Optional vote." else: return f"\nWith {v} years » Mandatory vote." i = int(input("Type date of birth » ")) print(vote(i)), end(), prof() def voto(ano): atual = date.today().year idade = atual - ano if idade < 16:
""" Exercício Python #104 - Validando entrada de dados em Python Crie um programa que tenha a função leiaInt(), que vai funcionar de forma semelhante 'a função input() do Python, só que fazendo a validação para aceitar apenas um valor numérico. Ex: n = leiaInt('Digite um n: ') """ from pattern import title, end, prof title("Validating data entry in Python"), prof() def leiaInt(msg): ok = False valor = 0 while True: n = str(input(msg)) if n.isnumeric(): valor = int(n) ok = True else: print("ERRO! Digite um número inteiro válido.") if ok: break while True: res = str(input("Do you wish to continue? [Y/N] » ")).strip().upper()[0] if res in "YN": break print("Option invalid. Try again.") if res == "N": break return valor # Programa Principal