#Teórica e prática: # 5:20 - help() , 7:02 - quit , 7:25 - help(method) , method(method.__doc__) # 9:12 - 'O que são as "docstrings"?' , 14:17 - """""" (explicando uma def{docstring}) , # 18:17 - def function(v1=0,v2=0,v3=0): (parâmetros opcionais) , 21:02 - function(v3=1 + v2=3) , # 21:46 - 'Escopo de variáveis' , 22:28 - 'variável global(uma def pode conter uma variável)' , # 23:15 - 'variável local(a variável de uma def não pode ser reutilizada)' , 27:08 - 'variáveis # iguais, podem ter valores diferentes, dentro e fora de uma def' , 30:11 - global v , # 31:39 - 'Retornando valores' , 33:07 - return v , 37:44 - return True
Pessoal, (21:28) os "parâmetros opcionais" são importantíssimos porque muitas linguagens não sabem lidar com parâmetros caso eles não tenham valores "default" (padrões) já definidos. Ou seja, exercitar a pôr um valor padrão em cada parâmetro te evitará muita dor de cabeça no futuro. Usem e abusem desse recurso.
Pra quem o docstrings não tá indo automático quando aperta enter. Vá em: File -> Settings -> Tools -> Python Integrated Tools. E mude o Docstring format para reStructuredText
Aquele momento que eu recebi a notificação mas não estou nessa fase do curso ainda... Me aguardem nas férias 💪🏻 kkkkk Guanabara, thanks for the amazing work!
Todos com acesso a internet, motivação e paixão podem acho. Eu por exemplo terminei o curso de Python semana passada, embora q houveram momentos de preguiça e desistência, apenas lembra-te dos motivos, metas, objetivos e etc e irás conseguir. Persistência e paciência
Eu cheguei aqui com vontade de desistir. Em algumas aulas Guanabara ensina bem mas depois que as coisas ficam mais complexas já não é a mesma coisa. talvez a maneira que ele ensina dar certo pra uns e não pra outros. Mas de qualquer forma estou assistindo o curso pela quarta vez, e a medida em que persevero respondo mais exercícios.
Desobedeci o guanabara e to fazendo todos os programas das aulas e exercicios no Visual Studio Code, ao invés do PyCharm, e uma vantagem enorme do VSC é q quando vc passa o mouse em cima da função ele já mostra o help(função)
EX 101: ano = 2020 def voto(nasc=0): nasc = int(input('Ano de nascimento:')) conta = ano - nasc if conta < 16: return print('negado') if conta > 17: return print('obrigatório') if conta == 16 or 17: return print('opicional') if conta >= 65: return print('opicional') voto()
Tem um outro jeito também de verificar a documentação de uma determinada funcionalidade, mas exclusivo no Pycharm, que é usando CTRL + Q em cima da função que você quer saber sobre. Aliás, MELHOR JEITO DE EXPLICAR O QUE É UMA DOCSTRING QUE EU JÁ VI! Parabéns professor Guanabara!
guanabara eu te amo smdd eu odiava estudar qualquer cosa, agora com voce, eu to encaixando estudo na minha rotina, não para ir bem na faculdade, mas é por que voce me fez gostar de estudar seu lindo
função some 3 numeros: 15:57 def some(k, l, m): """Função some 3 números... Recebe 3 parametros de tipo inteiro Some com todos eles """ del k, l, m some(23, 7, 234)
Aula maravilhosa, como sempre! Muito obrigada, professor Guanabara e todo o pessoal do Curso em Vídeo, pelo maravilhoso conteúdo! Vcs são incríveis! ❤❤❤
Alô, Mundo! Mestre GG, galera... saudações. Como tinha estudado C, na faculdade, e aprendendo funções em Python, este exercício de Fatorial me fez recordar um exercício de fatorial em C.... Achei que dava e resolvi experimentar e... FUNCIONOU! O Python incorpora os benefícios da "recursividade" (uma função que chama ela mesma para resolver um problema - desculpem, ainda não sei se é do escopo do curso - acredito que sim, da forma que tem sido completo e bem cuidado até aqui). Mas, vejam abaixo, como é interessante: #Programa para calcular fatorial, através de uma função: com return (recursiva) def linha(): print('-=' * 25) def fact(num): """ --> Função para calcular o Fatorial de um número dado :param num: valor limite para o cálculo do fatorial :return: 1, se 0 ou 1, ou o fatorial se (n != 0 e n != 1) """ if num == 0 or num == 1: return 1 print(f'{num} x ', end='') return num * fact(num - 1) #PP linha() print(' CÁLCULO DO FATORIAL (n!)') linha() a = int(input('Digite um valor para o Fatorial: ')) print(f'1 --> O fatorial de {a}! é {fact(a)}') from math import factorial print('--------------------------------------------------') print(' FIM!') linha() Agora, vejam um print da sua execução: (é muito legal!). C:\Users\ganym\AppData\Local\Programs\Python\Python39\python.exe C:/Users/ganym/PycharmProjects/1001Exercícios/Aula21df101a.py -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= CÁLCULO DO FATORIAL (n!) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Digite um valor para o Fatorial: 5 5 x 4 x 3 x 2 x 1 --> O fatorial de 5! é 120 ------------------------------------------------------------------------- FIM! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Process finished with exit code 0 Abraços, povo...
O curso de Lógica da programação que fiz aqui também no CeV tá me ajudando bastante! Se eu não tivesse feito esse curso antes de começar esse de Python, estaria tendo muito mais dificuldade nesses assuntos de variáveis compostas e funções, principalmente. Valeu Guanabara! Valeu CeV! =D
#Ex 103 def ficha(name, goals=0): print(f"O jogador {'' if name == '' else name} marcou {goals} gol(s)") # Programa Principal n = str(input('Digite o nome: ')) g = str(input('Gols: ')) if g.isnumeric(): g = int(g) else: g = 0 ficha(n, g)
Só faltou abordar recursividade, que é uma função que chama a própria função. De resto, excelente aula!!! Exemplo de função recursiva de fatorial: #Fatorial def fat(x): if(x > 0): return x* fat(x - 1); else: return 1; print(fat(6));
Resumindo escopo de variável: se uma variável é declarada dentro do método ela só vale para o próprio método(local), se for declarada fora dos métodos, ela pode ser usada em todo o programa(global), também é possível criar variáveis locais com o mesmo nome das variáveis globais, caso essas não estejam incluídas no método em questão(chamando com o 'global').
Alguém pode me ajudar com uma dúvida???? Na aula anterior o Guanabara mostrou a possibilidade de se colocar uma lista como parâmetro. O exemplo mostrava uma função que dobrava a lista. O exemplo era mais ou menos assim: def dobra(lista): pos = 0 while pos < len(lista): lista[pos] = lista[pos] * 2 pos = pos + 1 valores = [6, 3, 9, 1, 0, 2] dobra(valores) print(valores) Nessa aula, o Guanabara falou sobre "Escopo de variáveis": Uma variável declarada fora da função, vale dentro da função. (Escopo global) Uma variável declarada dentro da função, só vale na área da função (não vale para o programa principal.) (Escopo local) No exemplo da lista, Se a lista “valores” foi definida fora da função , como a função conseguiu mudá-la? Obrigado!!!
Os elementos mutáveis, como a lista e o dicionário podem ser alterados direto na função, é como nas outras aulas que se você atribuir uma lista a outra, quando você altera uma a outra também é alterada. Tipo: lista1 = [ 2, 3, 4 ] e lista2 = lista, se você colocar um elemento (der um append na lista 2), a lista1 também recebe o valor
pra evitar que a média (ex. 105) saia com muitos algarismos, na hora de definir o elemento 'média' do dicionário a gente pode usar: r['média'] = float("%.2f" % round(sum(n)/len(n)))
Eu fiquei com uma dúvida sobre escopo. Ele funciona diferente para listas? Durante a aula 20, foi usado de exemplo a criação da lista "valores" no programa principal. Então foi criada uma função chamada "dobra" que recebia o parâmetro "lst", percorria cada elemento da lista e multiplicava por 2. No programa principal, chamou a função "dobra" e em seguida deu um print na lista "valores". E a lista "valores" estava dobrada. Se a multiplicação ocorreu apenas no parâmetro formal (lst) dentro da função, por que a lista "valores" que era o parâmetro real foi afetada? Desculpe se não consegui acompanhar o raciocínio, kkkkk. Vou deixar aqui embaixo o código que foi utilizado na aula 20: def dobra(lst): pos = 0 while pos < len(lst): lst[pos] *= 2 pos += 1 # Programa Principal valores = [7, 2, 5, 0, 4] print(valores) dobra(valores) print(valores)
Olá, como ele havia citado no video, em python os parâmetros são passados por referencia e não por valores. Isso significa que os valores que você passa como argumento possuem o mesmo endereço de memória no escopo da função e fora dele, você referência os valores do escopo global na função. Isso pode ser facilmente verificado usando a função id(), que retorna endereço que algum valor possui na memória. Teste o código a seguir: def list_ID(lst): return id(lst) lista = [1, 2, 3] print(id(lista)) print(list_ID(lista)) Se você testar o código, verá que ambos os prints retornarão uma sequência de números indênticos, que é o endereço na memória ocupado pelas listas. Lembrado que essa regra não vale só para lista mas para qualquer valor passados como argumento , em listas esse detalhe fica mais perceptível pois como você deve saber listas são estruturas de dados multáveis, e o que você modificar dentro do escopo da função também será modificado no escopo global. Se ficar meio confuso a explicação lembre-se que, quando você iguala uma variável que possui uma lista a outra variável você não está criando uma cópia mas sim uma referência para a mesma lista: a = [1, 2,3] b = a No trecho acima tanto 'a' como 'b' apontam para a mesma lista, similar com o que acontece na função. Espero que eu tenha ajudado.
As vezes eu lendo o livro não consigo entender algumas coisas que aqui consigo entender e vice versa. Quem está com dificuldade procurem vários meios de aprendizagem, não fiquem só em 1, aqui no Guanabara é muito bom, porém ele passa muita matemática, no livro passa muito assunto cotidiano de exemplos de pizzaria ou lanchonete, matemática é bom, mas o guanabara só fala disso, e eu odeio matemática. Mas de qualquer forma as aulas aqui me ajudaram muito. Obrigado!!
Minhas Resoluções dos Exercícios #Ex:101 def voto(idade): from datetime import date ano = date.today().year Idade = ano - idade if 0 < Idade < 16: return f'Com {Idade} anos de idade: NÃO VOTA!' elif 18 65 or 16 18: return f'Com {Idade} anos de idade: VOTO OPCIONAL!' else: return 'Erro, Tente Novamente!' nasc = int(input('Ano de Nascimento: ')) print(voto(nasc)) #Ex:102 def fatorial(num=1, show=False): '''-> Calcula o fatorial de um número :param num: O número que ira ser calculado o fatorial :param show: (Opcional) Detalhes a mais do calculo do fatorial :return: O valor do fatorial do número passado...''' fat = 1 for c in range(num, 1, -1): fat *= c print('--' * 15) if show == True: for c1 in range(num, 1, -1): print(f'{c1} ', end='X ') print(f'1 = {fat}') elif show == False: print('--' * 15) print(f'O fatorial de {num} é {fat}') fatorial(10, True) #Ex: 103 def ficha(nome='', gols=0): print(f'O jogador {nome} fez {gols} gols no campeonato.') print('--' * 15) n = str(input('Nome do jogador: ')) g = str(input('Número de gols: ')) if g.isnumeric(): g = int(g) else: g = 0 if n.strip() == '': ficha(gols=g) else: ficha(n, g) #Ex: 104 def leiaint(num): n = str(input(num)) if n.isnumeric() == False: while n.isnumeric() == False: print('\033[1;37mErro, Digite um NÚMERO INTEIRO VÁLIDO!\033[m') n = str(input(num)) print('__' * 20) print(f'Você acabou de digitar o número {n}') print('--' * 20) numero = leiaint('Digite um número: ') #Ex: 105 def notas(*args, sit=False): """-> Função para mostar os dados das notas de um determinado aluno :param args: Notas do aluno :param sit: (Opcional) Mostar a situação do aluno :return: Retorna um dicionário com os dados das notas do aluno""" cont = 0 maior = 0 menor = 0 soma = 0 dicionario = {} for v in args: if cont == 0: maior = v menor = v if v > maior: maior = v if v < menor: menor = v soma = soma + v cont += 1 media = soma / cont dicionario['Total de Nts'] = cont dicionario['Maior Nt'] = maior dicionario['Menor Nt'] = menor dicionario['Média'] = media if sit == True: dicionario['Situação'] = '' if media < 5: dicionario['Situação'] = 'Ruim' if 5 = 7: dicionario['Situação'] = 'Boa' return dicionario aluno = notas(1, 2, 3, 4, 5, 6, 7, sit=True) print(aluno) help(notas) #Ex: 106 from time import sleep def ajuda(): while True: print(f''' \033[1;47m{"~~" * 15}\033[m \033[1;47m SISTEMA DE AJUDA PYHELP \033[m \033[1;47m{"~~" * 15}\033[m''', flush=True) print() sleep(0.5) pergunta = str(input('Digite uma Função/Biblioteca: ')).strip().upper() if pergunta == 'FIM': break sleep(0.5) print(f''' \033[1;45m{"~~" * 20} \033[m \033[1;45mAcessando o manual do comando {pergunta.lower()}. \033[m \033[1;45m{"~~" * 20} \033[m''') print('', flush=True) sleep(0.5) print('\033[1;41m') comando = help(pergunta) print('\033[m', flush=True) sleep(0.5) print(f'''\033[1;44m {"~~" * 6}\033[m \033[1;44m {"ATÉ LOGO"} \033[m \033[1;44m {"~~" * 6}\033[m''') ajuda()
Acho bem mais rápido segurar ctrl e apertar com o botão do mouse, ele vai direto para a definição e la pode ate mesmo entender oque ta acontecendo mais a fundo
Exercício #102: def fatorial(n, show=True): """ :param n: O número a ser calculado :param show: Mostrar ou não cálculo :return: O valor fatorial do número n """ f = 1 if show is False: for i in range(n, 0, -1): f *= i elif show is True: for i in range(n, 0, -1): f *= i if i != 1: print(f'{i} * ', end='') else: print(f'{i} = ', end='') print(f) fatorial(5) help(fatorial)
vlw seu código ajudou a melhorar o meu(meu código abaixo): def fatorial(a=1, show=False): """ :param a: Número que será cálculado o fatorial :param show=True: para mostrar os cálculo feito :param show=False: mostrar somente o resultado cálculado, por padrão o show ja e definido False :return: para retornar o valor do cálculo de a """ f = 1 if show is False: for c in range(a, 0, -1): f *= c return f if show is True: for c in range(a, 0, -1): f *= c if c != 1: print(f'{c} X ', end='') else: print(f'{c} = ', end='') return f num = int(input('Digite um Núumero para a: ')) print(f'o fatorial de {num} é: ', end='') print(fatorial(num, show=True)) help(fatorial)
@@lucasfaria2115 ele nao posto mais, ele vid emorar, asim que acabr aqui, voce deve procurar outro material, livros, tem tbm o canal Ignoranci Zero, que ensina Python tbm
O site do curso em vídeo não estava suportando a quantidade de acessos, e eles não estavam conseguindo colocar o M2 e M3 lá. Agora o site tá fora do ar para manutenção; segundo ele, quando voltar vai estar liberado para fazer a prova e receber o certificado.
Eu fiquei com uma dúvida, no algóritimo do contador. No meu desafio 98, eu fiz ele um pouco diferente. Invés de atribuir uma variável C a contagem, igual foi feito no vídeo: c = i while c
Exercício #104 def leiaint(b, c=0): print(b) c = str(input()) while c not in '0987654321': c = str(input('ERRO! Digite um número inteiro: ')) else: return int(c) #Programa principal n = leiaint('Digite um número: ') print(f'Você digitou o número {n}')
102: def fatorial(n, show): """ -> Calcula o Fatorial de um número. :para n: o número a ser calculado. :param show (opcional) Mostrar ou não a conta :return: O valor do Fatorial de um número n """ print('-' * 30) ft = 1 while n > 0: ft = ft * n if show == True: print(n, end=' ') if n == 1: print('=', end=' ') break print('x', end=' ') n = n -1 print(ft) fatorial(7, show=True)
103: def ficha(): print('-'*30) nome = str(input('Nome do Jogador: ')).title().strip() gols = str(input('Número de Gols: ')) print('-'*30) if nome == '': nome = '' if gols == '': gols = '0' if gols.isnumeric() == False: print('ERRO. DIGITE UM NÚMERO VÁLIDO') else: print(f'O jogador {nome} fes {gols} gol(s) no campeonato.') ficha()
Minha resposta do exercício 102. Muito bom praticar o uso do if dentro do print, fazia um tempo que não usava e já estava quase esquecendo de como usar ele. def fatorial(n=1, show=False): """ -> Calcula o fatorial de um número. :param n: O número a ser calculado. :param show: (opcional) Mostrar ou não a conta. :return: O valor do fatorial de um número n. """ f = 1 for c in range(n, 0, -1): if show == True: print(f'{c} ',end='' '= ' if c == 1 else 'x ') f *= c return f print(fatorial(7, show=True))
Só uma dúvida: as variáveis locais criadas dentro de uma função, têm o mesmo valor dentro de outra função ou essa outra função teria escopo global do ponto de vista da primeira função?
def leiaInt(num): x = input(f'{num}') try : y = int(x) return y except: print('ERRO!, Não foi possivel converter') return leiaInt('Digite um número') n = leiaInt('Digite um número: ') print(f'O número digitado foi {n}')
Resolução do exercício #102: def fatorial(a=1, show=False): """ :param a: Número que será cálculado o fatorial :param show=True: Para mostrar os cálculo feito :param show=False: Para mostrar somente o resultado cálculado, por padrão o show já e definido False :return: para retornar o valor do cálculo de a """ f = 1 if show is False: for c in range(a, 0, -1): f *= c return f if show is True: for c in range(a, 0, -1): f *= c if c != 1: print(f'{c} X ', end='') else: print(f'{c} = ', end='') return f num = int(input('Digite um Número para a: ')) print(f'o fatorial de {num} é: ', end='') print(fatorial(num, show=True)) help(fatorial)
Duvida, nos parametros opcionais, caso a funcao seja pra Multiplicar essa solucao nao daria certo de definir as variaveis como 0. Quai seria a solucao para tornalas opcionais?
uma duvida Gustavo. Vc poderia fazer um video com sugestao de livros. ou pensa vc proprio em lancar um. seria uma boa ideia. seus videos sao excelentes
Estude pelo nosso site e tire certificado de 40 horas. Curso completo em:
www.cursoemvideo.com/curso/python-3-mundo-3/
#Teórica e prática:
# 5:20 - help() , 7:02 - quit , 7:25 - help(method) , method(method.__doc__)
# 9:12 - 'O que são as "docstrings"?' , 14:17 - """""" (explicando uma def{docstring}) ,
# 18:17 - def function(v1=0,v2=0,v3=0): (parâmetros opcionais) , 21:02 - function(v3=1 + v2=3) ,
# 21:46 - 'Escopo de variáveis' , 22:28 - 'variável global(uma def pode conter uma variável)' ,
# 23:15 - 'variável local(a variável de uma def não pode ser reutilizada)' , 27:08 - 'variáveis
# iguais, podem ter valores diferentes, dentro e fora de uma def' , 30:11 - global v ,
# 31:39 - 'Retornando valores' , 33:07 - return v , 37:44 - return True
like pelo nome muito loco
valeu mano, ajudou pra caramba na hora de fazer um resumo no caderno!
Guanabara, não conheci ninguém até hoje com uma didática tão boa quanto a sua. Este curso é um presente. Muito obrigado.
Professor Nélio Alves é bem mais didático
Pessoal, (21:28) os "parâmetros opcionais" são importantíssimos porque muitas linguagens não sabem lidar com parâmetros caso eles não tenham valores "default" (padrões) já definidos. Ou seja, exercitar a pôr um valor padrão em cada parâmetro te evitará muita dor de cabeça no futuro. Usem e abusem desse recurso.
"""
>>> Curso Python
>> Aula 21 - parte 2
4:02→ Interacrive Help (documentação do python)
9:09→ docstrings
15:49→ argumentos(Parâmetros) opcionais
21:43→ Escopo de variáveis
31:38→ Retorno de resultados
"""
Grata!
@@marcelalima8312 😉
Pra quem o docstrings não tá indo automático quando aperta enter. Vá em: File -> Settings -> Tools -> Python Integrated Tools. E mude o Docstring format para reStructuredText
Valeu Luís!!!
não consegui achar essas opção, talvez pelo tempo tenha mudado caso consiga me ajudar agradeço!
Aquele momento que eu recebi a notificação mas não estou nessa fase do curso ainda... Me aguardem nas férias 💪🏻 kkkkk
Guanabara, thanks for the amazing work!
É incrível ver como as visualizações forem caindo durante o curso...
Seleção natural em ação.
@@Someone-uw7je genau, :/ infelizmente não é todos que podem acompanhar o curso
Todos com acesso a internet, motivação e paixão podem acho. Eu por exemplo terminei o curso de Python semana passada, embora q houveram momentos de preguiça e desistência, apenas lembra-te dos motivos, metas, objetivos e etc e irás conseguir. Persistência e paciência
@@genau5211 é, mas incrivel que todos podem ficar postando bobagem nas redes socia, mas algo relevante não podem...
Eu cheguei aqui com vontade de desistir. Em algumas aulas Guanabara ensina bem mas depois que as coisas ficam mais complexas já não é a mesma coisa. talvez a maneira que ele ensina dar certo pra uns e não pra outros. Mas de qualquer forma estou assistindo o curso pela quarta vez, e a medida em que persevero respondo mais exercícios.
Pra quem está na luta e está com dificuldades, não desista, amigo(a), vc não está sozinho(a). Vamos em frente!
Utilizar a gamificação nesse projeto foi uma das maiores sacadas que eu vi nos últimos anos no mundo da educação online. Fantástico Guanabara!
Desobedeci o guanabara e to fazendo todos os programas das aulas e exercicios no Visual Studio Code, ao invés do PyCharm, e uma vantagem enorme do VSC é q quando vc passa o mouse em cima da função ele já mostra o help(função)
O pycharm também faz isso, pelo menos nas versões atuais.
o pycharm faz isso tbm
ri mais do que deveria da parte "Desobedeci o Guanabara" kkkkkkjj
eu uso o jupyter notebook, sla, acho mais pratico
Eu uso o Replit
Olá! Amo suas aulas.Muito obrigada.Santa Cruz do Capibaribe. Pernambuco
Obrigado!
n sabia que dava pra doar nos comentários
EX 101:
ano = 2020
def voto(nasc=0):
nasc = int(input('Ano de nascimento:'))
conta = ano - nasc
if conta < 16:
return print('negado')
if conta > 17:
return print('obrigatório')
if conta == 16 or 17:
return print('opicional')
if conta >= 65:
return print('opicional')
voto()
>>> Curso Python
>> Aula 21 - parte 2
4:02→ Interacrive Help (documentação do python)
9:09→ docstrings
15:49→ argumentos(Parâmetros) opcionais
21:43→ Escopo de variáveis
31:38→ Retorno de resultados
Realmente, parabenizo toda a equipe do Curso em Vídeo pelo excelente trabalho feito e pelo compromisso de ensinar com qualidade.
Tem um outro jeito também de verificar a documentação de uma determinada funcionalidade, mas exclusivo no Pycharm, que é usando CTRL + Q em cima da função que você quer saber sobre.
Aliás, MELHOR JEITO DE EXPLICAR O QUE É UMA DOCSTRING QUE EU JÁ VI!
Parabéns professor Guanabara!
Explicação do comando return: 33:08
vc e um anjo
Boa amigo👍
Sensação de dever cumprido ao ver o programa rodando igual ao do mestre Guanabara!
melhor curso de python em português do mundo
graças ao seu curso, eu já estou me adiantando para quando entrar na faculdade em 2020
acho que o corona atrapalhou seus planos kkkk
Como eh que tava facul man?
é muito legal a prender python, é mais legal ainda com um professor que sabe o que faz
simplesmente eu só tenho a agradecer ao Guanabara por todo conhecimento passado, sem sombra de dúvidas o melhor professor que eu já tive na vida
roubou minha voto
Gustavo GuanaMITO! INDICO SEU CURSO PARA TODO QUE QUEREM APRENDER! ÓTIMA DIDÁTICA!
guanabara eu te amo smdd eu odiava estudar qualquer cosa, agora com voce, eu to encaixando estudo na minha rotina, não para ir bem na faculdade, mas é por que voce me fez gostar de estudar
seu lindo
A sua didatica é a melhor que existe, obrigado
função some 3 numeros: 15:57
def some(k, l, m):
"""Função some 3 números...
Recebe 3 parametros de tipo inteiro
Some com todos eles
"""
del k, l, m
some(23, 7, 234)
Aula maravilhosa, como sempre! Muito obrigada, professor Guanabara e todo o pessoal do Curso em Vídeo, pelo maravilhoso conteúdo! Vcs são incríveis! ❤❤❤
Essa aula foi fantástica . Tirei dívidas que eu não estava conseguindo compreender . Guanabara vc é um grande professor. Parabéns
Alô, Mundo! Mestre GG, galera... saudações. Como tinha estudado C, na faculdade, e aprendendo funções em Python, este exercício de Fatorial me fez recordar um exercício de fatorial em C.... Achei que dava e resolvi experimentar e... FUNCIONOU! O Python incorpora os benefícios da "recursividade" (uma função que chama ela mesma para resolver um problema - desculpem, ainda não sei se é do escopo do curso - acredito que sim, da forma que tem sido completo e bem cuidado até aqui).
Mas, vejam abaixo, como é interessante:
#Programa para calcular fatorial, através de uma função: com return (recursiva)
def linha():
print('-=' * 25)
def fact(num):
"""
--> Função para calcular o Fatorial de um número dado
:param num: valor limite para o cálculo do fatorial
:return: 1, se 0 ou 1, ou o fatorial se (n != 0 e n != 1)
"""
if num == 0 or num == 1:
return 1
print(f'{num} x ', end='')
return num * fact(num - 1)
#PP
linha()
print(' CÁLCULO DO FATORIAL (n!)')
linha()
a = int(input('Digite um valor para o Fatorial: '))
print(f'1 --> O fatorial de {a}! é {fact(a)}')
from math import factorial
print('--------------------------------------------------')
print(' FIM!')
linha()
Agora, vejam um print da sua execução: (é muito legal!).
C:\Users\ganym\AppData\Local\Programs\Python\Python39\python.exe C:/Users/ganym/PycharmProjects/1001Exercícios/Aula21df101a.py
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
CÁLCULO DO FATORIAL (n!)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Digite um valor para o Fatorial: 5
5 x 4 x 3 x 2 x 1 --> O fatorial de 5! é 120
-------------------------------------------------------------------------
FIM!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Process finished with exit code 0
Abraços, povo...
Speed run de conteúdo, bem diferente dos outros videos, que eram todos sobre o mesmo assunto. Gostei!
O curso de Lógica da programação que fiz aqui também no CeV tá me ajudando bastante! Se eu não tivesse feito esse curso antes de começar esse de Python, estaria tendo muito mais dificuldade nesses assuntos de variáveis compostas e funções, principalmente.
Valeu Guanabara! Valeu CeV! =D
Passa contato pra trocarmos umas ideias
Verdade, muita coisa ficou mais clara depois que fiz este curso que mencionou.
Muito obrigado! Você é o melhor professor do mundo. Saludos!
Aulãoooo que fala né? Top demais, obrigada Guanabara ❤
Ainda não acabou mas já deixa saudades!
És o melhor Guanabara!!! Show as suas aulas
Interessante o interactive help, bom para quem manja de inglês dar uma olhada dps do curso em tudo a aprender mais coisas em python
TÃO PEGANDO MUITO LEVE, ATÉ EU ESTOU CONSEGUINDO FAZER, PAI GAFANHOTO!!
#Ex 103
def ficha(name, goals=0):
print(f"O jogador {'' if name == '' else name} marcou {goals} gol(s)")
# Programa Principal
n = str(input('Digite o nome: '))
g = str(input('Gols: '))
if g.isnumeric():
g = int(g)
else:
g = 0
ficha(n, g)
Muito bom o curso, amo programar em python, obrigado Gustavo
47:17 - "Use cores, não falei para ficar bonito, falei para usar cores"
🤣🤣🤣
Nao aguentei
Excelente Gustavo. Parabéns!
OOPAAA, VAAleu Guanabara!! mais uma aula pra gente .grato
Só faltou abordar recursividade, que é uma função que chama a própria função. De resto, excelente aula!!!
Exemplo de função recursiva de fatorial:
#Fatorial
def fat(x):
if(x > 0):
return x* fat(x - 1);
else:
return 1;
print(fat(6));
Interessante, vou ver mais a respeito
@@marcelalima8312 é meio confuso no começo, quebra a cabeça, mas depois tu pega a lógica Marcela. Bons estudos!!
Resumindo escopo de variável: se uma variável é declarada dentro do método ela só vale para o próprio método(local), se for declarada fora dos métodos, ela pode ser usada em todo o programa(global), também é possível criar variáveis locais com o mesmo nome das variáveis globais, caso essas não estejam incluídas no método em questão(chamando com o 'global').
Muito obrigado pelo curso! Ótima qualidade e excelente pra quem quer iniciar no mundo da programação!
Sensacionais estas aulas! Parabéns!!!!
E a aula está maravilhosa demaisss!!!
Alguém pode me ajudar com uma dúvida????
Na aula anterior o Guanabara mostrou a possibilidade de se colocar uma lista como parâmetro. O exemplo mostrava uma função que dobrava a lista.
O exemplo era mais ou menos assim:
def dobra(lista):
pos = 0
while pos < len(lista):
lista[pos] = lista[pos] * 2
pos = pos + 1
valores = [6, 3, 9, 1, 0, 2]
dobra(valores)
print(valores)
Nessa aula, o Guanabara falou sobre "Escopo de variáveis":
Uma variável declarada fora da função, vale dentro da função. (Escopo global)
Uma variável declarada dentro da função, só vale na área da função (não vale para o programa principal.) (Escopo local)
No exemplo da lista,
Se a lista “valores” foi definida fora da função
, como a função conseguiu mudá-la?
Obrigado!!!
Os elementos mutáveis, como a lista e o dicionário podem ser alterados direto na função, é como nas outras aulas que se você atribuir uma lista a outra, quando você altera uma a outra também é alterada. Tipo: lista1 = [ 2, 3, 4 ] e lista2 = lista, se você colocar um elemento (der um append na lista 2), a lista1 também recebe o valor
vi energias positivas em cima do seu vídeo.
amei a aula , que didática incrível!
Achei essa parte bem mais facil que listas/dicionarios...chega deu um hype
Aeeeeeeeeee ! Boa Guanabara ! Soh pelo OO em Python !
pra evitar que a média (ex. 105) saia com muitos algarismos, na hora de definir o elemento 'média' do dicionário a gente pode usar:
r['média'] = float("%.2f" % round(sum(n)/len(n)))
Obg Gustavo Guanabara, como sempre aulas com muita qualidade e conteúdo!
Vlw, Mestre! Ajudando demais
Parabéns Guanabara!
Só elogios a esse senhor parabéns ....
Eu fiquei com uma dúvida sobre escopo. Ele funciona diferente para listas? Durante a aula 20, foi usado de exemplo a criação da lista "valores" no programa principal. Então foi criada uma função chamada "dobra" que recebia o parâmetro "lst", percorria cada elemento da lista e multiplicava por 2. No programa principal, chamou a função "dobra" e em seguida deu um print na lista "valores". E a lista "valores" estava dobrada. Se a multiplicação ocorreu apenas no parâmetro formal (lst) dentro da função, por que a lista "valores" que era o parâmetro real foi afetada? Desculpe se não consegui acompanhar o raciocínio, kkkkk. Vou deixar aqui embaixo o código que foi utilizado na aula 20:
def dobra(lst):
pos = 0
while pos < len(lst):
lst[pos] *= 2
pos += 1
# Programa Principal
valores = [7, 2, 5, 0, 4]
print(valores)
dobra(valores)
print(valores)
Olá, como ele havia citado no video, em python os parâmetros são passados por referencia e não por valores. Isso significa que os valores que você passa como argumento possuem o mesmo endereço de memória no escopo da função e fora dele, você referência os valores do escopo global na função.
Isso pode ser facilmente verificado usando a função id(), que retorna endereço que algum valor possui na memória. Teste o código a seguir:
def list_ID(lst):
return id(lst)
lista = [1, 2, 3]
print(id(lista))
print(list_ID(lista))
Se você testar o código, verá que ambos os prints retornarão uma sequência de números indênticos, que é o endereço na memória ocupado pelas listas. Lembrado que essa regra não vale só para lista mas para qualquer valor passados como argumento , em listas esse detalhe fica mais perceptível pois como você deve saber listas são estruturas de dados multáveis, e o que você modificar dentro do escopo da função também será modificado no escopo global. Se ficar meio confuso a explicação lembre-se que, quando você iguala uma variável que possui uma lista a outra variável você não está criando uma cópia mas sim uma referência para a mesma lista:
a = [1, 2,3]
b = a
No trecho acima tanto 'a' como 'b' apontam para a mesma lista, similar com o que acontece na função.
Espero que eu tenha ajudado.
Vocês vão fazer aula de classes? Orientação a objetos e tal?
up
Donanup
up
UPPPPPPP
UUUPPPPP =D
As vezes eu lendo o livro não consigo entender algumas coisas que aqui consigo entender e vice versa. Quem está com dificuldade procurem vários meios de aprendizagem, não fiquem só em 1, aqui no Guanabara é muito bom, porém ele passa muita matemática, no livro passa muito assunto cotidiano de exemplos de pizzaria ou lanchonete, matemática é bom, mas o guanabara só fala disso, e eu odeio matemática. Mas de qualquer forma as aulas aqui me ajudaram muito. Obrigado!!
Mais 2 aulas! Rumo ao final desse grande curso!
Aula e exercicios terminados.
04/08/24 horario 19:46
Minhas Resoluções dos Exercícios
#Ex:101
def voto(idade):
from datetime import date
ano = date.today().year
Idade = ano - idade
if 0 < Idade < 16:
return f'Com {Idade} anos de idade: NÃO VOTA!'
elif 18 65 or 16 18:
return f'Com {Idade} anos de idade: VOTO OPCIONAL!'
else:
return 'Erro, Tente Novamente!'
nasc = int(input('Ano de Nascimento: '))
print(voto(nasc))
#Ex:102
def fatorial(num=1, show=False):
'''-> Calcula o fatorial de um número
:param num: O número que ira ser calculado o fatorial
:param show: (Opcional) Detalhes a mais do calculo do fatorial
:return: O valor do fatorial do número passado...'''
fat = 1
for c in range(num, 1, -1):
fat *= c
print('--' * 15)
if show == True:
for c1 in range(num, 1, -1):
print(f'{c1} ', end='X ')
print(f'1 = {fat}')
elif show == False:
print('--' * 15)
print(f'O fatorial de {num} é {fat}')
fatorial(10, True)
#Ex: 103
def ficha(nome='', gols=0):
print(f'O jogador {nome} fez {gols} gols no campeonato.')
print('--' * 15)
n = str(input('Nome do jogador: '))
g = str(input('Número de gols: '))
if g.isnumeric():
g = int(g)
else:
g = 0
if n.strip() == '':
ficha(gols=g)
else:
ficha(n, g)
#Ex: 104
def leiaint(num):
n = str(input(num))
if n.isnumeric() == False:
while n.isnumeric() == False:
print('\033[1;37mErro, Digite um NÚMERO INTEIRO VÁLIDO!\033[m')
n = str(input(num))
print('__' * 20)
print(f'Você acabou de digitar o número {n}')
print('--' * 20)
numero = leiaint('Digite um número: ')
#Ex: 105
def notas(*args, sit=False):
"""-> Função para mostar os dados das notas de um determinado aluno
:param args: Notas do aluno
:param sit: (Opcional) Mostar a situação do aluno
:return: Retorna um dicionário com os dados das notas do aluno"""
cont = 0
maior = 0
menor = 0
soma = 0
dicionario = {}
for v in args:
if cont == 0:
maior = v
menor = v
if v > maior:
maior = v
if v < menor:
menor = v
soma = soma + v
cont += 1
media = soma / cont
dicionario['Total de Nts'] = cont
dicionario['Maior Nt'] = maior
dicionario['Menor Nt'] = menor
dicionario['Média'] = media
if sit == True:
dicionario['Situação'] = ''
if media < 5:
dicionario['Situação'] = 'Ruim'
if 5 = 7:
dicionario['Situação'] = 'Boa'
return dicionario
aluno = notas(1, 2, 3, 4, 5, 6, 7, sit=True)
print(aluno)
help(notas)
#Ex: 106
from time import sleep
def ajuda():
while True:
print(f'''
\033[1;47m{"~~" * 15}\033[m
\033[1;47m SISTEMA DE AJUDA PYHELP \033[m
\033[1;47m{"~~" * 15}\033[m''', flush=True)
print()
sleep(0.5)
pergunta = str(input('Digite uma Função/Biblioteca: ')).strip().upper()
if pergunta == 'FIM':
break
sleep(0.5)
print(f'''
\033[1;45m{"~~" * 20} \033[m
\033[1;45mAcessando o manual do comando {pergunta.lower()}. \033[m
\033[1;45m{"~~" * 20} \033[m''')
print('', flush=True)
sleep(0.5)
print('\033[1;41m')
comando = help(pergunta)
print('\033[m', flush=True)
sleep(0.5)
print(f'''\033[1;44m {"~~" * 6}\033[m
\033[1;44m {"ATÉ LOGO"} \033[m
\033[1;44m {"~~" * 6}\033[m''')
ajuda()
Perfeito!, funções está sendo tudo de bom.
Acho bem mais rápido segurar ctrl e apertar com o botão do mouse, ele vai direto para a definição e la pode ate mesmo entender oque ta acontecendo mais a fundo
Faz a próxima aula sobre Numpy e Pandas!
Eu apoio!
Outra grande aula, nosso professor! Obrigado!!
Eu estava procurando isso de global a, ajudou bastante :D
Muito bom Gustavo, obrigado pelo seu trabalho!
Muito obrigado Gustavo!
finalmente aula de qualidade de python!!!!!
Exercício #102:
def fatorial(n, show=True):
"""
:param n: O número a ser calculado
:param show: Mostrar ou não cálculo
:return: O valor fatorial do número n
"""
f = 1
if show is False:
for i in range(n, 0, -1):
f *= i
elif show is True:
for i in range(n, 0, -1):
f *= i
if i != 1:
print(f'{i} * ', end='')
else:
print(f'{i} = ', end='')
print(f)
fatorial(5)
help(fatorial)
vlw seu código ajudou a melhorar o meu(meu código abaixo):
def fatorial(a=1, show=False):
"""
:param a: Número que será cálculado o fatorial
:param show=True: para mostrar os cálculo feito
:param show=False: mostrar somente o resultado cálculado, por padrão o show ja e definido False
:return: para retornar o valor do cálculo de a
"""
f = 1
if show is False:
for c in range(a, 0, -1):
f *= c
return f
if show is True:
for c in range(a, 0, -1):
f *= c
if c != 1:
print(f'{c} X ', end='')
else:
print(f'{c} = ', end='')
return f
num = int(input('Digite um Núumero para a: '))
print(f'o fatorial de {num} é: ', end='')
print(fatorial(num, show=True))
help(fatorial)
Adoro esse cara mais seria legal ele responder a respeito dos certificados do m2 e m3
Gente me respondam PFV!!!
Dps dessa aula ja acabou o curso de python? Não estou achando a aula 22. Me ajudem!
@@lucasfaria2115 ele nao posto mais, ele vid emorar, asim que acabr aqui, voce deve procurar outro material, livros, tem tbm o canal Ignoranci Zero, que ensina Python tbm
O site do curso em vídeo não estava suportando a quantidade de acessos, e eles não estavam conseguindo colocar o M2 e M3 lá. Agora o site tá fora do ar para manutenção; segundo ele, quando voltar vai estar liberado para fazer a prova e receber o certificado.
Melhor canal de cursos
Aff é incrível como parece que o professor sabe quando a gente não ta fazendo os exercícios básicos de cores e tal kkkk
Eu fiquei com uma dúvida, no algóritimo do contador.
No meu desafio 98, eu fiz ele um pouco diferente.
Invés de atribuir uma variável C a contagem, igual foi feito no vídeo:
c = i
while c
Exercício #104
def leiaint(b, c=0):
print(b)
c = str(input())
while c not in '0987654321':
c = str(input('ERRO! Digite um número inteiro: '))
else:
return int(c)
#Programa principal
n = leiaint('Digite um número: ')
print(f'Você digitou o número {n}')
102:
def fatorial(n, show):
"""
-> Calcula o Fatorial de um número.
:para n: o número a ser calculado.
:param show (opcional) Mostrar ou não a conta
:return: O valor do Fatorial de um número n
"""
print('-' * 30)
ft = 1
while n > 0:
ft = ft * n
if show == True:
print(n, end=' ')
if n == 1:
print('=', end=' ')
break
print('x', end=' ')
n = n -1
print(ft)
fatorial(7, show=True)
103:
def ficha():
print('-'*30)
nome = str(input('Nome do Jogador: ')).title().strip()
gols = str(input('Número de Gols: '))
print('-'*30)
if nome == '':
nome = ''
if gols == '':
gols = '0'
if gols.isnumeric() == False:
print('ERRO. DIGITE UM NÚMERO VÁLIDO')
else:
print(f'O jogador {nome} fes {gols} gol(s) no campeonato.')
ficha()
105:
def notas(*r, sit=None):
valor = ''
dados = {}
lista = []
for c in r:
lista.append(c)
dados['total'] = len(lista)
dados['maior'] = max(lista)
dados['menor'] = min(lista)
dados['média'] = sum(lista) / len(lista)
if sit == True:
if dados['média'] > 7:
dados['situação'] = 'BOA'
else:
dados['situação'] = 'RUIM'
print('-'*30)
print(dados)
resp = ' '
return valor
resp = notas(5.5, 9.5, 10, 6.5)
print(resp)
106:
def titulo(msg):
tam = len(msg) + 4
print('~'*tam)
print(f' {msg}')
print('~'*tam)
def ajudar():
while True:
print('\033[1;32;40m', end='')
titulo('SISTEMA DE AJUDA PyHELP')
txt = str(input('\033[0;37;40mFunção ou Biblioteca > \033[1;32;40m')).strip()
if txt == 'fim':
break
print('\033[1;36;40m', end='')
titulo(f"Acessando o manual do comando '{txt}'")
print('\033[1;33;40m')
help(txt)
print('\033[1;31;40m', end='')
titulo('ATÉ LOGO')
ajudar()
ótimas aulas.
Muito boa a aula, muito conteúdo. quando pensei que ia para os desafios, aí que veio a parte prática kkk valeu.
Melhor prof
Curso muito bom, python melhor linguagem
@@guilhermehx7159 Concordo 100% mano
Minha resposta do exercício 102.
Muito bom praticar o uso do if dentro do print, fazia um tempo que não usava e já estava quase esquecendo de como usar ele.
def fatorial(n=1, show=False):
"""
-> Calcula o fatorial de um número.
:param n: O número a ser calculado.
:param show: (opcional) Mostrar ou não a conta.
:return: O valor do fatorial de um número n.
"""
f = 1
for c in range(n, 0, -1):
if show == True:
print(f'{c} ',end='' '= ' if c == 1 else 'x ')
f *= c
return f
print(fatorial(7, show=True))
47:43 - Se eu ficar cego eu vou cobrar ein kkkkk, brincadeiras a parte , excelente vídeo
47:17 - "Use cores, falei para usar cores, não falei para ficar bonito"
🤣🤣🤣
Não aguentei
Ola! Quando vão sairmais video aulas?
Return então seria um jeito de quando eu chamasse uma certa função, ela já daria o resultado nesse chamado, certo?
Código mais clean
def voto(ano):
idade = 2023 - ano
if idade >= 18:
return print(f'Com {idade} anos: VOTO OBRIGATÓRIO')
elif 16 65:
return print(f'Com {idade} anos: VOTO OPCIONAL')
else:
return print(f'Com {idade} anos: VOTO NEGADO')
voto(int(input('Ano de nascimento: ')))
Só uma dúvida: as variáveis locais criadas dentro de uma função, têm o mesmo valor dentro de outra função ou essa outra função teria escopo global do ponto de vista da primeira função?
Minha mente deu branco nesses exercícios.
def leiaInt(num):
x = input(f'{num}')
try :
y = int(x)
return y
except:
print('ERRO!, Não foi possivel converter')
return leiaInt('Digite um número')
n = leiaInt('Digite um número: ')
print(f'O número digitado foi {n}')
Existe alguma ferramenta que cria essas docstrings? É uma boa prática sempre colocar as docs em funções criadas no programa?
nossa seria tudo de bom se o gustavo guanabara fizesse o poo python pra gente eu pagaria facil
Resolução do exercício #102:
def fatorial(a=1, show=False):
"""
:param a: Número que será cálculado o fatorial
:param show=True: Para mostrar os cálculo feito
:param show=False: Para mostrar somente o resultado cálculado, por padrão o show já e definido False
:return: para retornar o valor do cálculo de a
"""
f = 1
if show is False:
for c in range(a, 0, -1):
f *= c
return f
if show is True:
for c in range(a, 0, -1):
f *= c
if c != 1:
print(f'{c} X ', end='')
else:
print(f'{c} = ', end='')
return f
num = int(input('Digite um Número para a: '))
print(f'o fatorial de {num} é: ', end='')
print(fatorial(num, show=True))
help(fatorial)
Duvida, nos parametros opcionais, caso a funcao seja pra Multiplicar essa solucao nao daria certo de definir as variaveis como 0. Quai seria a solucao para tornalas opcionais?
Valeu guanabara ótima aula .
Que aulão gente!
uma duvida Gustavo. Vc poderia fazer um video com sugestao de livros. ou pensa
vc proprio em lancar um. seria uma boa ideia. seus videos sao excelentes
Mais uma aula perfeita
#EX_103
def ficha(nome, gols):
print(f'
Nome Jogador: {nome}')
print(f'Qtd de Gols: {gols}')
nome = input('Nome: ')
gols = input('Gols: ')
ficha(nome if nome != '' else '', gols if gols != '' else '')