30 dias de Python: codificação para iniciantes | Tony Alamo | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

30 dias de Python: codificação para iniciantes

teacher avatar Tony Alamo, Spark Your Brain

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução

      3:28

    • 2.

      Como o Course funciona

      2:26

    • 3.

      Dia 1 - Instale Python (Mac)

      14:41

    • 4.

      Dia 1 - Instale Python (Windows)

      11:59

    • 5.

      Dia 2 - Variáveis

      11:39

    • 6.

      Dia 3 - Cordas

      9:23

    • 7.

      Dia 4 - Funções (1/2)

      10:01

    • 8.

      Dia 5 - Dia de descanso :)

      1:02

    • 9.

      Dia 6 - Programação orientada a objetos (OOP) - Métodos

      6:52

    • 10.

      Dia 7 - Concatenação de corda

      11:52

    • 11.

      Dia 8 - Entrada de usuário (números, inteiros, floats, comentários)

      9:15

    • 12.

      Dia 9 - Condicionais (if/elif/else) e blocos de código

      13:33

    • 13.

      Dia 10 - Dia de descanso :)

      1:12

    • 14.

      Dia 11 - Funções (2/2)

      9:21

    • 15.

      Dia 12 - Listas, intervalos, classificação

      19:59

    • 16.

      Dia 13 - Loops

      13:46

    • 17.

      Dia 14 - Dicionários

      11:18

    • 18.

      Dia 15 - Dia de descanso :)

      0:47

    • 19.

      Dia 16 - Tuples e conjuntos

      15:18

    • 20.

      Dia 17 - OOP - Definição de Classes

      13:15

    • 21.

      Dia 18 - OOP - Atributos e métodos de Class

      21:00

    • 22.

      Dia 19 - OOP - Herança

      11:20

    • 23.

      Dia 20 - Dia de descanso :)

      1:22

    • 24.

      Dia 21 - Arquivos

      11:41

    • 25.

      Dia 22 - Manuseio de exceção

      12:26

    • 26.

      Dia 23 - Módulos e biblioteca padrão Python

      14:55

    • 27.

      Dia 24 - Projeto - Aplicativo de aprendizagem de Python (1/5)

      18:16

    • 28.

      Dia 25 - Dia de descanso :)

      1:16

    • 29.

      Dia 26 - Projeto - Aplicativo de aprendizagem de Python (2/5)

      8:47

    • 30.

      Dia 27 - Projeto - Aplicativo de aprendizagem Python (3/5)

      7:55

    • 31.

      Dia 28 - Projeto - Aplicativo de aprendizagem de Python (4/5)

      4:58

    • 32.

      Dia 29 - Projeto - Aplicativo de aprendizagem de Python (5/5)

      4:37

    • 33.

      Dia 30 - os finais são novos começos

      0:48

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

4.091

Estudantes

16

Projetos

Sobre este curso

Do que é este curso ?

Este class foi projetado para mostrar como as aulas de tamanho reduzido podem levar a um progresso significativo!  A maioria das pessoas tende a superestimar o que podem realizar em um único dia, mas muitas vezes subestimam o que podem alcançar em apenas 30 dias.

Python se destaca como uma das linguagens de programação mais populares e versáteis disponíveis. Ao longo deste curso, você adquirirá o conhecimento essencial necessário para escrever seus programas Python. O curso é estruturado para 30 dias, com sessões diárias com duração de aproximadamente 15 minutos cada. Você compreenderá os conceitos fundamentais necessários para embarcar na codificação de suas próprias aplicações práticas, estabelecendo uma base sólida para explorar quaisquer campos de programação nos quais você possa estar interessado.

A flexibilidade notável do Python permite sua aplicação em uma ampla gama de domínios, incluindo inteligência artificial, aprendizagem de máquina, Analíticos de dados, Visualização de dados, desenvolvimento web, programação de software, finanças e até mesmo desenvolvimento de jogos! Começando com conceitos básicos de Python, como variáveis, este curso irá guiar você progressivamente para seu projeto final: desenvolvendo seu aplicativo de linha de comando Python. Este projeto integrará todos os conceitos que você aprendeu ao longo do curso, ajudando você a conectar os pontos de forma eficaz.

Para quem é este curso?

Aprender como codificar pode ser valioso para todos, mesmo que você não esteja buscando usá-lo profissionalmente. Ele amplia sua compreensão da paisagem digital que nos rodeia hoje em dia. Este class é certo para você se qualquer uma das seguintes declarações ressoar com você:

  • Sou completamente novo para programar. Onde eu digito minha primeira linha de código?
  • Aprendi a codificar no passado, mas estou buscando uma atualização.
  • Estou buscando desmistificar a codificação e ter uma noção do que ela pode ser usada.
  • Quero estabelecer uma base sólida para obter um trabalho relacionado à codificação para baixo da linha.
  • Quero esticar meu cérebro aprendendo algo novo.

Como ire aprenderá?

O curso foi projetado para ser ministrado por aulas de bitesize de 15 minutos todos os dias por 30 dias, e concentra-se em aprender de forma inteligente e não difícil. Você pode passar pelo seu próprio ritmo, por isso, se quiser fazer duas aulas por dia e terminar o curso em 15 dias, tudo bem, e se quiser fazer isso mais devagar, tudo bem também.

Aproveitaremos técnicas de aprendizagem baseadas em evidências, como Active Recall e Spaced Repetition para aprimorar seu aprendizado e comprometer o conhecimento que você ganha com a memória de longo prazo. Temos exercícios diários práticos que ajudarão você a internalizar o que está aprendendo e até mesmo dias de descanso para recobrar e revisar. Em suma, é assim que funciona:

  • 15 minutos/dia por 30 dias (você escolhe seu ritmo)
  • Acompanhe cada aula à medida que avançamos
  • Exercícios diários para implementar nova aprendizagem
  • Dias de descanso e restauração após cada 4 aulas
  • Projeto final para conectar os pontos

Que tipo de software vou usar?

Vamos dar o pontapé fora do curso baixando e instalando o software necessário:

  • Python 3
  • iPython - um interpretador Python aprimorado
  • Visual Studio Code - um editor de código popular e poderoso

Conteúdo do Course:

  • Instalação
  • Variáveis, números, strings, concatenação de strings, indexação
  • Condicionais, blocos de código, Para loops, Loops While
  • Listas, intervalos, dicionários, Tuplas e conjuntos
  • Funções
  • Entrada de usuário
  • Introdução à programação orientada a objetos (OOP)
  • Classes - definição, atributos, métodos, herança
  • Arquivos
  • Manipulação de exceção
  • Módulos e biblioteca padrão Python
  • Projeto prático: aplicativo de aprendizagem de Python

Conheça seu professor

Teacher Profile Image

Tony Alamo

Spark Your Brain

Professor

Hey, there! I'm Tony :)

Right after I graduated as an engineer in Boston, I jumped right into Data Analytics - starting off at a startup accelerator in Cambridge, MA, where we worked to start web companies from scratch and launch them into the world!

Even though this was super exciting work, I eventually decided to focus my attention on what I'm most passionate about - learning how to learn and teaching others how to do the same.

Most of us were never taught that the brain's structure can change based on our experiences, and learning is one of the best brain exercises there is!

I hope you find my Skillshare classes, YouTube videos, and other sharing platforms helpful, and that you join me on my journey to wake up and live a more meaningful life in the pr... Visualizar o perfil completo

Level: Beginner

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Apresentação: Olá, meu amigo, meu nome é Tony e tenho trabalhado em Python há algum tempo. E também acontece de ser o, até o ano passado, eu trabalhei no Internet Venture Accelerator em Boston, onde trabalhei na codificação de projetos relacionados com o objetivo de começar onde as empresas do zero e almoçá-las para o mundo real. Foi um trabalho empolgante, mas estou ainda mais animado em dizer que recentemente me diverti com esse trabalho para buscar o que estou genuinamente animado para acordar todas as manhãs, o que é aprender a aprender e ensinar aos outros como fazer o mesmo. Isso é o que me traz aqui hoje e também para o meu canal do YouTube neste curso de programação funcionará inteligente e não mergulhe profundamente no mundo e se concentrará por apenas 15 minutos por dia. Por 30 dias, haverá exercícios diários para você aprender fazendo mais, até mesmo ter dias de descanso a cada quatro sessões para você internalizar por que está aprendendo. E, finalmente, teremos nosso projeto final no qual seu código e seu próprio aplicativo Python. Você aprenderá as habilidades necessárias para escrever seu próprio código Python. Algumas das coisas que analisaremos nossas variáveis e tipos de dados, como cadeias de caracteres, números e listas. Também analisaremos funções, condicionais e até mesmo programação orientada a objetos e muito mais. E mesmo além do Python, abordaremos uma das principais técnicas e conceitos relacionados ao aprendizado acelerado, como recuperação ativa e repetição de espaço. E tudo isso pode não fazer muito sentido agora, mas aprenderemos o que são ao longo do curso e você será capaz conectar os pontos no projeto final neste curso é destinado a qualquer pessoa que nem tenha uma pista sobre qual programação ou codificação mesmo, ou qualquer um que tenha aprendido a codificar no passado e simplesmente precisa de uma atualização estruturada e se você estiver procurando aprender como codificar para eventualmente obter empregos com alto salário. E o desenvolvedor está procurando automatizar tarefas repetitivas para ganhar mais tempo, ou está aqui apenas por curiosidade e procurando aprender algo novo apenas por uma questão de aprender, então este é o curso certo para você e as únicas ferramentas que você precisará nosso computador e vontade de aprender como a ilha Python era muito mais difícil do que deveria ter sido, principalmente porque eles tinham sem estrutura e fiz tudo por conta própria. E o discurso é exatamente o que eu desejo. Eu teria tido isso no dia em que tentei escrever minha primeira linha de código, um processo passo a passo estruturado ensinado por alguém que não só sabe codificar muito bem, mas o mais importante, alguém que sabe como o cérebro funciona e como usar técnicas cientificamente comprovadas para acelerar o processo de aprendizagem. Você escolheu uma excelente linguagem de programação para começar porque Python é uma linguagem de codificação muito popular em todo o mundo, como eu mencionei ao longo deste curso, você construirá seu próprio aplicativo Python no projeto final no qual o aplicativo usará todas as ferramentas que aprendemos ao longo do curso. E ele irá questioná-lo sobre qualquer tópico que você queira estudar. E isso manterá suas pontuações para que você saiba o quão bem você está indo em cada tópico. E quando você volta, você sabe, quais são os pontos fracos em que você precisa trabalhar. O produto final será fundamental para conectar os pontos e o que você aprendeu. E é por isso que é realmente importante você se mantenha consistente e tome medidas pequenas, mas entregues, para completar os 30 dias. Porque cada dia será como pegar um pincel e pintar bem pensado e entregue ponto no Canvas. Não fará todo o sentido quando você voltar atrás e olhar para a tela imediatamente. Mas com o tempo, simplesmente voltando e pintando cada dólar adicional na Tela deliberada e consistentemente, você eventualmente recuará e ficará surpreso quando você finalmente ver com clareza para o que ele vinha trabalhando. Todos os únicos. Como Steve Jobs disse uma vez, a dose só se conectará em retrospectiva. Então lembre-se de que ele continua voltando sem mais nada para adicionar hoje. Eu realmente espero que você decida dar uma chance a isso e ter um bom pressentimento ou ver você muito em breve. 2. Boas-vindas!: Bem-vindo programador para aprender Python em 30 dias. Estou tão animado por tê-lo aqui na codificação EOB e você sabe, hora. Então você provavelmente está se perguntando como isso vai funcionar com mais detalhes neste curso, teremos 30 aulas diárias que demorarão cerca de 15 minutos para serem concluídas. Nós até temos aulas de descanso e recuperação do dia 74 nestas, não haverá nenhum material novo e eles devem dar a você a chance recuperar e revisar as sessões anteriores que você acha que pode valer a pena revisitando. Temos um ritmo diferente. Então você pode até achar que funciona melhor para você quando você faz duas lições por dia. E isso significaria que você terminaria o curso em 15 dias em vez de 30 dias na metade do tempo. E isso é totalmente bom se isso funcionar para você, só garante que você não esteja aglomerando o conhecimento e que está tomando seu tempo para internalizar e digerir o que está aprendendo. É por isso que eu não recomendaria fazer mais de duas aulas por dia. Há um provérbio chinês que diz y aqui. Esqueci o que vejo. Eu me lembro, mas o que faço, eu entendo. É por isso que este curso está focado no aprendizado prático. Eu quero que você experimente máximo que puder com tudo o que você aprende todos os dias que você vai conseguir acompanhar o que eu faço na tela. E no final de cada lição, temos até exercícios para você fazer e começar a codificar imediatamente o que aprendeu naquela época, você verá em algum lugar sob a tela, provavelmente à direita, uma lista de todos os vídeos claramente rotulados e numerados com cada data devem ser tirados. Também deve haver, na parte inferior, uma seção de mensagens onde você pode postar mensagens comentários ou perguntas para que qualquer pessoa veja para que possamos nos ajudar uns aos outros. Há também ferramentas que você verá no vídeo ao redor da tela que funcionam de forma semelhante a outras plataformas de vídeo que você já usou. Um dos mais úteis pode vencer o botão de velocidade de reprodução. Isso permitirá que você acelere ou diminua o vídeo conforme desejar. Você também pode descobrir ao longo do curso que falo em um ritmo relativamente lento isso de propósito, porque esse botão lhe dá a flexibilidade de mudar a velocidade para o que funciona melhor para você. E, finalmente, eu queria pedir que você jogasse completamente fora nisso e se comprometesse a concluir o curso, pegar um calendário e reservar algum tempo todos os dias. Portanto, você terá maior probabilidade se sentar e concluir cada lição. Já coloquei metade do esforço criando este curso para você, mas isso não funcionará para nada a menos que você coloque na outra metade do trabalho. Por isso, convido você a voltar e ter um estado engraçado, pronto para se concentrar e pronto para aprender sem mais delongas. Vamos fazer isso. 3. Dia 1 Instale Python (Mac): boas-vindas ao meu amigo para aprender Python em 30 dias, e hoje é o primeiro dia Hoje temos alguns objetivos e o principal deles será a instalação. Este vídeo é especificamente para a instalação do Mac OS. Verifique se você está usando um Mac. Se você quiser assistir a este vídeo, se tiver um computador Windows, acesse o vídeo equivalente que você verá na lista de vídeos que diz instalação Olhando para os outros objetivos, temos que examinar o maior obstáculo ao aprendizado Precisamos entender qual é o maior obstáculo para o aprendizado, podemos enfrentá-lo Também vamos entender como são nossas perguntas, a resposta. Em seguida, vamos começar a instalar o Python e o que precisamos para facilitar nossa vida Então, algumas outras coisas que precisaremos instalar. E, finalmente, vamos terminar verificando a instalação e imprimindo nossos primeiros comandos na tela Vamos passar para a seção de aprendizado. Ok, então o maior obstáculo para o aprendizado é a crença de que você já sabe disso E isso é um sentido dizer que, uma vez que diminuímos a barreira de pensar que já sabemos alguma coisa, abrimos nossas mentes para aprender coisas novas. Em seguida, precisamos saber que precisamos ter a mente aberta para aprender Porque a mente só funciona quando está aberta. É como um paraquedas É muito importante que continuemos fazendo perguntas. Se você tiver dúvidas durante o curso, escreva-as, pois é muito provável que respondamos a essas perguntas mais tarde durante o curso. Outra vantagem de fazer perguntas é que, ao fazer uma pergunta, você prepara sua mente para buscar as respostas. Sempre que as respostas surgirem, você estará muito mais preparado para absorvê-las. Pense nesse elefante. crença limitante é que ela não consegue soltar Sua crença limitante é que ela não consegue soltar a perna porque falhou quando era pequena, mas nunca mais questionou essa crença Mesmo depois de ter se fortalecido o suficiente para se libertar fazendo perguntas constantemente em vez de nos contentarmos com respostas, é mais provável que quebremos as crenças limitantes Se você já pensou que não consegue aprender a codificar, esse é um bom momento para começar a questionar essa crença, porque o que acontece com seu cérebro quando você faz uma pergunta? Ele se envolve com a pergunta imediatamente e começa a pensar em possíveis respostas naquele momento Isso significa que podemos pensar nas perguntas como respostas ao vivo no momento presente. Por outro lado, depois de atribuir uma resposta a uma pergunta e considerá-la pelo valor nominal a partir de então, a resposta fixa pode impedir que você veja mais da imagem completa. É por isso que as perguntas são a resposta. Tenha isso em mente e vamos prosseguir com a instalação. Então, a primeira coisa que vamos fazer é acessar nosso navegador e fazer o download do Python no Google Estamos tentando acessar o site Python.org. E quando você chegar aqui, você entrará na seção de downloads. Você clicará em baixar para macOS. Em seguida, você abrirá o arquivo que foi baixado e abrirá o instalador. Você clicará em Continuar e concordará com tudo isso. E depois de clicar em Instalar, ele será instalado no seu computador e você verá a pasta que acabou de instalar com o software Python Em seguida, você aguardará a conclusão da instalação e, em seguida, fechará e moverá o instalador para a lixeira Parabéns, você acabou baixar o Python em seu computador A próxima coisa que vamos fazer é abrir nosso terminal. Vou usar o espaço de comando e depois digitar o terminal. O terminal é muito útil quando queremos interagir com nosso computador por meio do uso de comandos escritos. Aqui, podemos operar com arquivos e navegar pelas pastas da mesma forma que usamos o Finder, por exemplo Podemos usar nosso terminal para isso. Uma coisa para a qual podemos usar o terminal é verificar se você instalou o Python corretamente Para isso, simplesmente executamos versão espacial do Python três e pressionamos Enter, e você pode ver que o Python três está Outra coisa que você pode fazer com seu terminal é executar o Python Para fazer isso, basta digitar Python three e Enter. O que isso faz é simplesmente abrir o interpretador padrão do Python Esse intérprete é chamado de Repl, REPL, que significa ler, avaliar, imprimir loop Isso significa simplesmente que o ambiente lerá e avaliará nossos comandos e, em seguida, os imprimirá na tela. E faça isso em um loop. A primeira função e o primeiro comando que aprenderemos em Python é a função de impressão Para isso, basta escrever a impressão aberta, colchetes redondos e depois entre aspas E você pode usar aspas simples ou duplas, como preferir. Aqui você escreve um texto. Nesse caso, estamos escrevendo Hello World. E então você fecha a cotação e depois fecha o colchete redondo Ao pressionar Enter, você verá hello world ou qualquer texto que você colocar na função de impressão impresso na tela. Finalmente, quando queremos sair do interpretador padrão do Python no ambiente, simplesmente escrevemos quit e arredondamos os colchetes e pressionamos e arredondamos os colchetes e A próxima coisa que vamos instalar será o Python Python é simplesmente outro Repl e outro Python Muito semelhante ao ambiente padrão do Python, mas tem mais funcionalidades e é uma versão aprimorada desse ambiente padrão Para instalar o Python, vamos usar o pip. O comando é o seguinte, será o pip three, instale o Python Se isso não funcionar, talvez você tenha outra versão do pip. Então você pode usar o Pip sem os três e depois instalar o Python e isso O que Pip é é que ele é um gerenciador de pacotes Python. Ele gerencia módulos que podemos baixar da Internet para o nosso computador. E analisaremos os módulos posteriormente no curso. Então, quando pressionamos Enter, vemos que ele é baixado em nosso computador. E para mim, no meu caso, eu já o baixei. Portanto, sua tela pode parecer um pouco diferente e demorar um pouco mais, mas deve funcionar bem. Agora, para executar o Python, basta digitar Python no terminal e pressionar Enter, e isso abriria o e isso abriria E agora temos outro ambiente de repelência que é semelhante a um ambiente padrão, como mencionei E podemos usar a mesma função de impressão de antes. Então, detalhe, imprima hello world, Enter, veremos hello world impresso na tela. Em seguida, para sair do Python, basta digitar Quit e Enter E isso o levará de volta ao seu terminal. A próxima coisa que queremos baixar e a última coisa que estamos baixando é o código VS ou o código do Visual Studio. Para isso, basta baixar o código do Visual Studio no Google que deve levar você ao site. Você vai baixar a versão para Mac. O código VS é simplesmente um editor de código. Da mesma forma que você pode usar o Microsoft Word para escrever seus ensaios ou qualquer coisa que queira escrever Você usaria o código VS para escrever seus scripts. Ele tem funcionalidades que serão muito úteis quando estivermos escrevendo nosso código Assim, você baixaria o código VS como faria com qualquer outro aplicativo. No momento, temos esse arquivo zip que, quando o abrimos, ele leva o aplicativo para minha pasta de download. Eu simplesmente movo isso para minha pasta Aplicativos e estou pronto para abrir o código do Visual Studio usando o espaço de comando. Aqui podemos clicar em Abrir. Isso abriria o aplicativo, tornaria a tela cheia. E podemos fechar essas guias, podemos prosseguir com a criação de um novo arquivo No arquivo. Novo arquivo. E então é simplesmente um arquivo de texto agora. Assim, podemos escrever o mesmo comando que fizemos no interpretador Python. Imprima olá mundo. Podemos fazer o arquivo, salvar como e depois salvá-lo como. Vou chamá-lo de Hello World. E vou mantê-lo na minha área de trabalho e me certificar de adicionar a extensão que informa ao computador que é um arquivo Python Permita que o código VS acesse a pasta em que você está tentando salvá-lo. Agora você tem um script Python salvo. Um recurso muito legal que VS code tem é que ele tem extensões. Para o nosso caso, vamos querer baixar a extensão Python Eu já o baixei. Mas, no seu caso, você pode ter visto uma mensagem pop-up sempre que tentar salvar o arquivo py, recomendando que você baixe a extensão Ou você pode simplesmente acessar a seção de extensões pesquisar a do Python e baixá-la E isso se aplicaria automaticamente aos seus arquivos Python. Ok, então digamos que temos nosso arquivo que salvamos nosso script que salvamos e que devíamos abrir o código VS e estamos tentando encontrar esse arquivo. Agora, neste caso, podemos ir aqui a seguir, tentaremos abrir uma pasta. Eu movo esse arquivo para minha área de trabalho e depois para a pasta devel na minha área de trabalho, que significa desenvolvimento E eu vou simplesmente abrir essa pasta. Podemos ver que temos essa guia de introdução, que podemos fechar, mas teremos a pasta aqui à esquerda. E podemos simplesmente clicar no arquivo que salvamos, que é o nosso script. E abrirá no editor de código. Agora, se quiséssemos executar esse script, poderíamos ir ao nosso terminal. Então, vou fazer um terminal de espaço de comando para abrir meu terminal. Então, teremos que aprender alguns comandos antes do terminal , que serão muito úteis. O primeiro é o comando PWD, que significa imprimir diretório de trabalho O que isso faz no terminal é que ele nos diz exatamente onde estamos. Podemos ver que esse é o caminho do arquivo até onde estamos. Estamos sob o nome de usuários Antonio Alamo e, em seguida, na pasta desktop agora Depois, há também o comando LS, que significa lista, e lista os arquivos que estão na pasta atual. Aqui podemos ver tudo o que está embaixo da nossa área de trabalho. Isso seria o equivalente a entrar no Finder e dizer, ok, vamos entrar no Finder e dizer, ok, ver o que está em nosso E então vemos que temos todos esses arquivos. Podemos ver o mesmo em nosso terminal. Agora, outro comando útil é o comando C D, que significa alterar diretório. Para este, fazemos CD, depois criamos espaço e anotamos o diretório para onde queremos ir. Nesse caso, imagine que queremos entrar na pasta devel Poderíamos dizer que os usuários Antonio Alamo, desktop e depois devel, estou usando a guia para o preenchimento das pastas Agora podemos pressionar Enter. E quando imprimimos o diretório de trabalho, podemos ver que estamos na pasta de desenvolvimento agora, quando fazemos LS for list, podemos ver os arquivos que estão pasta atual e o diretório de trabalho em que estamos agora. Um comando ainda mais útil para aprender é o CD. E então, em vez de anotar o caminho absoluto do arquivo, que é isso, podemos imprimir um comando relativo. Podemos dizer ponto final, ponto final. E, em seguida, pressione Enter, e isso significa ir para a pasta anterior. Agora você pode ver que, quando imprimimos o diretório de trabalho, demos um passo atrás Agora estamos na área de trabalho em vez da pasta devel, agora fazemos LS e vemos a mesma coisa E então podemos voltar, mudar diretório para a pasta devel e começar agora, porque você não precisa realmente anotar o arquivo absoluto Você também pode gravar a pasta dependendo se ela estiver no diretório atual Agora que estamos na pasta devel, podemos fazer LS e ver que temos o script hello world Se quisermos executar esse script, basta executar o seguinte comando, que é Python three space, e depois o script que queremos executar E então, quando pressionamos Enter, vemos que estamos executando o script. E os comandos ou as linhas que estão sob esse script são executados. E podemos ver o Hello world impresso na tela. Na verdade, o Visual Studio fornece esse serviço para nós. Podemos ir ao terminal e clicar em Novo terminal e podemos ver a mesma coisa. É um código VS do terminal quatro executa especificamente o mesmo comando. Podemos imprimir o diretório de trabalho e podemos ver que estamos na pasta devel agora Se quiséssemos voltar uma etapa, poderíamos mudar o diretório para o acima e ver que estamos no desktop. Se fizermos o LS, podemos ver tudo o que está embaixo da nossa área de trabalho. Poderíamos voltar ainda mais se quiséssemos, mas também podemos voltar ao nosso desktop, alterar o diretório e depois mudar o diretório novamente para nossa pasta devel Outro comando útil é limpar o comando simplesmente para limpar o terminal para que possamos limpá-lo completamente. Em seguida, podemos executar o comando LS novamente para ver se estamos em nossa pasta devel e podemos ver nosso script hello world Do Se quisermos executar esse script, podemos simplesmente executar o Python novamente Três, olá mundo. E podemos ver o hello world impresso na tela, tudo dentro do código VS. Finalmente, a última maneira que veremos sobre como executar esse arquivo é usando uma função de código VS, que é apenas clicar no botão play aqui na parte superior, no canto superior direito da tela. E você pode ver que o script hello world é executado. Podemos tentar isso de novo, limpar a tela e dizer o botão play. E então podemos ver que o script é. Então, isso servirá para a seção de aprendizado de hoje e estamos prontos para prosseguir com a recapitulação Aprendemos que precisamos ter mente aberta se quisermos aprender rápido uma mente aberta se quisermos aprender rápido e que precisamos fazer muitas perguntas e entender a importância das perguntas e como as perguntas são a resposta Também instalamos o Python three em nosso computador, e também o Python e o Visual Studio Code O Visual Studio Code é o editor de código. Por fim, executamos nossos primeiros comandos em Python usando a função print Agora vamos passar para a seção de compreensão. A seção de compreensão de cada dia será onde aprenderemos de forma prática. Vamos fazer perguntas aqui, vamos ter alguns exercícios podemos fazer com nosso Python E agora, por hoje, a primeira é como as perguntas são respondidas. Então, eu quero que você responda a essa pergunta e pense sobre ela. Em seguida, quero que você imprima a versão do Python que você instalou na tela usando o terminal Em seguida, imprima seu nome usando o interpretador padrão do Python Isso seria usar a função de impressão e, em seguida, imprimir seu nome e outras palavras usando Python Por fim, imprima seu nome executando um script com a extensão py. Eu recomendaria usar o código VS para isso e salvar esse arquivo. Isso vai ficar por hoje, pessoal. Muito obrigado a todos por assistirem. Lembre-se de que, se você tiver alguma dúvida, publique-a nos comentários abaixo para que a comunidade possa ajudar. E te vejo de volta aqui amanhã. 4. Dia 1 - Instale Python (Windows - Novo): boas-vindas ao meu amigo para aprender Python em 30 dias. E hoje é o primeiro dia. E hoje temos alguns objetivos e o principal deles será a instalação. E este vídeo é especificamente para a instalação do sistema operacional Windows. Assista a isso se estiver trabalhando no Windows e se tiver um sistema operacional Mac, você pode assistir ao vídeo equivalente que você verá na lista de vídeos que diz instalação Então, olhando para os outros objetivos, temos que examinar o maior obstáculo ao aprendizado Precisamos entender qual é o maior obstáculo ao aprendizado para que possamos enfrentá-lo E também vamos entender como são nossas perguntas, a resposta. Em seguida, vamos começar a instalar o Python e o que precisamos para facilitar nossa vida Então, algumas outras coisas que precisaremos instalar. E, finalmente, vamos terminar verificando a instalação e imprimindo nossos primeiros comandos na tela Vamos passar para a seção de aprendizado. Ok, o maior obstáculo para aprendizado é a crença de que você já sabe disso E isso é um sentido dizer que, uma vez que diminuímos a barreira de pensar que já sabemos alguma coisa, abrimos nossas mentes para aprender coisas novas. Em seguida, precisamos saber que precisamos ter a mente aberta para aprender Porque a mente só funciona quando está aberta. É como um paraquedas É muito importante que continuemos fazendo perguntas. Se você tiver dúvidas durante o curso, escreva-as, pois é muito provável que respondamos a essas perguntas posteriormente durante o curso. Outra vantagem de fazer perguntas é que, ao fazer uma pergunta, você prepara sua mente para buscar as respostas. Sempre que as respostas surgirem, você estará muito mais preparado para absorvê-las. Pense que a crença limitante desse elefante é que ele não consegue soltar a perna porque falhou quando era pequeno, mas nunca mais questionou essa Mesmo depois de ter se fortalecido o suficiente para se libertar fazendo perguntas constantemente em vez de nos contentarmos com respostas, é mais provável que quebremos as crenças limitantes Se você já pensou que não consegue aprender a programar, esse é um bom momento para começar a questionar essa crença Porque o que acontece com seu cérebro quando você faz uma pergunta? Ele se envolve com a pergunta imediatamente e começa a pensar em possíveis respostas naquele momento Isso significa que podemos pensar nas perguntas como respostas ao vivo no momento presente. Por outro lado, depois de atribuir uma resposta a uma pergunta e considerá-la pelo valor nominal a partir de então, a resposta fixa pode impedir que você veja mais da imagem completa. É por isso que as perguntas são a resposta. Portanto, tenha isso em mente e vamos prosseguir com a instalação. Para baixar o Python, abriremos nosso navegador e procuraremos o download do Python Estamos procurando o site Python dot. Aqui está, logo abaixo da seção de downloads Vamos clicar aqui embaixo, abaixo de Baixar para Windows E isso fará o download de um arquivo, que abriremos assim que terminar de carregar Isso iniciará a instalação. Vamos marcar essa caixa onde diz Add Python two path Vamos clicar em Instalar. Agora, uma maneira de carregar isso. E então podemos fechar isso. E agora temos o Python instalando um computador. A próxima coisa que vamos fazer é abrir nosso aplicativo de prompt de comando. Este aplicativo funciona como um terminal entre nós e o computador. O terminal é muito útil quando queremos interagir com nosso computador por meio do uso de comandos escritos. Aqui podemos operar com arquivos e navegar pelas pastas. Podemos usar nosso terminal para isso. Uma coisa para a qual podemos usar o terminal é verificar se você instalou o Python corretamente Para isso, vamos executar a versão Python, e isso imprimiria a versão do Python que temos Outra coisa que você pode fazer com seu terminal é executar o Python Para fazer isso, basta inserir Python. E insira o que isso faz é simplesmente abrir o interpretador padrão do Python E esse intérprete é chamado de repelir REPL, que significa ler, avaliar, imprimir loop Isso significa simplesmente que o ambiente lerá e avaliará nossos comandos e, em seguida, os imprimirá na tela. E faça isso em um loop. A primeira função e o primeiro comando que aprenderemos em Python é a função de impressão Para isso, basta escrever a impressão entre colchetes redondos abertos e depois entre aspas E você pode usar aspas simples ou duplas, como preferir. Aqui você escreve um texto. Nesse caso, estamos escrevendo Hello World. Em seguida, você fecha a cotação e, em seguida, fecha o colchete redondo Ao pressionar Enter, você verá hello world ou qualquer texto que você colocar na função de impressão impresso na tela. Finalmente, quando queremos sair do interpretador padrão do Python no ambiente, simplesmente escrevemos quit e arredondamos os colchetes e pressionamos colchetes e A próxima coisa que vamos instalar será o Python E o Python é simplesmente outro Repl e outro ambiente Python Muito semelhante ao ambiente padrão do Python, mas tem mais funcionalidades E é uma versão aprimorada desse ambiente padrão. Para instalar o Python, vamos usar o pip. E o comando é o seguinte. Será instalar o Python. O que é pip é que ele é um gerenciador de pacotes Python. Ele gerencia módulos que podemos baixar da Internet para o nosso computador. E analisaremos os módulos posteriormente no curso. Então, quando pressionamos Enter, vemos que ele é baixado em nosso computador. E agora, para executar o Python, basta digitar Python no terminal e pressionar Enter E isso abriria o ipython. E agora temos outro ambiente Repl semelhante a um ambiente padrão, como mencionei E podemos usar a mesma função de impressão de antes. Então anote print hello world, Enter e veremos hello world impresso na tela. Em seguida, para sair do Python, basta digitar Quit e Enter, e isso o levará de volta ao seu terminal A terceira e última coisa que vamos baixar será o código do Visual Studio. Para isso, pesquisaremos, baixaremos o código do Visual Studio ou o código VS. Em seguida, entraremos no site VisualStudio.com e procuraremos Em seguida, faremos o mesmo que baixar qualquer outro aplicativo. Simplesmente clicaremos nesse arquivo que baixamos e ele iniciará o instalador. Clicaremos em Aceitar o contrato. Clique em Avançar e, em seguida, clique em Avançar. Em seguida, novamente e, finalmente , instale e aguarde a conclusão da instalação. Agora temos o código VS instalado em nosso computador. Depois de entrarmos no código do VS, podemos fechar a guia Começar e clicar em Arquivo, Novo arquivo. Isso nos levaria a um arquivo de texto padrão. E podemos simplesmente escrever o mesmo código que escrevemos no interpretador Python Imprima olá mundo. Em seguida, podemos clicar e dar um nome ao nosso arquivo. E certifique-se de salvá-lo como um arquivo, o que dirá ao computador que será um script Python Depois de salvar o arquivo, o VS code perguntará se você deseja baixar a extensão para Python, vamos instalar nela E isso vai levar um segundo. Em seguida, você tem a extensão instalada. Essa extensão será útil para nós quando escrevermos código em Python porque você terá alguns recursos que facilitarão a gravação de código Agora, digamos que você esteja abrindo código VS do zero e queira encontrar seu arquivo de pontos hello world. O que fazemos é abrir a pasta, clicar e abrir a pasta e olhar a pasta onde a temos para mim. É a pasta do diabo para desenvolvimento. Eu abro essa pasta e você pode ver à esquerda você tem o explorador com essa pasta e o conteúdo. E à direita você tem o editor. Agora que clicamos em nosso arquivo hello world, podemos vê-lo no editor E se quiséssemos executar esse arquivo? Uma opção é abrir o prompt de comando e aprenderemos alguns comandos super úteis para o prompt de comando. O primeiro comando é CD, que significa alterar diretório. Se você inseri-lo sozinho, ele fornecerá o diretório atual ou imprimirá o diretório de trabalho. Mas se você abrir espaço no CD e depois em uma pasta diferente , você será direcionado para essa pasta. No meu caso, o arquivo helloworld está na pasta de desenvolvimento Eu mudo o diretório para a pasta de desenvolvimento dentro daquela em que eu estava atualmente. Isso me move para a pasta que eu quero. Outro comando seria o IR for directory, que listará o conteúdo do diretório atual. Aqui podemos ver que temos o arquivo helloworld e a pasta de arquivos de texto E é a mesma coisa que vemos no código VS. Se quiséssemos ir para a pasta de arquivos de texto, poderíamos alterar os arquivos de texto do diretório e, em seguida, fazer DIR, podemos ver que temos alguns arquivos de texto e é a mesma coisa que vemos no código VS. Outro comando seria o CD. Ponto final. Ponto final. E isso o levará um passo atrás na estrutura do arquivo Você voltaria para a pasta devel. Como sabemos que o script que queremos executar está nessa pasta, podemos usar o comando python space e depois o nome do arquivo que queremos executar E pressione Enter, e podemos ver que isso executará o script. Um último comando muito útil é um comando CLS que limpa a tela Também acontece que o código VS tem um terminal embutido. Como recurso possível, podemos clicar no Terminal e depois abrir o terminal. Isso funcionará exatamente como o prompt de comando. Podemos usar o CD, podemos mudar o diretório para a pasta de arquivos de texto. Podemos fazer DIR para ver o que há nele. Podemos voltar uma pasta. Podemos fazer DIR para garantir que voltemos. E então podemos usar um comando Python para executar nosso script E, finalmente, há uma maneira ainda mais simples de executar o script, que é clicando no botão Exibir no canto superior direito da E você vê que o script foi executado na parte inferior. Isso servirá para a seção de aprendizado de hoje e estamos prontos para prosseguir com a recapitulação Aprendemos que precisamos ter mente aberta se quisermos aprender rápido uma mente aberta se quisermos aprender rápido e que precisamos fazer muitas perguntas e entender a importância das perguntas e como as perguntas são a resposta Também instalamos o Python three em nosso computador, e também o Python e o Visual Studio Code O Visual Studio Code é o editor de código. Por fim, executamos nossos primeiros comandos em Python usando a função print Agora vamos passar para a seção de compreensão. A seção de compreensão de cada dia será onde aprenderemos de forma prática. Vamos fazer perguntas aqui, vamos ter alguns exercícios podemos fazer com nosso Python E agora, por hoje, a primeira é como as perguntas são respondidas. Então, eu quero que você responda a essa pergunta e pense sobre ela. Em seguida, quero que você imprima a versão do Python que você instalou na tela usando o terminal Em seguida, imprima seu nome usando o interpretador padrão do Python Isso seria usar a função de impressão e, em seguida, imprimir seu nome e outras palavras usando Python Por fim, imprima seu nome executando um script com a extensão py. Eu recomendaria usar o código VS para isso e salvar esse arquivo. Isso vai ficar por hoje, pessoal. Muito obrigado a todos por assistirem. Lembre-se de que, se você tiver alguma dúvida, publique-a nos comentários abaixo para que a comunidade possa ajudar. E te vejo de volta aqui amanhã. 5. Dia 2 - Variáveis: boas-vindas ao meu amigo no segundo dia, e vamos começar com os objetivos de hoje. O primeiro será que vamos examinar variáveis Python. Em seguida, vamos examinar uma chave para aprender do que objetos Python. E, finalmente, vamos conhecer nosso novo melhor amigo. Mas, por enquanto, esse salto direto para uma seção de aprendizado. Neste gráfico, vemos um gráfico de progresso ao longo do tempo. Podemos ver que nossas expectativas tendem a ser lineares enquanto a realidade é exponencial. No começo, a realidade pode ser mais lenta do que nossas expectativas. E isso é o que estamos chamando o valor da decepção. E você pode ler mais sobre isso no livro James sente hábitos atômicos. Agora, a maioria das pessoas desistiu nesta fase antes de perceber que o aprendizado pode ser exponencial e que, eventualmente, a realidade supera drasticamente as expectativas. A consistência é importante porque sem ela, não superaríamos o valor da decepção. É por isso que um Q-learning é consistência sempre volta porque os incrementos diários se compõem ao tempo e levam a um crescimento exponencial a longo prazo. Se cada dia você melhorou 1%, isso significaria uma melhora de mais de 37 x após um ano. E se eu dissesse que você poderia criar hábito com esses esforços de tamanho mordido e fazê-los se sentir como uma cueca e até acabar desfrutando deles. E é isso que pretendo fazer com este curso, para mostrar que aprender pode ser divertido e que podemos crescer a cada dia aproveitando o processo. O grande problema de não ser consistente é que, se você decidir não voltar, você não colherá as recompensas do que viu. Seria como fazer todos os esforços para plantar e cultivar uma macieira. E agora voltando para coletar as maçãs. No curso, estamos começando lentamente propósito e aceleraremos progressivamente a cada dia. Se você acha que isso vai devagar ou se está achando muito difícil, lembre-se de que é pretendido e que os esforços de tamanho mordido mais a consistência do paciente são iguais a um crescimento exponencial a longo prazo. Sem mais nada a acrescentar sobre isso hoje, vamos passar para variáveis. Agora, entraremos no tópico Python de hoje. Vamos entrar em variáveis. Uma variável é simplesmente um local de memória reservado para armazenar um valor. Isso é o que é uma variável. E nós damos um nome amigável variável para nos ajudar a saber que tipo de valor elas armazenam variáveis nos permitem obter um valor e nos referir novamente mais tarde, apenas referindo-se ao nome da variável para olhar para isso e deixando o terminal deles aqui. O que eu fiz foi o Command Space e , em seguida, basta digitar o terminal e ele me leva a um aplicativo de terminal. Ninguém faz o Command Plus, Plus, Plus algumas vezes apenas para torná-lo mais visível, não linear, vou para o iPython. Limpe a tela só para que não tenhamos nada lá dentro. Incrível. Então, para declarar variável, usamos o sinal de igual. Se eu quiser dizer minha variável, por exemplo, e eu quiser dizer, esse é o valor. Agora, sempre que me refiro, sempre que me refiro à minha variável, ela fará referência ao valor que ela está nessa variável e armazenará nessa variável. Digamos que eu queria encontrar variável com meu jogador. Então, se eu fizesse isso, meu jogador, eu poderia imprimir Ronaldo diria Rinaldo. Agora digamos que eu queira atribuir o valor. Quero mantê-lo na mesma variável. O que eu quero mudar o valor que tenho nessa variável. Vou simplesmente reatribuí-lo. Bagunçado. Vamos apenas dizer que meu jogador está bagunçado. Então, sempre que eu imprimo meu player novamente, então ele vai dizer confuso, que é o novo valor anexado a essa variável. E se tentássemos fazer referência a uma variável que ainda não definimos? Porque sabemos que no meu jogador já está definido. Mas digamos que tentamos algo como meu var. O que você acha que aconteceria aqui? Sempre que tentamos fazer algo assim, receberíamos um erro porque ainda não o definimos. Isso é o que uma área, é isso que quero dizer que você conheceria seu novo melhor amigo. E estou dizendo que seu novo melhor amigo nossos erros só porque sempre que você recebe um erro, isso significa que você está empurrando sua zona de conforto e está aprendendo algo novo. Você quer, você quer falhar em dizer, para vir e dizer, Ei, você está falhando nisso porque você está tentando aprender algo novo. É assim que lemos lá e obtemos o tipo de erro, que é um erro de nome neste caso. Em seguida, recebemos a mensagem de erro que tem o nome MyVar não está definida. Então, é assim que lemos esse erro. E analisaremos os erros mais detalhadamente mais adiante neste curso. Mas eu só queria apresentar-lhe o seu novo melhor amigo que lhe diz que você está empurrando sua zona de conforto, que você está aprendendo algo novo. Mas outra coisa que vamos analisar hoje. Que tudo em Python é um objeto. Aprenderemos mais sobre isso ao longo deste curso. Mas hoje, tudo o que você precisa saber é que cada objeto tem uma identidade. Quero dizer, o objeto tem um tipo, haverá objeto tem um valor. O importante sobre as identidades que, uma vez que um objeto é criado, a identidade não muda. Para examinar a identidade de um objeto, usamos a função ID. Ou seja, geralmente é assim. Estamos olhando para o que é uma função em um pouco e, em seguida, outro dia ao longo deste curso. Mas a parte importante aqui é que vamos ver como temos uma variável, variável uma apenas igual a uma. Queríamos ver o ID da variável um. Nós faríamos, faríamos a variável ID um e isso nos daria o número de id dessa variável. Podemos pensar nesse número como o endereço em memória disso, dessa variável. Mas, por exemplo, se digamos que quiséssemos criar outra variável, variável dois, e quiséssemos, poderíamos configurar isso igual a uma variável. O que aconteceria se fizermos referência à variável ID, variável dois? Nós obteríamos o mesmo número mesmo se estivermos olhando para um nome de variável diferente, ambas as variáveis estão fazendo referência ao mesmo objeto que está localizado neste nome de ID. As variáveis estão fazendo referência ao mesmo objeto. Podemos usar um operador chamado operador. Por exemplo, em vez de ter que verificar cada ID individual e ver se estamos recebendo o mesmo número de volta. Poderíamos fazer a variável um. Variável dois. Vamos obter um retorno de valor, o que será verdade se eles estiverem fazendo referência ao mesmo objeto. Só queria ser falso se eles não estiverem fazendo referência ao mesmo objeto. Por exemplo, se eu criar uma terceira variável dizendo essa string de encolhimento, e então eu dissesse que uma variável é a variável três, nós ficaríamos falsos. Mais uma vez. Vamos examinar esses tipos de variáveis mais adiante neste curso. Mas, por enquanto, a parte importante é esse operador para entender que o ID é praticamente parecido com um número exclusivo para cada objeto. E você pode pensar no BID como sendo o endereço exclusivo na memória do objeto que você está referenciando. Já sabemos como olhar para a variável ID, como observar o valor de uma variável como esta. Então, variável um, variável dois, variável três. Agora vamos analisar como examinar o tipo da variável. E isso é simplesmente usando a função type. Nós fizemos a variável de tipo um obteria qual é o tipo, o mesmo para variável para o que é o tipo e o mesmo para a variável três, qual é o tipo. Agora vamos investigar isso mais tarde. Por enquanto, podemos ver que os dois primeiros são int para inteiro, e a terceira variável é STR, ou string. E novamente, vamos investigar isso mais tarde durante todo o curso. Mas, por enquanto, é importante procurar entender que a função type retorna o tipo do objeto que estamos passando. E, finalmente, vamos falar um pouco sobre nomes de variáveis. Nomes de variáveis diferenciam maiúsculas e minúsculas e, por convenção, todos são min Eles devem começar com uma letra e podem conter números, mas não como o primeiro caractere. Você também pode usar um sublinhado. Alguns exemplos de nomes de variáveis são os que já usamos, ou digamos que o nome possa usar esse nome var. Você pode ver o valor de retorno que você pode usar também como sobrenome como um exemplo de um nome de sublinhado. Você pode fazer animal, país 123, qualquer que seja, qualquer número que você possa simplesmente, a única coisa que você não pode fazer isso começa com um número. Por convenção, comece com letras e com pontuação mais baixa. Então, um aprendizado de Cuba lembra é consistência. Sempre volte porque você ficará surpreso se você ficar com ele. E queremos ter certeza de que passamos por esse vale de decepção. E a única maneira de fazer isso é sempre voltando. Em seguida. Aprendemos que tudo em Python é um objeto. E a ótica tem um tipo e IDs exclusivos e um valor também. Você pode descobrir qual é o tipo e qual é a ideia com essas duas funções. Útil, então as variáveis são simplesmente rótulos que apontam para um objeto que mora em algum lugar da memória. E você pode usar o operador is para ver se duas variáveis apontam para o mesmo objeto. Isso é o que falamos. Se eles tiverem os mesmos IDs, isso significa que eles são o mesmo objeto, então você pode usar o período de exaltação ou examinar isso também. Também aprendemos que as variáveis diferenciam maiúsculas de minúsculas e todas minúsculas por convenção. E eles começarão com uma letra e podem conter um número, mas não como um primeiro caractere. E, finalmente, aprendemos que o fracasso é seu melhor amigo. E se você não está falhando, isso significa que você não está empurrando seus limites. Você quer ter certeza de que está vendo que os erros vermelhos surgem porque isso realmente significa que você está aprendendo algo novo e isso é realmente ótimo. Seção de entendimento de hoje. A primeira é o que é uma chave para aprender? A segunda pergunta é definir variáveis diferentes e imprimi-las na tela. Terceiro é usar o operador is para ver se duas variáveis são as mesmas. Então, finalmente, use as funções ID e type para obter o ID e o tipo de objetos, respectivamente. E tente isso com uma string como esta, e com um número como este. Essas são as quatro perguntas para hoje. E boa sorte com isso. E se você tiver alguma dúvida, não hesite em perguntar na seção de bate-papo e estaremos ativos lá com uma comunidade lá. Boa sorte e te vejo amanhã. 6. Dia 3 - Cordas: Bem-vindo ao terceiro dia. O primeiro objetivo para hoje é olhar para a curva de esquecimento e por que fazemos sessões de tamanho mordido todos os dias. Em seguida, vamos examinar strings, índices de string, strings e variáveis. E, finalmente, vamos analisar como imprimir cordas na tela. Acontece que existem estudos que dizem que esquecemos entre 70, 80% do que aprendemos dentro de 24 horas após o aprendizado. É por isso que fazer um exame, aprender tudo naquele dia antes, fazer uma noite inteira e depois dividir tudo no exame pode parecer funcionar para o exame. Mas você pode notar que a maior parte do que aprendeu simplesmente desaparece depois. Felizmente para nós, estamos aprendendo da maneira inteligente aqui, pois sabemos como podemos esmagar a curva de esquecimento e fazer o que aprendemos ficar. Podemos aprender de forma muito mais eficaz revisitando o conceito que aprendemos várias vezes em períodos cada vez mais longos. Isso é o que se chama repetição espaçada, e é por isso que este curso é estrategicamente projetado da maneira como são 15 minutos de aprendizado deliberado e focado a cada dia durante 30 dias é consideravelmente melhor do que o equivalente 7,5 horas em um único dia, o que seria abarrotado. Cramming não é eficaz porque seu cérebro não absorve. E lembre-se de quase tanta informação em comparação com as sessões espalhadas por um pequeno tamanho. Quando você revisita onde aprende ao longo do tempo, seu cérebro considera essa informação como importante e fortalece as conexões neurais relacionadas a esse aprendizado com o objetivo de facilitar o trabalho e reduzindo o trabalho. Da próxima vez que ele aparecer, pense nisso. Neurônios que disparam juntos, ligam juntos, mas isso só acontecerá depois de algum descanso e recuperação de qualidade. Isso significa que se você aprender algo hoje e depois voltar outro dia logo depois de dormir bem, comer bem, relaxar e se exercitar. Você notará como, quando voltar, está fazendo as coisas consideravelmente melhor do que da última vez. E agora vamos passar para cordas. Strings são objetos destinados a representar texto em Python. No exercício anterior, onde quer que as variáveis de texto que atribuímos, aquelas que são todas strings. Para criar uma string, podemos usar simples ou aspas duplas. Por exemplo, podemos dizer string um igual a dois. É uma string. Isso seria com aspas simples. Podemos ver que atribuímos essa variável para transmitir uma. Poderíamos fazer força também. Esta é outra string com aspas duplas e podemos usá-la da mesma maneira. Então, é a mesma coisa. ver os diretores e outras cordas. Apenas certifique-se de manter de tal forma que, se você usar algumas aspas simples, mantenha-as consistentes em seu código. Se você estiver usando aspas duplas, mantenha-o consistente com o que se você quisesse usar aspas dentro de uma string? Digamos que você queria salvá-lo com a palavra seu. Você coloca STR, string um. Digamos que você faça isso. Você vê que isso não funciona porque as coisas que você está perto na string. Então, para evitar isso, podemos fazer isso funcionar. Podemos simplesmente adicionar o caractere de escape, logo antes de eu citar nós Python e ele escapará, essa citação, não a levará em conta. E então, ele usaria como um literal de texto e adicionaria à sua string. Sempre que imprimimos uma corda, podemos ver que é Seu. Também poderíamos usar aspas duplas para evitar mesmo ter que usar uma barra invertida. Então poderíamos dizer corda um, seu igual ao seu. E dessa forma. Você também pode obter o mesmo resultado sem precisar usar o caractere de escape. Mas e se você tivesse uma cotação dentro de uma cotação? Por exemplo, se você disser, eu disse, você é o melhor, então, neste caso, você precisaria de um próximo e caráter. Você precisaria de uma barra invertida aqui. Então, quando você imprime uma string, você obteria a string que pretende obter. Ela disse: Oi, Você é o melhor. Agora vamos falar sobre indexação de strings por um segundo. Isso é sim, Por exemplo, você tem um país que tem uma string, Nova Zelândia. Nova Zelândia. Agora, você pode chamar cada, cada letra da string será um índice nessa string. Você disse país e vai chamar o índice com o formato de colchetes. Então, se você diz país. É 0. Indo referenciar esse índice Z com a referência 0 nessa string. Nesse caso, é Dn porque é um país de referência baseado em zero. Vamos fazer uma única amostra acima de uma referência. Você obteria o próximo índice. Se você tiver terminado três, o próximo que é um espaço, e assim por diante. Você também pode até usar índices de índice negativos. Temos nossa variável, país, que tem a Nova Zelândia. Bem, se fizermos referência ao país, menos um, o que você espera obter daqui? Exatamente? Então, obteríamos o último, o último número. Se fizermos menos dois, obtemos o segundo último. Portanto, é uma forma de começar do final. Quando sabemos que poderíamos usar um 0 para obter o primeiro valor, então poderíamos ir menos um e assim por diante. Onde poderíamos ir mais um e ir. Pensei na próxima citação do início ao fim ou do fim ao início. Também é útil saber que podemos atribuir essas duas variáveis se você souber, se você tiver país, digamos primeira letra. Essa é minha nova, minha nova variável. E então eu poderia dizer, ok, país. Como estamos procurando a primeira letra, queremos que ela seja, seja o índice 0. Então temos referências à letra, que é n. Quando olhamos para o país, Nova Zelândia, perfeita, é exatamente isso que estamos procurando. Incrível. Então foi isso para a sessão de aprendizado de hoje. Agora vamos fazer uma recapitulação. Aprendemos pela primeira vez que esquecemos maior parte do que aprendemos quando acabamos aprender uma vez que mostrei pela curva de esquecimento no gráfico que mostrei a vocês. Mas podemos esmagar essa curva de esquecimento implementando repetição espacial em nosso aprendizado. E é exatamente isso que estamos fazendo neste curso. Em seguida, queríamos a força interior. Vimos strings são objetos que representam texto em Python. Você pode usar aspas simples ou aspas duplas para criar strings. Apenas seja consistente para manter seu código. Em seguida, para adicionar aspas dentro da string, podemos usar para manter o caractere de escape, ou também chamado de barra invertida. Strings têm índices, começam em 0 para o primeiro caractere. Você pode usar índices negativos para escolher os últimos caracteres e a partir do último e assim por diante. Você pode atribuir essas strings a variáveis e, em seguida, você pode imprimir essas variáveis na tela usando a função de impressão. Doce. Então, agora estamos prontos para a seção de entendimento para hoje. Agora, a primeira pergunta é como esmagarmos a curva de esquecimento? Em seguida, atribua uma string com o texto que sou programador a uma variável chamada myString one. Atribua o mesmo Texas antes à variável MyString para, mas alterne as aspas usadas. Você usa single, usa um duplo e vice-versa. A quarta pergunta é imprimir ambas as cordas na tela. Imprima o tipo e o ID de cada string. Use o ACE operado. Descubra se a variável aponta para o mesmo objeto. A quinta pergunta é criar uma variável chamada myString três. Eu atribuo esse novo rótulo, o objeto dentro da variável myString um da etapa um. Dica que não há necessidade de escrever nenhum texto ou usar aspas aqui, apenas nomes de variáveis e o operador igual. Em seguida, a pergunta final é imprimir todas as três variáveis da etapa 124 para a tela e imprimir seu tipo em ID e compará-las entre si usando o operador. Anote todas as perguntas que você possa ter e que possa ter surgido e consulte-as com seu travesseiro esta noite. Dez revisarão isso amanhã. Você também pode usar o bate-papo novamente. Você pode usar a seção da comunidade para fazer qualquer pergunta e estaremos ativos lá. Boa sorte e te verei novamente amanhã. 7. Dia 4 - Funções (1/2): Bem-vindo ao Day para os objetivos de hoje são sobre aprender sobre funções hifenizadas. Examinar as funções internas do Python. Estamos procurando funções definidas pelo usuário. E, finalmente, entrelaçado com tudo o que estamos olhando para que código bloqueia nossa função é simplesmente uma referência a algum código que será executado sempre que você chamar essa função. Pense em uma função de forma semelhante a uma variável. Depois de definir a função e dar um nome a ela, você poderá usar esse nome posteriormente para chamar essa função. Então, em outras palavras, você chama uma função pelo nome deles, e isso executaria o código dentro dessa função. Existem algumas funções que já foram incluídas no Python, e não precisamos definir essas funções nós mesmos. E essas são chamadas de funções internas. exemplo perfeito de uma função incorporada é a função de impressão, que você passa em uma string e ela a imprimirá na tela. Mas você precisará definir o que a função printf fará. Isso significa que a impressão é uma função incorporada. Outros exemplos de funções internas são amostrados. A função Len. Deixe-me definir uma string primeiro. Posso usar a função Len para descobrir o comprimento de tudo o que estou passando. Então você pode passar em uma string, você sabe, passar isso lhe dirá sete porque há sete caracteres. Indústria. Outros exemplos de funções internas ou da função type. Já falamos sobre isso antes. Então ele me diz, ok, É uma string de tipo, o objeto que está nessa variável. Também podemos ter a função BID, como mencionamos anteriormente também. Isso informa o equivalente à localização na memória dessa variável, esse objeto, desculpe. Então também podemos ter suas duas novas funções que podemos usar que são úteis para depurar, que são a função que significa diretório. Entenderá o que essa saída significa mais adiante neste curso. A função de diretório querida e querida. E depois há também a função de ajuda. A função fornece a você, não lhe dá documentação. Portanto, neste exemplo para essa variável, não temos nenhuma documentação para isso. Mas podemos, podemos usar a função de ajuda também para depuração para, você pode encontrar toda a função interna do Python simplesmente procurando essa documentação on-line. Vamos ver as funções internas do Python. E aqui vai você. Aqui eu tenho uma lista do que eles são e o que eles fazem. Então, por exemplo, se fomos para a função de impressão, obteremos uma descrição detalhada do que a função de impressão dólares. Podemos criar nossa própria função usando a sintaxe a seguir. Você pode usar DEF para definição de def. E então você tem o nome da função. E chamaremos essa função de minha função. Em seguida, use os suportes redondos e depois dois pontos. Quando você pressiona Enter, você verá que, se você estiver usando ipython, ele fará o recuo para você, mas você precisaria adicionar recuo nesse caso, é uma base forçada. E aqui, aqui seria o que o bloco de código seria. O bloco de código de função. Então, sempre que faço referência a essa função, esse é o código que seria executado. Nesse caso, estou usando a declaração passada porque não quero que a função faça nada. Eu só queria passar. Sempre que executo minha função, esse código é executado. E simplesmente não faz nada neste caso porque simplesmente passa função não-quadrada que diz oi e, em seguida, imprime o nome. Vamos fazer def. Diga impressão. Então, digamos que imprima. Corra para fora. Sempre que eu faço. Gravata de impressão. E você chama uma função usando os colchetes redondos, você verá que o código será executado. Nesse caso, você verá que usamos os colchetes, mas não forneceríamos nenhum atributo para essa função da mesma forma que fizemos sempre que imprimimos com a instrução print, fornecemos uma string. Para que ele imprima uma string. Podemos ver que sempre que estávamos executando essa função que definimos sem nenhuma, sem nenhuma variável, ela ainda executa o código que a função possui. Opcionalmente, você pode adicionar fluxo de documentos à sua função. Você faria isso assim. Você cria sua função. Então, logo abaixo, você adiciona uma aspas triplas. Então essa seria a string doc. Uma string doc. Considerando que para documentação. Se você usar sempre que criar funções dentro do seu código, seria útil para quem tentar ler seu código para entender o que a função faz. Isso funciona para documentação novamente. Além disso, digamos que quiséssemos usar uma função, mas queríamos ter um valor que Garmin, que vá e vá para essa função. Por exemplo, vamos colocar um nome e um sobrenome. Primeiro, nome, nome e sobrenome. E então vamos dizer impressão. Vamos dizer oi. E depois primeiro, FirstName, LastName. Essa função fará o que chamarmos Minha função. Podemos dizer, vamos dizer confuso. Então a função saberá que o FirstName é um primeiro argumento, então o segundo nome é, o sobrenome é um segundo argumento para essa função e você pode referenciar essas variáveis dentro de sua função. Finalmente, como mencionei antes, você pode usar a função de ajuda para ajudar uma função interna a examinar, examinar algumas das variáveis que você tem. Nesse caso, é a função. Portanto, sempre que você usa a função de ajuda, ela o leva a uma tela e fornece o nome da função. O nome do atributo é que uma função recebe. E finalmente, este seria o fluxo de latido de cães, a documentação. Se você tivesse alguma documentação para sua função, não conseguiria vê-la através da função interna de ajuda. E então, para sair daqui, você pressiona Q e ele o traz de volta. Eu faço Python? Eu estava atrasado para a seção de aprendizado. E agora vamos fazer uma recapitulação. Uma função é simplesmente um bloco de código que será executado sempre que essa função for chamada. E as funções são chamadas pelo nome e usando colchetes redondos como este. Python tem funções integradas que estão sempre lidas prontas para uso. Por exemplo, a função de impressão é a primeira que aprendemos. Então temos a função Len para obter o comprimento de um objeto. Você tem o ID da função de tipo lá para o diretório. E, em seguida, a função de ajuda. Você pode ver a documentação do Python para a lista completa de funções, que é o link que mostrei antes. Podemos definir nossas próprias funções usando DEF e meu nome de função, colchetes redondos e ponto-e-vírgula. E então o respectivo bloco de código abaixo disso, onde você tem um bloco de código recuado sob a função f, que é um código que será executado. Também podemos apontar strings poderia essa função usando aspas triplas. E então a função de ajuda, a função interna de ajuda integrada nos dá informações úteis sobre diferentes objetos Python que incluem funções. Então, para definir uma função que recebe argumentos, podemos adicioná-los à definição. Assim. Fazemos a definição que você faz dentro do nome. E então, dentro dos colchetes redondos, você adiciona os argumentos. E então você pode fazer referência a esses argumentos dentro do bloco de código ou dentro da função que você pode usar. Prateleira com você entende seção. A primeira pergunta é usar uma lente e as funções incorporadas de impressão para imprimir o comprimento dessa string. A segunda é definida como uma função chamada leitura que imprime qualquer saudação na tela. Em seguida, defina uma função chamada add que aceita dois inteiros, adicione-os Princeton para excretar. E, finalmente, usado para ajudar a funcionar incorporado em suas duas novas funções. Se sua função não tiver docstrings, docstrings students e execute a função de ajuda novamente e veja a diferença. Mas incrível. Boa sorte com isso. E se você tiver alguma dúvida, sinta-se à vontade para perguntá-las no chat. E vamos nos certificar de estar ativos na comunidade lá. Obrigado novamente e te vejo amanhã. 8. Aula 5: Bem-vindo de volta. Meu amigo. Hoje é, na verdade, um dia de descanso. Estamos empurrando nossos limites por alguns dias seguidos hoje o que vamos fazer é resolver o que aprendemos e descansar um pouco. Quero que volte aos exercícios e tenha certeza que você internalizou tudo o que aprendemos até agora. E, finalmente, eu só quero lembrá-lo das três chaves para um aprendizado eficaz. Vimos até agora as perguntas ou a resposta. Bem, sabemos que quando você se torna radicalmente aberto, você começa a fazer muito mais perguntas, o que começa a levá-lo a respostas melhores, então é difícil ver o progresso no início. Mas se você continuar voltando e se for consistente com a consistência, ficará surpreso com o que você pode começar a alcançar. E, finalmente, vimos o conceito de repetição de palco. Como podemos esmagá-lo esquecendo a curva não apenas familiarizando-se com os conceitos uma vez, mas agindo sobre o que você aprendeu, espaçado ao longo do tempo. E dessa forma podemos fazer com que seja tomado, aprender de forma mais eficaz. Então é isso por hoje. Espero que você tenha um bom dia de descanso para hoje e eu te vejo de volta amanhã. 9. Dia 6 - Programação Orientada a Objetos (OOP) - Métodos: Bem-vindo ao sexto dia. Portanto, os objetivos de hoje temos que ver o que é a mente do iniciante. Sempre que vamos examinar a programação orientada a objetos, e veremos que no Python tudo é um objeto. Em seguida, veremos que os objetos podem conter dados, atributos e funcionalidades à medida que os métodos entram diretamente na sessão de aprendizado. A mente do iniciante significa abordar o aprendizado através uma nova perspectiva e ver as coisas como um iniciante faria. Há uma sensação que vai para a base. Obstáculo ao aprendizado é a crença de que você já o conhece. Então, aproximar-se de aprender com um novo par de olhos impede que você enfrente esse obstáculo. Então, convido você a voltar todos os dias a este curso com a mente de um iniciante e assim você pode tirar o máximo proveito dele. Também sabemos antes que python é uma linguagem de programação orientada a objetos. No Python, tudo é um objeto, e os objetos podem conter dados em todos os atributos e funcionalidades por meio de métodos. Já vimos, sabemos que objetos podem ter um tipo. Então, se criarmos uma variável, uma que digamos, igual a essa string, podemos ver esse tipo de variável um. Podemos ver que é uma string porque é isso que atribuímos textos dentro de aspas aqui. Se quiséssemos imprimir a variável um, poderíamos ver o valor desse objeto. Isso seria um objeto e esses seriam alguns dados anexados a esse objeto. E é isso que a função de impressão mostra, que podemos pensar nisso como dados anexados a um objeto. Portanto, além dos dados anexados a um objeto, podemos ver que os objetos também podem ter funcionalidade por meio de métodos. Você pode pensar em um método simplesmente como uma função que pertence a um objeto para chamar um método que usamos a notação de ponto combinada com a sintaxe que usamos para chamar nossa função normal. Por exemplo. Por exemplo, seríamos minha variável, meu método. Se tivéssemos, claro, definido uma variável chamada myvariable e um método chamado meu método. Mas, para este exemplo, vamos fazer isso, usar a variável um, que temos e sabemos o que é uma string. Para a variável um, poderíamos usar um exemplo de um método de string chamado Upper. O que esse método faz é que ele pega uma string e retorna a string com cada letra maiúscula. Outro exemplo é o método title. Qual X maiúscula é apenas a primeira letra de cada palavra na string. Finalmente, outro exemplo é o método count. Há um erro porque ele recebe uma entrada. Então, o método count realmente recebe uma entrada, é o que queremos contar nessa string. Então, neste caso, quero salvar a letra I. E ela me diz um número dois. Número dois porque nossos dois olhos e essa corda, esta corda, há dois olhos. Podemos ver a área que temos. Recebemos um erro de tipo com a conta, com a mensagem. É isso. Count pega pelo menos um argumento e 0 onde dado, foi assim que eu sabia que precisava dar um argumento, assim que eu mudei. E eu aprendi que o método count recebe um argumento e ele retorna uma contagem de dois para essa entrada específica que podemos usar para R1, podemos usar a função dir, que receberá um objeto e retornará uma lista de todos os métodos que contém. Se fizermos isso aqui para o VAR, podemos ver que temos todos os métodos contidos nesse tipo de objeto. Nesse caso, é uma string. Podemos ver a vacina, temos uma menor, que as mais baixas para cada letra na corda. Temos a contagem quando acabamos de usar também. Podemos ver maiúsculas também. Podemos ver todos os métodos que ele possui. E, por enquanto, podemos ignorar aqueles que começaram com dois sublinhados examinarão isso mais tarde. Aqui podemos ver todos os métodos que ele possui. Você pode usar como referência. Você pode usá-lo lá, a função dir. Incrível. Então, agora vamos fazer uma recapitulação. Primeiro de tudo, aborde experiências com a mente de um iniciante. Sempre haverá um caminho que nunca percorremos antes e buscará esses caminhos e você nunca deixará de aprender. Em seguida, aprendemos que tudo em Python é um objeto. Os objetos podem ter funcionalidade por meio de métodos. Cada objeto tem um tipo, e podemos ver que usar a função type e cada tipo terá métodos próprios. Os métodos são chamados usando a notação de pontos. Então você tem o objeto primeiro e depois o método com colchetes redondos D. Alguns métodos de string são capital inferior, bom título, faixa superior, lstrip, rstrip, count, split, replace. Como mencionei antes, podemos usar uma função dir para obter uma lista de todos os métodos em um objeto. Se tivermos alguma dúvida sobre o que cada método ele faz, podemos examinar a documentação do Python para eles. Mas vamos olhar neste curso e o mais usado uma vez naqueles em que você usaria mais, agora temos a seção de entendimento. O primeiro prompt é notar o que é aprender Python pela primeira vez. E como você pode levar essa perspectiva em suas experiências do dia-a-dia? Próxima variável chamada MyVar e defina-a igual a espaço, espaço. Descubra o que você gosta de espaço, espaço, espaço e use a função type para obter o tipo de objeto que ele é. Em seguida, você usa a função dir para obter uma lista de todos os métodos disponíveis para esse objeto. E use o método de tira de pontos para remover os espaços em branco extras da string e reatribuiu a nova string ao meu VAR. Em seguida, use o método replace para substituí-lo por espaços e reatribua isso ao meu var, geralmente títulos com letras maiúsculas inferiores e métodos superiores para ver as diferentes saídas. Incrível. Espero que você ache isso um pouco desafiador, mas não muito desafiador. E se você tiver alguma dúvida, você sempre pode publicá-las no chat e ele estará ativo na comunidade lá. Obrigado novamente por assistir e te verei novamente amanhã. 10. Dia 7 - Concatenação de Cordas: Bem-vindo de volta. Hoje sete. Vejamos os objetivos de hoje. Nós praticamente vamos ver o que mais podemos aprender com a outra fonologia. Em seguida, vamos examinar a concatenação de string e, finalmente, a formatação de string. Vamos entrar na seção de aprendizado. Então, vamos voltar ao ELF e à analogia por um segundo e lembrar que as perguntas são a resposta. Então, toda vez que você geralmente se faz uma pergunta com a mente de um iniciante, seu cérebro ganha vida com novidade e você pode encontrar caminhos pelos quais nunca percorreu antes. Você obtém uma percepção mais precisa da realidade em comparação com a última vez que você fez a mesma pergunta. Se você se contentar com uma única resposta, então estamos fechando o toque no aprendizado porque as respostas sempre serão um fragmento dessa representação da realidade. Faça perguntas e anote. Quando você faz perguntas específicas, você prepara sua mente para aceitar as respostas quando elas aparecerem. Há uma parte do cérebro chamada sistema de ativação reticular, ou RAS, que atua como um porteiro de informações. Sem isso, ficaríamos sobrecarregados com a grande quantidade de informações que temos ao nosso redor. Portanto, o RAS nos permite concentrar nossa atenção. Então você pode pensar nessa parte do seu cérebro como um dispositivo de exclusão e precisa dizer o que procurar por ele. As perguntas vão preparar seu cérebro para se concentrar nas respostas quando elas aparecerem. É assim que você diz ao seu cérebro o que procurá-lo. Ao longo deste curso, você pode fazer perguntas como, por que estou aprendendo Python? E a resposta para isso pode ser boa exercitar seu cérebro e fazer novas conexões neurais, ou ganhar mais perspectiva sobre como o mundo, o mundo digital que está ao nosso redor funciona. Ou, eventualmente, encontrar um emprego bem remunerado. Então, desenvolvedor, são todos bons motivos. Então pergunte a si mesmo por que você está aprendendo Python. Outra boa pergunta pode ser como posso usar esse novo conceito que estou aprendendo hoje? Ou como posso aplicar esses conceitos de aprendizado acelerado a outras habilidades na minha vida? Então, é bom ter tudo isso em mente. E, por enquanto, vamos passar para o tópico Python de hoje. Agora vamos olhar para a concatenação de cordas. Isso significa simplesmente anexar strings umas às outras. Estamos adicionando cordas umas às outras. Portanto, isso é simples como apenas usar o sinal de mais. Por exemplo, você pode usar essa string de sinal de mais e, em seguida, imprimi-la em uma string. Observe que não temos um espaço dentro dele porque não adicionamos espaços entre as strings. Então, se quiséssemos espaçar, precisamos adicioná-lo literalmente a uma corda para obter o espaçamento impresso na tela. Você também pode ter variáveis impressas na tela e concatenadas. Por exemplo, se você tiver uma variável com um nome, você pode imprimir. E, em seguida, a variável, você pode ver como ela imprime. O que esperamos que isso aconteça. Também poderíamos usar o operador estrela para imprimir a mesma string várias vezes. Por exemplo, se você fosse imprimir uma determinada string várias vezes, você poderia simplesmente fazer o seguinte e você obteria a string várias vezes. Uma coisa é notar sobre a impressão de números inteiros, por exemplo, variável para, digamos que seja igual ao número três. Se quiséssemos imprimir o número na tela concatenada com outra string. Digamos que tentamos imprimir isso, por exemplo, ele também satisfaz isso. Digamos que tentamos imprimir a variável na tela. Nós receberíamos um erro, um erro de tipo, com a mensagem de que só podemos concatenar string, não integer para uma string. Então está me dizendo que não podemos concatenar um int a uma string. Para o que isso significa é que precisamos converter isso, esse inteiro em uma string usando a função string. Agora podemos ver que o imprimimos. Nós imprimimos dessa forma. Porque, por exemplo, sempre que fazemos uma string de tipo, variável dois, vemos que é uma string de tipo porque a convertemos em uma string. Seria equivalente a dizer tipo string para o número três. É uma string porque convertemos a string para o número três. Também podemos usar o método de string de formato para concatenar strings. Por exemplo, vamos tomar essas declarações como exemplo. Então, isso é uma string. E então, quando usamos o formato de ponto, chamando o método de formato, então dizemos formato. Nós passamos isso. Passamos o valor para o método de formato. Em seguida, o método de formato é aplicado a essa string. E então, sempre que executamos isso, vemos, ok, esta é uma string formatada. Se eu tivesse dito aleatoriamente. Vemos que sempre que qualquer método de formato inserido é inserido nos colchetes, também podemos usar o mesmo. Você pode dizer que é assim que você insere valor. Digamos qualquer valor, valor, outro formato de valor, e então podemos dizer 12. Vamos usar isso como exemplo. Isso imprimiria é assim que você inseriria um valor um e o valor dois. Observe como não precisamos mais usar o STR, a função STR para transformar ou converter a função STR para transformar ou converter o interior em uma string, sempre que usamos uma string de formatação, também podemos usar referências dentro desses colchetes dentro da string. Desta forma. Se dissemos que o segundo parâmetro posicional é, se colocarmos um aqui. A primeira é, e podemos colocar um 0 aqui, depois obter o formato e depois 12. Mais uma vez. Nós veríamos que o segundo parâmetro posicional é dois. Eu tive um erro de digitação aqui, mas deve dizer se T2 e o primeiro é um. Mais uma vez, podemos dizer primeiro. Dissemos aqui primeiro. Segundo. dizer que o diâmetro é o segundo e o primeiro é o primeiro. Então você pode ver, você pode fazer referência por índices. Índices também se você especificar entre colchetes, também poderíamos usar um, o método de formato para formatar o espaçamento. Então, pegue isso por exemplo, exceto impressão, e depois passamos essa string específica. Em seguida, usamos o método de formato e o passamos na string um, string dois. O que significa? Então, o primeiro número é o índice que vimos no anterior. Então 0 significa que ele fará referência a um. Então um aqui significa que todas as referências aqui. Em seguida, usamos dois pontos. E temos nosso personagem aqui. Esse caractere significa que o alinhamento é o restante do alinhamento de referências. Se tivermos um código opcode como este, isso significa alinhamento central. Temos uma seta para a direita aqui, significa alinhamento correto. E se tivéssemos uma seta para a esquerda, isso significaria alinhamentos à esquerda. Mas vamos ver o que essas saídas. Como você pode ver, a primeira coluna ou esta primeira linha de espaçamento, o espaçamento ficaria 12345 porque inserimos cinco aqui. Então, por outro lado, obteremos 12345678910 porque isso suspeita que passamos e passamos na transportadora. É assim que você pode usar talvez se você tivesse uma tabela ou algo que você quisesse inserir com uma tabela ou algo que você obteria, você seria capaz de usar esse tipo de formatação. Vamos mudar o exemplo agora vamos dizer um em vez de dois e depois 0 em vez de um. E digamos que aqui vamos escrever espaçamento aqui, um espaçamento à esquerda. Mas, na verdade, não gostaríamos de especificar que o espaçamento porque esse seria o padrão. Mas vamos ver o que recebemos aqui. Impressionante, sim, temos dois em vez de um e depois conseguimos um e podemos escrever espaçamento com os dez caracteres no total. Finalmente, provavelmente a string de formatação mais útil e go ball, que é f strings. Vou anotar o exemplo. Primeiro, minha variável e depois aqui eu quero salvar uma. Porque essa é a variável que acho que tínhamos definido anteriormente. Exatamente. Então é assim que imprimiríamos var one. Ronaldo. Então, como você pode ver, é simplesmente a string, mas depois, basta adicionar o f antes. É praticamente isso. Essa é praticamente uma maneira bastante simples de escrever e formatar strings como apenas usando o FBI logo antes da string e, em seguida, usar as variáveis entre colchetes dentro da string real. Então, vamos fazer uma recapitulação. Transforme pensamentos e crenças limitantes em algo empoderador, não sei codificar para um codificador melhor impróprio a cada dia. Você pode concatenar strings e várias maneiras usando o sinal de mais, usando o método de string de formatação ou usando F Strings. F strings é praticamente a que mais usaremos, já que é praticamente a maneira mais conveniente de formatar strings. E, finalmente, a gravação é uma das formas mais novas e legíveis de formatar strings. Finalmente, vamos pular. Você entende a seção? Eu quero que você pense em uma crença limitada que você tem e como você pode transformar isso em crenças empoderadoras. Em seguida, crie uma função chamada saudação que pegue um nome como uma entrada e , em seguida, imprima hey lá nome de entrada usando o mais para concatenar strings. Altere a função acima para usar o método de string de formatação. Alterar a função acima usa a tensão S e, em seguida, use um método de string de formato junto com o sublinhado, a notação de colchetes encaracolados, para criar uma tabela com duas colunas em uma linha. Brinque com diferentes alinhamentos de largura mínima e textos e veja como isso funciona. Sim, boa sorte com estes. Faça quaisquer perguntas que você possa ter na seção da comunidade. E te vejo de novo amanhã. 11. Dia 8 - Entrada Do Usuário (Números, Inteiros, Flutuantes, Comentários): Bem-vindo ao dia oito. Então, vamos dar uma olhada nos objetivos de hoje. Vamos ver o que mais podemos aprender o valor da consistência. Também vamos analisar como aceitar a entrada do usuário. Queremos analisar números para números inteiros e carros alegóricos. Vamos examinar os operadores numéricos. E, finalmente, vamos analisar comentários e como usar comentários em Python. Ok, então vamos usar nossa imaginação por um segundo. Você estará em um mês se continuar aprendendo nesse ritmo todos os dias? E quanto a três meses? E quanto a seis meses? E quanto a um ano? E quanto a cinco anos? A verdade é que você se tornará um codificador proficiente muito mais rápido do que pensa. O problema é que geralmente não mantemos uma taxa consistente de novos aprendizados todos os dias. A grande notícia é que a única coisa que está no caminho entre nós e dominando uma habilidade somos nós mesmos. Lembre-se de que realizamos no nível da nossa última recuperação. Devemos abordar a recuperação à medida que fazemos todo o resto com a mente de um iniciante. É assim que aprendemos a ouvir o corpo e nos mantermos calibrados entre treinamento e testes para evitar queimar, pense em aprender como um excelente exercício para seu cérebro. Seu cérebro gosta de novidade, e é exatamente isso que estamos dando quando aprendemos algo novo. Mas lembre-se sempre de que o cérebro é como um músculo e o resto do corpo, quanto mais o usamos, mais forte ele fica. Mas apenas enquanto encontrarmos um bom equilíbrio entre esforço e recuperação, forçar-nos demais poderia levar ao esgotamento. Ouça seu corpo e mantenha-se calibrado. É por isso que temos dias de descanso a cada quatro dias de aulas. E se você sentir que está se esforçando demais e tudo bem. Basta adicionar um pouco mais de descanso, mas lembre-se de ficar curioso e consistente. Portanto, tenha isso em mente e vamos passar para o Python agora, obter entrada do usuário é tão fácil quanto usar a função de entrada. Seja o que for inserido depois disso, depois disso seria a entrada do usuário. Poderíamos atribuir isso a uma variável. Digamos que, na verdade entrada do usuário seja usada para entrada. E então, sempre que imprimimos a entrada do usuário obteria o que temos dessa variável. Também podemos ver que, com o que for que passamos a função de entrada para a função de entrada, será o prompt para o usuário. Insira a entrada. Então essa seria a entrada. Também podemos ver que, como os vimos um pouco mais cedo no curso, poderíamos usar números em Python também. Se você fizer isso. Podemos, podemos armazenar números inteiros, por exemplo, números como este, como números inteiros, qualquer número inteiro, 567, Vamos fazer sete. Ou poderíamos fazer meu flutuador, que seria qualquer tipo de número com casas decimais. Você pode ver que você pode ver isso observando o tipo também, mas ele muda. Podemos ver um tipo de inteiro, mas depois tipo de meu flutuador, float. A diferença é que o fluxo tem casas decimais e os números inteiros são números inteiros. Também podemos ter operadores numéricos em Python. Então, vamos tentar isso criando dois novos números. Vamos fazer o número um igual a dois. Para o número dois, igual a dois. Em seguida, operadores diferentes trabalham em Python. Podemos usar o Python como calculadora. Você poderia fazer num1 mais num2. Isso seria igual a seis mais normais. Podemos fazer alguns menos também que seriam iguais a, poderíamos usar a estrela como multiplicador para multiplicação, seria oito. Poderíamos usar a divisão também. Retornaria dois. Observe que essa divisão sempre retornará um flutuador, independentemente de esses dois serem inteiros, basalto MD é um número inteiro, mas é, Python ainda retorna um flutuador porque a divisão sempre retorna um flutuador . Finalmente, temos o quê? Também temos a estrela dupla exponenciada, que é quatro vezes quatro. E finalmente temos o módulo que é quatro dividido por dois. E então, qual é o restante ou quantos números permanecem? E isso é um 0 porque quatro divididos por dois não tem restante. Também vale a pena. Enfatizando o fato de que sempre que você usa a entrada, por exemplo, você pede ao usuário que insira um número que retornaria uma string. Na verdade, é beber. Não é um número. Se eu disse variável um igual à entrada, insira uma entrada. Se eu dissesse Five, por exemplo, e eu digitasse a variável um, eu obteria uma string. Portanto, é importante notar que você obteria uma string em vez do que você poderia esperar, que era um número inteiro. Para isso, simplesmente, poderíamos simplesmente fazer a variável um é igual a variável um. Poderíamos fazer int variável um. Reatribuímos a variável a uma versão int de si mesma. Agora, se você executar o tipo de variável um, diríamos que é um número inteiro, mas somente depois de convertê-lo em um número inteiro. E o mesmo se aplica ao flutuador. Se você quisesse transformar a variável um em um flutuador, você poderia usar a função float. Então você veria o tipo igual a um flutuador. Finalmente, vamos dar uma olhada nos comentários em Python. Para fazer um comentário de uma linha em Python, você usará apenas o sinal de libra para fazer um comentário de várias linhas. Você geralmente tem aspas triplas. Então você também pode usar aspas triplas e sinal único que também funcionariam. Então, comentários, você pode usar uma libra para um comentário de linha única ou aspas triplas, simples ou duplas. E isso funcionaria perfeitamente para comentários em Python. Usamos comentários em todo o nosso código patelar simplesmente para documentar nosso código e garantir que outras pessoas que não o escreveram entendam o que está acontecendo em todo o código e possam navegar no funcionalidade do código. Doce, então vamos fazer uma recapitulação. Vimos que a consistência a longo prazo leva a um progresso excepcional. Portanto, certifique-se de permanecer consistente, vindo, continue voltando. Em seguida, vimos que a função do usuário, a função de entrada, é usada para obter entrada do usuário. E você pode, opcionalmente, passar uma string que será exibida para o usuário. Python também suporta números, números inteiros são números inteiros e os flutuadores têm decimais. Os operadores disponíveis incluem o operador estrela mais menos para multiplicação, lâmpadas de divisão, estrela dupla para exponenciado e módulo, que é o sinal de porcentagem. Você pode usar as funções int e float para comparar dois objetos, dois inteiros e flutuadores, respectivamente. Estes são úteis ao usar a função de entrada, uma vez que leva dados em string, por padrão, a função de entrada sempre traz uma string. Temos que transformar, transformar isso. Temos que converter isso em um flutuador em um número inteiro para um que seria um número. Finalmente, usamos a libra para comentários e aspas triplas para comentários de várias linhas. E, finalmente, a seção de entendimento. Incrível. Então, hoje, a primeira pergunta é onde ela estaria em um ano se você desenvolver o hábito de aprender consistente? próxima pergunta é definir uma função para solicitar que o usuário insira um número e, em seguida, imprime o quadrado do número definido na tela. Lá você tem uma dica, pode ser útil. A terceira pergunta é definir uma função que solicita que o usuário insira um número e, em seguida, imprime se o número é ímpar ou par. Você também tem uma dica que pode ser útil. E, finalmente, use comentários em todo o código para documentar o que acontece em etapas de relevância do código. É isso por hoje, pessoal. Se você tiver alguma dúvida sobre essas perguntas, certifique-se de perguntar a elas na comunidade e eu te vejo aqui amanhã. Boa sorte. 12. Dia 9 - Condicionais (if/elif/else) e blocos de código: Bem-vindo Hoje Nine. Os objetivos de hoje que temos. O que mais podemos aprender com a repetição espacial? Vamos olhar para booleanos, estamos procurando condições. E então vamos examinar os operadores booleanos. Então, vamos pular direto para a seção de aprendizado. Uma excelente maneira de aproveitar ao máximo a repetição do espaço é através do recall ativo. recall ativo é o que acontece quando você produz as respostas sozinho sem qualquer material de suporte, fazendo uma pergunta a si mesmo e fazendo o esforço para respondê-la por uma pergunta a si mesmo e fazendo o esforço para respondê-la conta própria elimina o ambiguidade entre estar vagamente familiarizado com algo em realmente conhecê-lo. Essa é uma maneira extremamente eficaz de mover informações da memória de curto prazo para a memória de longo prazo. Isso também está diretamente vinculado à repetição de espaço porque toda vez que estamos revisando um assunto, estamos nos envolvendo em recall ativo. As seções de entendimento deste curso são uma ótima maneira de aprender por meio de recall ativo, pois você tem a chance de produzir respostas por conta própria e fortalecer as conexões neurais sobre o tema que você está olhando, desde que você não esteja usando o material de suporte, a menos que seja completamente necessário. recall ativo é uma ótima maneira de comissionar ou aprender com a memória de longo prazo. Portanto, tenha isso em mente quando você estiver tentando aprender algo novo. Por enquanto, vamos para Python. Agora vamos examinar declarações condicionais. As instruções condicionais são um dos pilares mais importantes da programação pois permitem que seu código siga um fluxo lógico especificado. As condições estão em toda parte no nosso dia-a-dia. Se estiver com fome, vá pegar comida, se estiver com sono, vá para a cama e assim por diante. Para usar declarações condicionais, usamos um tipo de dados específico chamado booleanos. Booleano pode ser verdadeiro ou falso, e nós escrevemos o verdadeiro com uma letra maiúscula e falso com uma letra maiúscula também. A instrução if avalia uma expressão booleana e, se for, ela é avaliada como verdadeira, então o bloco de código será executado. Então, neste exemplo, atribuímos valor booleano de true, a variável chamada fome. E então dissemos que, se estiver com fome, então execute este bloco de código. Desde que faminto é igual a verdadeiro. E quando pressionamos Enter aqui, vemos a impressão. Imprima levando um sanduíche em uma tela. É o que acontece e o que passa pelo bloco de código. Acontece que também podemos usar junto com a instrução if, podemos usar uma instrução if else, if, um state else em 12. Então, vamos ver o exemplo de, sabemos que tínhamos a variável faminta que é igual a verdadeira. Vamos adicionar uma variável preguiçosa e atribuí-la a false. Agora, vamos usar uma declaração if e vamos dizer se preguiçoso, preguiçoso. Então vamos dizer impressão, não fazendo nada. Mas então vamos dizer L se, senão, se perder o cólon, desculpe, deixe-me dizer dois pontos. Com fome. Imprimir, pegar sanduíche. Else. Você pode imprimir. Digamos que se nada mais, nada Falso, Falso através de qualquer um desses, desses condicionais, então ele cairá na declaração else. Podemos ver agora que ele entra em LF porque diz que se preguiçoso, o que é igual a falso, então ele volta para os famintos. E então diz, ok, eu não sou preguiçoso e estou com fome. Vou pegar um sanduíche. E você pode ver pegar um sanduíche. Objetos também podem ser avaliados como verdadeiros ou falsos. Em poucas palavras, pense em qualquer coisa que possa estar vazia ou não avaliaria como falso. Tudo o resto seria avaliado como verdadeiro. Se eu dissesse que não, isso o imprimiria porque se nenhum. Mas se você disse Se uma string vazia, por exemplo, imprima isso, ela também será impressa porque é uma string vazia. 0. Imprima isso. Nesse caso, também não imprime porque ele não fez 0. E finalmente se, mas se tivermos, por exemplo, essa impressão de string que podemos ver que ela imprime porque é, é algo e está cheio de algo. Então, praticamente tudo o que é nenhum ou vazio ou 0, o que será avaliado como falso e tudo o mais seria avaliado como verdadeiro. Há também o que são chamados de operadores booleanos que resultam em um valor booleano. Esses operadores são iguais. O maior que, maior ou igual a, igual a, e assim por diante. Então, executamos os exemplos. Então, vamos adicionar uma variável um número, vamos fazer dois e, em seguida, variável igual a cinco. Se eu dissesse que se a variável um é igual a variável para impressão, vamos apenas dizer isso. Vemos que ele não imprime porque não é igual um ao outro. E se dissemos que eles são maiores que a variável um, maiores que a variável dois. Agora vamos ver que também não é impresso porque dois não são maiores que cinco, maiores ou iguais a. Sabemos que também não vai imprimir. Então vamos dizer, bem, vamos dizer menos do que. Vemos que ele imprime isso. Também podemos fazer menos ou igual a. Isso também imprimirá isso. E, finalmente, podemos dizer que não é igual a, que é um ponto de exclamação e um sinal de igual. Podemos ver que ele imprime isso também. Outros operadores booleanos AND OR e NOT. Para ver se olhamos para estes e x2, se digamos verdadeiro e verdadeiro, imprima. Digamos que imprima isso. Claro, subquadros porque os dois verdadeiros e verdadeiros. Mas e se dissemos se verdadeiro e falso? Não imprimiria nada porque precisaríamos que ambas as condições fossem verdadeiras para que a quantidade da condição externa fosse verdadeira. Digamos que se for verdadeiro ou falso. Imprima isso. E então podemos dizer, ok, ele imprime para isso, o que é perfeito, o que faz sentido porque queremos ou o outro, precisamos de um ou outro para ser verdadeiro para avaliar como verdadeiro. Assim, podemos ver que este é verdade para que, em vista da alternativa avalie tudo é verdade. Finalmente, o operador NOT. O que isso faz é se você colocar o operador não antes de qualquer valor, ele irá reverter onde quer que avalie anúncios. Por exemplo, se eu disser se não for verdadeiro ou falso, imprima isso. O que você acha que isso avaliaria? Exatamente? Não imprimiria isso porque se você pode pensar nisso como dizendo falso ou falso, ambos são falsos, então não imprime nada. Portanto, a ordem de operação é que o operador NOT entra primeiro, avalie esta primeira avaliação não é verdadeira. Em seguida, o operador final vai e, em seguida, o operador OR vai. Também é útil saber que o final e os operadores OR, eles retornam o valor que representa o que o valor booleano deve representar. Por exemplo, se eu tivesse isso, digamos algo vazio. Ele retornaria a string vazia porque é isso que ela representa. Ela representa falseia ou um valor falso. Como essa expressão é avaliada como false, essa expressão retorna o valor que representa essa falsidade. Por exemplo, se eu tivesse isso e aquilo, ele retornaria isso porque é o último avaliado, mas retorna, mas ainda representa um valor verdadeiramente no final. Porque, por exemplo, se eu tivesse, por exemplo, isso ou aquilo representa isso, porque isso já, mas já representa um valor verdadeiro. Então ele retorna, uh, esse, esse valor. Mas se eu tivesse, digamos isso, ou digamos, vamos ter um vazio para isso. Então ele representará, ele retornará esse valor. Porque este é o que representa o verdadeiro. Se eu tivesse ambos vazios, ele retornaria apenas uma cadeia vazia, uma string vazia, a vazia. Isso é útil em alguns casos. Você verá mais tarde no projeto, usaremos isso em uma das declarações que podem ser úteis para saber. Você também pode usar uma função booleana, a função bool, para ver se um argumento que passa no que avalia o tamanho. Por exemplo, se eu fizer isso, você sabe que é verdade. Se estivermos referenciando um dos outros exemplos que fizemos isso e que podemos ver que é avaliado como verdadeiro isso e que retornaria isso. Isso seria o mesmo que dizer booleano disso, que se avalia como verdadeiro. Há também uma forma abreviada de escrever uma declaração if. Você escreve assim. Digamos que fogo. É verdade. Else. Você pode ver se isso é verdade. Você devolve bombeiros. Esta é uma maneira de escrever uma abreviação. declaração abreviada se pode ser útil sempre que você não precisar do outro. A maneira mais longa de escrevê-lo. Fogo. Se for falso, outro, fogo falso, senão gelo, vamos pegar gelo em outro lugar. Incrível. Então, vamos fazer uma recapitulação. recall ativo é a ação de produzir ativamente a resposta você mesmo sem nenhum material de suporte. Aqui está uma maneira extremamente eficaz de mover informações da memória de curto prazo para a memória de longo prazo. Tipo de dados booleano que pode ser verdadeiro ou falso. E lembre-se que isso é k substituído. condicionais permitem que você crie um fluxo lógico de forma lógica em seu programa usando if, elif e else. Os operadores booleanos retornam um único valor booleano. Assim, o sinal igual, igual maior que, maior ou igual a, menor que, menor ou igual a, não igual a. E então, AND, OR, e NÃO. Os operadores retornaram um valor que seria avaliado como o booleano da linha inferior. Por exemplo, se você dissesse isso e pensasse, por exemplo, se você dissesse isso e uma string vazia, você teria retornado a string vazia porque a string vazia representa esse valor falso. E então você poderia usar a função booleana, a função bool, para retornar o equivalente booleano ao que você passar para ele. Finalmente, vimos como escrevemos declarações abreviadas if. E podemos parecer algo assim. Fogo, se verdadeiro, senão gelo e isso retornaria fogo. Finalmente, aqui você tem a seção entender. Então, os exercícios de hoje, não vou ler sobre eles hoje, já que eles são muito longos e acho que esse vídeo já é um pouco a oferecer hoje, mas não deixe de olhar para o fã. Boa sorte com isso. Se você tiver alguma dúvida, sinta-se à vontade para deixar essas perguntas no chat e estaremos ativos na comunidade. Eles são tão boa sorte e te vejo amanhã. 13. Aula 10: Hoje temos outro dia de descanso. Estamos empurrando nossos limites por vários dias seguidos agora. Então, hoje vamos internalizar o que aprendemos até agora e descansar um pouco. Por hoje, vou pedir que você volte às lições que você pode sentir minhas necessidades, alguns revisitando e olhem para quaisquer perguntas que você possa ter. Aprendemos melhor por meio da ação. Portanto, certifique-se de fazer qualquer exercício que possamos ter perdido até agora. Mais uma vez, vou demorar um segundo para lembrá-lo sobre a chave para aprender que vimos. Para perguntas ou o não-sere, quando você se torna radicalmente aberto, você começa a fazer muitas perguntas. As perguntas são a resposta se você for lá , elas são sempre enriquecedoras. Superamos crenças limitantes fazendo perguntas constantemente e testando-as de estresse para o mundo real por meio de ações para obter consistência. É difícil ver o progresso imediatamente diariamente. Lembre-se de que é fácil cair na ilusão de que você não está melhorando quando na realidade você me melhora extremamente rápido. Se você continuar voltando, ficaria surpreso com o que você consegue. E, finalmente, para a repetição espacial, podemos esmagar a curva de esquecimento não apenas familiarizando-nos com os conceitos, mas também guiados pelo envolvimento no que é recall ativo e espaçamento aqueles ao longo do tempo. É isso por hoje. Então tenha um bom dia de descanso e te vejo de volta amanhã. 14. Dia 11 - Funções (2/2): Bem-vindo ao Dia 11. Vamos analisar os objetivos de hoje. Primeiro. O que mais podemos aprender sabendo que as perguntas são a resposta? Então vamos olhar para o conceito DRI. Não se repita. Além disso, as funções são argumentos de palavra-chave de função e, em seguida, valores padrão de função e retornando objetos de funções. E, finalmente, vamos analisar argumentos e argumentos palavras-chave como argumentos como uma função. Então, vamos direto para a seção de aprendizado. Para a seção de aprendizado, temos que as perguntas são poderosas. Lembre-se de que eles estão vivos, estão enriquecedores e lá para sempre no momento presente. A mesma pergunta, além da mente de um iniciante, é igual a novos conhecimentos. Lembre-se sempre de um senso de dizer que o maior obstáculo ao aprendizado é a crença de que você já o conhece. Então, vamos ficar curiosos que as redes mantenham a mente aberta. Como vimos antes, as funções nos permitem usar o mesmo bloco de código várias vezes em todo o nosso código. Isso é útil sempre que precisamos executar a mesma ação várias vezes. Não queremos que ele se repita a nós mesmos. Isso é importante, não queremos nos repetir. E na programação, a ideia de não se repetir é chamada de seca, o que é chamado de codificação a seco. Então, queremos ficar secos ao programar. Para esta lição, vamos começar a usar o VS Code, visual Studio Code. Para abrir isso, basta examinar seus aplicativos e procurar o Visual Studio Code. Eu fundei assim e como abri assim? E eu vou abrir um arquivo, arquivo dot py. Nós tínhamos visto antes. Podemos definir uma função da seguinte maneira. Certo? Assim, podemos definir minha função e usá-la como passagem. E então você simplesmente chama essa função dizendo minha função e chamando-a usando os colchetes redondos. Também vimos como poderíamos usar argumentos opcionais, são parâmetros opcionais para a função. Em seguida, use-os dentro da função. Poderíamos ter feito isso em vez de usar o passe. Em seguida, execute minha função e , em seguida, teríamos que inserir aqui alguns argumentos que outros. Então poderíamos executar isso e veríamos isso, aquilo e outros. Mas veja o que acontece se eu certamente não inserir um dos argumentos, clicar em Salvar e, em seguida, executar isso, receberei um erro. Diria que um erro de tipo. Minha função falta um necessário, falta um argumento posicional necessário, argumento três. Isso porque tínhamos afirmado acima que precisávamos desse argumento para 100% uma vez que ficaremos assim. Outra maneira de escrever isso é dizer que o argumento três é igual a valor falso. Essa será uma maneira de dizer como se, se o argumento não for passado para a função, atribua esse valor padrão a ele. Então, sempre que executávamos isso, veríamos isso aquilo e, em seguida, o valor padrão. Você também pode chamar a função usando o que ela é chamada de argumentos de palavras-chave. Você pode especificar aqui em baixo. Por exemplo, você poderia dizer Argh igual a isso. Então, digamos que três iguais a outros. Finalmente, ganhou igual a isso. Então você poderia executar isso. Você pode dizer isso, aquilo e outro, mesmo que tenha feito, mas além disso, mas como usamos argumentos de palavras-chave, que está especificando as palavras-chave e os argumentos. Podíamos ver que recebemos a ordem que queríamos. Outra coisa útil sobre funções é que você pode retornar valores usando de uma função. Por exemplo, digamos nums, e então você diz núm um. Núm dois. Poderíamos retornar um valor dessa função. E poderíamos dizer, digamos núm um. Vamos realmente dizer resultados iguais a num1 mais num2. E então podemos simplesmente retornar o resultado. Essa é uma maneira de usar uma função para retornar um valor para nós. Então, se dissemos, Adnan , disse 510, então se executarmos isso, veremos que não obtemos nada impresso na tela porque o Quando executamos a função, ela não contém nada. Ele não imprime nada na tela. Ele só executa isso e, em seguida, retorna esse valor para a tela. Mas se dissemos, se dissemos print, o que é retornado dessa função, então sempre que executarmos isso, devemos obter o número 15, que é o que esperávamos. instrução Return retorna um objeto ou uma série de objetos de uma função. Você também pode criar funções que adotam argumentos arbitrários ou argumentos de palavras-chave arbitrários usando a seguinte notação. Então use uma estrela e, em seguida, args, estrela dupla e uma palavra-chave args dessa maneira. E o que isso faria é que sempre que você, sempre que você chama essa função, digamos que minha função. Você poderia dizer o que quer que seja, qualquer quantidade de argumentos que queremos passar, ele vai assumir como argumentos, como você pode ver aqui. Então, se dissermos palavra-chave nossa ou o que for, digamos var 11, isso seria um argumento de palavra-chave. E depois Val dois, este seria outro argumento de palavra-chave. Então, sempre que passamos esses valores arbitrários, isso pode ser um número arbitrário de argumentos nesse número arbitrário de argumentos de palavras-chave, executamos essa função. A função que nos levaria para Tuple para os argumentos e o dicionário para os argumentos das palavras-chave. E eu quero que você mantenha essa pergunta em mente, ok, o que é uma tupla e uma vez um dicionário, porque vamos olhar para isso em breve. Mas, por enquanto, é a única coisa importante saber é que você pode fornecer um número arbitrário de argumentos. Bem, agora vamos tentar o número de argumentos de palavras-chave usando o seguinte. Notação de uma estrela e uma notação de duas estrelas. Também tenha em mente que você pode dizer esse acasalamento aleatório, você pode chamar isso de aleatório. Ainda funcionará. Mas ainda funcionará. Mas é convenção, digamos args e hashtags de palavras-chave como esta. Incrível. Então, vamos fazer uma recapitulação. As perguntas estão vivas e sempre enriquecem para sempre no momento presente. Precisamos dizer curiosos com uma mente aberta, com a mente do iniciante. E dessa forma continuaremos aprendendo. As funções nos permitem ficar secos. Que codificação? Não se repita. As funções não podem assumir argumentos necessários. Argumentos posicionais são argumentos opcionais. Ao adicionar uma palavra-chave com um valor padrão. As funções podem retornar qualquer tipo de objeto. Mesmo que suas funções. Podemos usar os args estrela e esta palavra-chave estrela dupla args. Notação 12 funções, exceto em número arbitrário de argumentos e argumentos de palavras-chave , respectivamente. Finalmente, vamos dar uma olhada na seção de entendimento para hoje. Qual é o maior obstáculo para o aprendizado? Wire questiona a resposta? Em seguida, defina uma função que aceite um argumento padrão e imprima na tela chamada função, fornecendo o argumento e não o fornecendo também. Defina uma função que use um número arbitrário de argumentos, args e um número arbitrário de argumentos de palavras-chave, argumento de palavra-chave e imprima o número. Imprime os dois objetos resultantes na tela. E então não se preocupe se você não souber qual é a estrela óptica, aprenderemos sobre isso em breve. E, finalmente, crie uma função que retorne um objeto, atribua o objeto retornado a uma variável e imprima o objeto na tela. Mas incrível, é isso por hoje, pessoal. Essas são as perguntas e, em seguida, se você tiver alguma dúvida sobre elas, então não hesite em perguntar no chat e a comunidade estará ativa. Eles são tão boa sorte e te vejo de novo amanhã. 15. Dia 12 - Listas, Ranges, classificação: Bem-vindo ao Dia 12. Então, os objetivos de hoje, temos que mais podemos aprender com a consistência e empurrando nossos limites todos os dias? Em seguida, vamos examinar a lista, dois métodos de lista nessas fatias e, finalmente, em intervalos. Hoje, o tema principal será listas. Então, vamos direto para a seção de aprendizado. Primeiro, eu queria tirar um segundo para imaginar onde você não estaria daqui a um ano se você fizer mordida sofreu todos os dias, o líquido de mídia 1% melhor em Python, acontece que você pode fazer esses esforços de hábito de tamanho mordido e, em seguida, acabaram realmente desfrutando deles. Isso é exatamente o que pretendemos que Amy faça com este curso, para mostrar que aprendizado pode ser divertido e que possamos crescer cada dia onde realmente apreciamos o processo do dia a dia. Em seguida, temos essa lista em um tipo de dados usado para armazenar itens solicitados em uma variável. As listas são mutáveis, o que significa que você pode atualizá-las adicionando ou removendo itens individuais à lista. Os itens da lista podem ser a extremidade mista de qualquer tipo de dados, incluindo outras listas. Vamos dar uma olhada no que estamos falando aqui. Para criar uma lista, simplesmente usamos a seguinte notação. Usamos colchetes. Minha lista seria essa. E então, para adicionar itens a isso, simplesmente adicionamos itens e os separamos, uh, usando vírgulas, item dois, etc, seria uma definição de lista. Se eu disser imprima minha lista na tela e, em seguida, clicar em Executar, veremos que a lista está impressa em uma tela. Podemos ver isso pelos colchetes e que isso seria realmente uma lista. Se quiséssemos definir uma lista vazia, simplesmente criamos uma lista e a atribuímos a colchetes sem nada dentro deles. Quando executamos isso, executávamos isso e veríamos que ele retorna uma lista vazia. As listas têm índices. E da mesma forma que quando falamos sobre índices com strings que nos referimos a eles com colchetes e o número do índice. Fazemos o mesmo com listas. E da mesma forma que uma lista, o primeiro item seria o índice zeros. Eles são baseados em zero. E se dissemos essa afirmação? O que você acha que ele vai imprimir na tela? Vamos executar isso. E obtemos o item um exatamente porque estamos fazendo referência ao índice 0 ou para listar da mesma forma que com strings poderíamos dizer índices negativos. E obteremos o mesmo que esperávamos das cordas que obteríamos o último número. Em seguida, vamos examinar alguns métodos de lista. Primeiro, vamos dar uma olhada no método de anexação. Se executarmos minha lista, adicione um novo item e o item imprima minha lista. Vamos ver o que acontece quando executamos isso. Recebemos a mesma lista com o item anexado. O que o método append faz é que ele adiciona o item que você insere no método append ao final da lista. Também podemos ter um, também temos um método de inserção, inserção. Primeiro informamos o índice, depois inserimos, inserimos o item, depois o item e, em seguida, imprimimos a lista novamente. Vamos ver o que acontece. Vemos que ele é inserido como o primeiro, como o item Número Um da lista. O item com o número de índice Um da lista. Então, obtemos o item, em seguida , o item incerto , o item dois, etc., e depois o novo item. Em seguida, também podemos ver que podemos excluir itens de uma lista usando a instrução DDL, essa instrução delete. Podemos dizer que exclua minha lista. Mais uma vez, teríamos que fazer referência a algum item com um índice. Então, quando o imprimimos, minha lista, veríamos o item um e, em seguida, etc Sem o item dois, há também o método remove, o método remove, minha lista, remove. Então você pode pesquisar um item pelo que ele é. Você pode ver remover, imprimir minha lista. Em seguida, execute isso. Em seguida, você pode ver que ele removeu os itens dessa lista. Também temos o método prob. E o que este faz é que ele exclui ou remove o último item da lista. Ele o retorna. Sempre que faço minha lista pop, imprimo minha lista. O que ele faria é que você veria que ele não teria o etc. Dod da última vez até isso, ele tem o item um e o item dois, mas não o último item. Se eu dissesse print, minha lista pop, eu veria o etc. impresso e depois a lista, porque a primeira coisa que estou pintando aqui é um comando da minha lista pop. E sabemos que esse método o remove e retorna. E desde então, uma vez que ele retorna o último item da lista, e ele retorna isso também. Quando tentamos imprimi-lo, vemos que o item é impresso na tela. E então, quando imprimimos a lista, vemos que a lista foi modificada e não tem o etc. nela. Também temos o que são chamados de fatias de listas. Então, vamos executar o seguinte comando. Minha lista, e temos o devido de 0 a 22. O que isso faz é que ele começa em 0, no índice 0 e termina o índice dois. E isso é disso. Podemos ver que ele começa e inclui um 0. Mas então ele adiciona também com o índice de um. E então, quando ele chega ao elemento com o índice de dois, ele não inclui. Por isso, inclui o primeiro, mas não inclui o número maior, o número superior. Vamos fazer outro exemplo. Vamos ver o que se nós imprimirmos isso, coloquemos três, por exemplo, e depois um. Quando corremos isso, ficávamos bem, começamos em um e depois terminamos em três sem incluir os três. Os três seriam o etc. É assim que o Lexus funciona. Então também podemos dizer que se não especificarmos um número, ele apenas diz que vai até o fim. Quando executamos isso, vemos que ele começou em 0 e simplesmente vai até o fim. Poderíamos fazer isso ao contrário. Então poderíamos dizer, comece todo o caminho desde o início e vá até o número três, digamos. Então isso significaria que começa a partir de 0, começa todo o caminho desde o início. E então ele vai até três com o polegar incluindo três porque lembre-se três seria o etc., porque 012 e depois três e não incluiria o etc. Isso é o que são fatias de cordas. Você também pode usá-los. Digamos, por exemplo, se você foi obter os dois últimos números, então da nossa lista, você poderia executar o seguinte. Você pode pensar em maneiras inteligentes de usar essas maneiras diferentes. E, mesmo que você não atribuísse nenhum número único, obteríamos a lista inteira. Porque é todo o caminho desde o início, indo até o fim. Estamos vendo como as listas são objetos mutáveis para que possamos mudar nosso objeto. Vamos dar uma olhada na ideia da minha lista por um segundo. Usaríamos o ID da minha lista. Então nós executamos isso e conseguiríamos o que precisamos para imprimi-lo. Claro, imprima a ideia da minha lista. Teríamos um número para a ideia disso, minha lista. E se quiséssemos criar uma cópia da minha lista e fazer uma alteração na cópia da minha lista. Vamos fazer. Podemos pensar intuitivamente como se quiséssemos criar uma minha lista, copiar, poderíamos dizer intuitivamente, ok, basta copiar minha lista e torná-la igual à minha lista. E se você imprimi-lo? Minha lista, copie minha lista. Cópia. Perfeito. Certo. Estou recebendo o item 1203, item três e etc. Então, estamos recebendo a lista, a cópia da minha lista, ela funciona conforme o esperado. Mas agora vamos dizer que queremos fazer uma mudança. Nós, em vez de imprimir minha cópia, digamos que iria imprimir a cópia da minha lista e , em seguida, vamos bombear da minha lista de cópias. Estamos fazendo uma alteração na cópia da minha lista. Então vamos dizer quando, quando nós, quando executamos isso, obtemos et cetera, o que é o esperado. Mas então vamos imprimir minha lista. A minha lista original. Terminamos imprimindo a minha lista original. Vemos que minha lista também foi modificada. Menos a mylist original também foi modificada no etc. também foi retirada dessa lista. Então, como criamos uma cópia sem, sem alterar as duas listas? Porque o que está acontecendo aqui é que o imagine qualquer ID que temos na minha lista, ele atribui essa variável, apenas atribui um rótulo ao mesmo objeto. Portanto, temos apenas um objeto, que é essa lista. E quando tentamos criar uma cópia, simplesmente adicionamos um rótulo ao mesmo objeto. Quando criamos a ação pop aqui, chegamos a qualquer que esse nível estivesse apontando. Ele apontou o objeto original, que era este. A maneira correta de fazer isso seria, há alguns desejos, duas maneiras de usar uma fatia de lista aqui. Nós o cortamos assim. Dessa forma, sempre que corremos, executamos isso, obtemos a lista inteira conforme o esperado. Nós gostaríamos de fantoche da cópia, mas mantê-lo no original. Ou poderíamos usar a cópia. Copie esse método. A cópia, esse método. Lá vai você. Então é assim que você copia uma lista para outra lista. E é aí que você faz alterações em uma cópia sem fazer alterações no objeto original. Lembre-se de que poderíamos usar o método dir para obter todos os métodos são todos os métodos de um objeto ou um tipo óptico. Nesse caso, quando o executamos, pelo menos podemos ver todos os métodos do tipo de dados da lista. Aqui temos como se tivéssemos visto alguns desses já. Vimos a bomba, vimos anexar, vimos a inserção. Agora vamos dar uma olhada em mais um. Vejamos o, vamos ver. Vejamos o método de índice um índice. Se executarmos minha lista, digamos que imprima o índice da minha lista, então o que inserimos aqui seria um valor. Digamos que eu, o item para o que ele retorna é o índice onde esse valor mora. Se adicionarmos Apple, Apple, carro, elefante, etc. Se quiséssemos ver onde o elefante estava, simplesmente executaríamos isso e ele lhe dirá o índice onde o elefante terá valor. E se não houver nada, você tem um valor de entrada que não está lá, você receberá um erro de valor. Nada não está na lista. Nós receberíamos um erro de valor para esse. Então, e se olharmos, digamos que o método de classificação, por exemplo. E se nós classificássemos? Não colocaríamos nada. Em seguida, ele não imprime nenhum porque esse método de classificação não retorna nada, então não precisamos da função de impressão para eles. Vamos fazer uma função printf do que a mylist, como é minha lista? Antes de fazer uma ação na minha lista? Então, vamos financiar isso. E quando dizemos Ok, estamos recebendo carro da Apple, elefante, etc. Porque na verdade este já estava classificado, a, B, C, D, E, F, G. Sim, já está classificado. Então, digamos, vamos trocar esses dois. Adicionamos esse exemplo, então obtemos os mesmos procariotos superiores e etc. Porque esse método de classificação realmente o classifica. Este vale a pena notar que é diferente da função ordenada porque você pode imprimir minha lista ordenada. Você poderia imprimir a minha lista classificada sem classificar e com o método. E este imprimiria a lista classificada. E então, quando você imprime isso por si só, você pode ver que não está classificado. método classificado é diferente. O método de classificação é diferente da função classificada. Também podemos ver que podemos usar a função Len para ver qual é o comprimento da lista. Podemos ver que o comprimento é quatro. E, finalmente, vamos dar uma olhada nos intervalos. Alcance. Você simplesmente usará a função range para criar um intervalo e, em seguida, organizar simplesmente, digamos que façamos o intervalo cinco. Está organizado, eu iria do número 0 para o número cinco sem incluir o número cinco. Portanto, nossa gama é um tipo por si só. Bem, poderíamos usar a função list para transformar organize em uma lista. Isso nos daria uma lista do intervalo 01234, excluindo os cinco. Laranja. Se inserirmos um, apenas um valor, seria o limite superior. Se colocarmos dois valores, digamos que 15, seria o limite inferior e superior. Vamos fazer uma lista. Isso varia de um a dois a cinco. Então, o que você acha que isso seria? Se estivermos fazendo um, será diferente deste, certo? Sim. Onde gostaríamos 234 excluindo os cinco. E também temos uma última maneira de usar um intervalo que está inserindo três valores. Um, vamos tomar cinco. E então digamos que um terceiro valor, que é o Qual é quantos incrementos o valor passa. Portanto, seria de um a cinco incrementando em dois. Então ele vai de um para números depois é três e depois para cinco com cinco. E se dissemos até 20? Nós obteríamos 135, todos os números como incrementar em dois até 20 sem excluir, sem incluir o número 20. Há também mais três funções úteis que podemos observar que não estão relacionadas a listas também. Temos a função Min, a função max, a função de soma. Então, eles são bastante intuitivos. E se, como se dissemos, digamos que minha lista seja igual à lista do intervalo 120, incrementando em dois. Então minha lista seria semelhante que fizemos acima. Mas e se dissemos que o mínimo da minha lista obteria uma como esperado? Se não tivéssemos no máximo da minha lista, teríamos 19. E então, se fizéssemos alguns da minha lista, receberíamos um 100 porque eu seria a soma de todos os números nessa lista. Incrível, então vamos fazer uma recapitulação. Esforços de tamanho de mordida todos os dias levam 2% de melhorias que se compõem ao longo As melhorias percentuais são exatamente o que leva ao crescimento exponencial a longo prazo. Em seguida, vimos que uma lista é um tipo de dados. Use os itens solicitados armazenados em uma variável. As listas são mutáveis, o que significa que seu conteúdo pode mudar para sua ID permanece o mesmo. Definimos uma lista usando a sintaxe a seguir. E eles podem conter uma combinação de qualquer tipo de dados, índice de lista de referência usando a notação de colchete quadrado. E, em seguida, índices negativos fazem referência itens voltados para trás a partir do último item. Também vimos essas fatias. A sintaxe a seguir seria usada onde quer que você quisesse criar um novo objeto com uma cópia da minha lista. Então também vimos vários novos métodos de lista, incluindo os seguintes. Lembre-se de que poderíamos usar a função interna para ver uma lista completa de todos os métodos no tipo de dados. Também vimos as funções incorporadas usadas para isso, como terra classificada, mínimo-máx e algumas. Também criamos intervalos usando a função interna do intervalo. E vimos como podemos, podemos transformar intervalos nisso usando a função integrada da lista também. Suécia, finalmente, aqui temos a seção de entendimento. Lembre-se da importância da seção Entendimento. Acho que a parte mais crítica dos cursos. Se você pode fazer todos os dias da seção de entendimento, você praticamente entende o que estamos completando ao longo de cada dia. Então aqui você tem a seção de hoje. Você tem alguma dúvida para isso. Sinta-se à vontade para deixá-los na seção da comunidade ou no chat e estaremos ativos lá. Caso contrário, boa sorte com isso e espero vê-lo de volta amanhã. 16. Dia 13 - Loops: Então, bem-vindo ao dia 13. Para os objetivos de hoje, temos quais são os benefícios de aprender e empurrar nossos limites, e como evitamos queimar? Então, vamos olhar para loops bem como loops while. E então o continuum, a declaração de quebra e, finalmente, a declaração. Vamos pular direto para a seção de aprendizado. Sabemos que o aprendizado envolve novidade. A novidade é praticamente como exercícios para nossos cérebros. Porque quanto mais usamos nosso cérebro, mais forte ele fica desde que formos calibrados. E por calibrar, quero dizer que, porque se empurrarmos nossos limites e nos esforçarmos demais, poderemos queimar. É por isso que pressionamos estados cada cinco dias para que possamos recuperar e revisar o que estamos aprendendo. E evitamos queimar. Para examinar for-loops, sabemos que a sintaxe para criar um loop for-é a seguinte. Quatro itens em terrível , em seguida, execute o bloco de código. Dentro disso. Nesse caso, o olho terrível pode ser qualquer tipo de objeto que tenha, que pode ser iterado. Neste exemplo. Se, por exemplo, se tivéssemos uma variável com uma string nela, e pudermos dizer para o item na variável do player, imprima, digamos que item de impressão apenas para ver o que isso faria. E se fizéssemos eu iterasse cada item em uma variável de string. Vamos ver o que acontece. Vemos que ela passa por cada letra, que é praticamente onde teríamos que eu esperaria mais para cada letra e imprime na tela. Também temos outro tipo de loop chamado loop while. E a sintaxe é a seguinte. Enquanto a condição passa. Essa é a maneira mais simples de dizer enquanto alguma condição que é avaliada como um valor booleano, seja verdadeira ou falsa. Embora seja verdade. Isso será executado enquanto verdadeiro e, em seguida, o bloco de código será executado. Então, vamos fazer um exemplo e dizer, vamos criar uma variável de contagem. Digamos que contador igual a 0. E digamos que, enquanto conte menor ou igual a cinco, imprima. Agora, quando executamos isso, também precisaríamos adicionar contagem igual para contar mais um. Em Python, há uma maneira mais simples de sintaxe para escrever isso. Uma sintaxe mais simples como esta, que é count plus igual a um. Ele simplesmente adiciona um para contar. E representa o mesmo, que a mesma coisa que eu digito um psicodélico, mesma coisa que eles digitaram há um segundo. Vamos executar isso e ver o que acontece. Incrível, isso faz sentido. Então você vai contar 0 e depois conta um. Então, enquanto essa condição for verdadeira novamente, uma contagem é igual a uma. Em seguida, ele é executado novamente, ele o executa novamente e será executado um total de seis vezes até que a contagem seja igual a seis. E então é aí que ele vai parar de correr. É assim que vamos executar um loop selvagem. Mas agora vamos ver um exemplo de se esquecemos de adicionar a alteração da variável count. Se fizermos isso e o executarmos, veremos que o código está sendo executado infinitamente. Nunca fique preso. Agora ele vai parar de funcionar porque sua condição sempre será avaliada como verdadeira. Se este for o caso em que isso acontece com você, basta executar o controle C. Ele fará uma interrupção do teclado e interromperá a execução do seu código. Se você criar um loop infinito ou se quiser interromper a execução do código, basta executar a interrupção do teclado e o código começará a ser executado. Há também dois comandos que podemos usar dentro dos loops while e for. Esses comandos vão escrevê-los em um comentário aqui em cima. Continue e continue e quebre. O que eles fazem é que, por exemplo, se a contagem mais igual a uma, vamos adicionar, por exemplo, aqui, isso é triste, uma declaração continue. E então vamos adicionar impressão, imprimir, contar. Você já pode ver como isso está acinzentado. Ele não tem mais cores é porque a declaração continue, o que ela faz é que ela pula tudo. Isso é mais suave, e simplesmente corre para o, o, o while, o while ou o for-loop novamente a partir da próxima iteração. Simplesmente ele faz essa próxima iteração imediatamente. Se eu fosse anotar isso e depois executá-lo, execute um loop infinito com apenas Hayes porque ele nunca chega à contagem de impressões e ele nunca chega à contagem mais uma declaração. Então, vou interromper o teclado. Sim, isso é o que a declaração contínua continua faz. Ele vai para a próxima iteração. Se eu fiz isso, por outro lado, serão removidos o continuum de lá. Ele vai rodar 0, ei um ou o contrário. Ei 0, A1, A2, A3, A4, A5. E então, quando é ódio seis, não, isso não é mais avaliado como verdadeiro e simplesmente pára de correr e executar continuamente o resto deles. O código. Então vamos dar uma olhada na declaração break. Isso é simplesmente adicionar uma declaração aqui que diz se contar igual a três e depois quebrar. que era isso? O que a instrução break, o que ela fará é simplesmente parar de executar o código selvagem ou o loop selvagem ou o loop for-loop completamente. Se eu executasse isso, esperaríamos que ele seja executado sempre que chegar a três, onde quer que ele conte e inconsistente chega a três, o código é executado, o bootstrap de bloco de código em execução e ele irá break e o loop while deixará de funcionar completamente. Isso é o que as declarações continue e break fazem. Digamos que tivéssemos uma lista definida com três valores ou três itens na lista. Como isso também é iterável, podemos usar um loop for-loop duas vezes por meio de cada item dessa lista. O que fizemos para o item na minha lista, item de impressão, é o que esperaríamos. Cada item ou nenhum luminoso e nome são impressos na tela. Isso é incrível. Há também outra maneira de usar um loop for-loop para imprimir itens, certo? Um item terrível é analisado, o que seria dizer para o item no intervalo. Então, se quiséssemos criar uma lista de números, por exemplo, variam de 0, ou podemos omitir os zeros, tende a dez. Em seguida, diga o item no intervalo. Podemos dizer isso e então isso imprimiria todo o caminho 0 a nove, como você pode ver aqui embaixo, 0123456789029. E se quiséssemos imprimir? Deixe-me voltar para quando tínhamos sobre isso. E se quiséssemos imprimir todos os itens de probabilidades na lista? Deixe-me adicionar outros. Enquanto queríamos imprimir todos os outros itens nesta lista, poderíamos fazer. Poderíamos usar a seguinte sintaxe para o item no intervalo 0. Então minha lista também. Imprimir item, imprima o item da minha lista. Dessa forma, poderíamos imprimir todos os outros itens pudéssemos escolher por enquanto baixo e nomear todos os outros itens da lista usando uma função de intervalo. Também podemos usar a instrução insert para outras expressões booleanas. Por exemplo, se executarmos isso, se, digamos agora, na minha lista. Sim. O que você espera que isso funcione? Exatamente, sim, porque se o item estiver na lista, podemos imprimir sim. Portanto, a instrução n também pode ser usada dessa maneira. E também se pudermos dizer o contrário, se você quiser. Agora, porém, não na minha lista. Ele será impresso. Sim. Else imprima. Digamos que não na minha lista. Não, não na lista. Então, se não, podemos dizer que sim. O que você espera que aconteça aqui para uma aldose e lista ou se não, podemos ver que está nisso porque é dito outro jogador. Se dissemos outra coisa, outro jogador, ele dirá que não está na lista porque L não está na lista. Agora, e se quiséssemos criar outro podemos criar uma lista vazia. Pode criar uma lista vazia. E queremos adicionar a esta lista cada item da primeira lista tem o atende a uma determinada condição, certo? Então podemos dizer para o item na minha lista, vamos fazer uma determinada ação. Então, antes de tudo, vamos dizer, se o condicional vamos tentar carne. A carne é se o item tiver a letra e nele. Se item, digamos que se estiver no item, então vamos fazer, queremos adicioná-lo a esta lista? Em seguida, minha outra lista acrescenta item, porque o item é aquele que estamos recebendo dessa lista. Então, finalmente, queremos imprimir o resultado de minhas outras listas. Vamos ver como isso funciona. Ficamos bagunçados, pegamos Neymar e temos outros, recebemos cada item desta mesa que tem um e nele. Este é um exemplo que você pode ver. Estou usando um loop for-loop para item nesta lista usando uma instrução condicional. E então estou usando um método de lista, que é o método de anexação, passando o item que estou fazendo loop pelo loop for. Este é um bom exemplo de algo que você pode precisar que aconteça. Uma combinação de, de comandos e de, de funções que você não precisaria usar ao longo de sua codificação. Excelente, então vamos fazer uma recapitulação agora. Quanto mais usamos nosso cérebro para mais forte, ele fica desde que estejamos bem calibrados, porque se ultrapassarmos nossos limites demais, poderemos queimar. Isso é o que temos dias de descanso. Vimos como os loops são usados para percorrer objetos de viagem. Existem vários tipos de objetos de outubro em Python, e alguns que vimos até agora são strings, listas e intervalos. Enquanto os loops entrarão em loop, desde que a condição declarada seja avaliada como verdadeira. Em seguida, vimos que a instrução contínua mantém a iteração atual do loop e, em seguida, continuando o aluno o próximo. E, em seguida, a instrução break sai do loop completamente. O operador de índice retorna um valor booleano, verdadeiro ou falso se o primeiro objeto estiver no outro. Finalmente, vamos dar uma olhada na seção de entendimento. Esta é a seção mais importante do dia. Lembre-se, porque envolve recall ativo e você realmente se envolver em qual palavra aprende. Confira estes e faça-os para amanhã. E se você precisar de ajuda, sinta-se à vontade para perguntar no chat na comunidade será útil lá. E caso contrário, boa sorte e te vejo amanhã. 17. Dia 14 - Dicionários: Bem-vindo ao dia 14. Os objetivos de hoje temos principalmente de nos concentrar em dicionários. Eles devem examinar dicionários, como encontrá-los, como trabalhar com eles e, em seguida, métodos de dicionário. Então, vamos direto para a sessão de aprendizado. O ponto principal aqui é que um dicionário é o tipo de dados que consiste em uma coleção não ordenada de pares de valores-chave, também geralmente conhecido como matriz associativa. Isso é o que é um dicionário. Agora vamos ver como definiríamos um dicionário. Para criar um dicionário, usamos a sintaxe a seguir. Então meu dict Gennari, isso seria um nome de uma variável que poderia ser o que você quiser, e então usar colchetes encaracolados. Isso definiria um dicionário vazio. Podemos chamar isso de meu dicionário vazio. Então meu dicionário pode ser algo assim. Primeiro nome. Digamos que John. Sobrenome, digamos Smith. Este seria um exemplo de um dicionário com pares de valores-chave. E isso seria um exemplo de um dicionário vazio. dicionários contêm itens que são compostos por uma chave e um valor. Portanto, esse seria um item sobre o dicionário, e então esse seria outro item do dicionário. Existem separados por uma vírgula. Então a chave teria, teria um valor atribuído a ela. E então estes seriam separados por dois pontos. E fazemos referência a cada item de um dicionário referenciando a chave da seguinte maneira. Então meu dict, semelhante a como o usaríamos para list, firstname, poderia usar meu dict FirstName. E se nós imprimirmos isso e executamos, poderemos ver OK, e é John. Você pode pensar sobre isso de forma semelhante a como fazemos referência a índices em uma lista. Mas aqui fazemos referência à chave de um dos itens do dicionário. Se fôssemos executar isso com uma chave que não existe no dicionário. E digamos, por exemplo, a idade, receberíamos um erro, um erro, erro de chave. Diz idade. Basicamente vai, ele não existe. Mas há um método de dicionário que poderíamos usar que é chamado de método get. Podemos fornecer a chave para esse método GET. E o bom disso é que, se não encontrar, ele não encontra a chave. Em vez de retornar um erro, ele retorna nenhum. Se lhe dermos um método ou se lhe dermos uma chave, desculpe que existe. Ele retornará a chave. Então, o método GET é uma maneira de contornar o DR. E não conseguimos nenhum se ele não existir. Além disso, você pode passar um segundo argumento, que seria o valor retornado como padrão se ele não existir. Podemos dizer que isso terá idade. E se executássemos isso, veríamos, ok, ele retorna, não tem idade porque não encontra a primeira chave que teste ou é solicitado, para adicionar um novo item a um dicionário. Basta fazer referência como se você estivesse referenciando a chave. Então, digamos h, neste caso, depois atribua um valor a ele. Digamos que 27. Então vamos imprimir isso novamente. Depois de atribuir os valores, veja o que acontece. É um terminal claro e execute-o novamente. Vemos no início e não tem idade, mas depois atribuímos um valor à chave H. E então podemos ver, ok, ele tem uma idade e na verdade imprime todo o dicionário. Só para ver como isso parece. Podemos ver FirstName John, LastName Smith, 27 anos. Para reatribuir um valor a uma chave de dicionário. Basta reatribuí-lo referenciando a chave. Como você fez, também, atribuímos ou atribuímos um novo valor. Se quiséssemos mudar o nome, por exemplo, poderíamos dizer meu dicionário dict. Primeiro seriam colchetes, FirstName, e eu simplesmente usaria o novo nome. Então podemos dizer Mike. Então, quando imprimimos isso, nós os veríamos neste dicionário. Primeiro nome Mike, sobrenome é Smith, 27 anos. Então, se quiséssemos excluir um item. Na lista, digamos que vamos excluir o último nome. Então, simplesmente usamos uma instrução delete, delete e, em seguida, referenciamos o valor como ele faria referência, para reatribuí-lo para criar um novo. Então, quando executamos isso, veríamos o final, o dicionário final sendo o primeiro microfone, 27 anos. Assim como acontece com as listas, os dicionários podem conter diferentes tipos de objetos dentro das chaves. Portanto, isso poderia fazer referência a uma string. Nós referenciamos praticamente qualquer tipo de objeto, como você pode imaginar dentro do dicionário. Até dicionários dentro de dicionários também. Agora vamos analisar alguns métodos de dicionário. Existem três métodos que são úteis. São minhas chaves de dicionário, o método de chaves, depois o método de valores e, em seguida, o método items. O método de itens. Vamos ver o que eles fornecem. Tela novamente e execute-o novamente. Podemos ver que a chave está bem, obtemos as chaves que são nome, sobrenome e idade. Vemos que os valores são john Smith em 27. E então podemos ver que os itens são praticamente todo o dicionário, que é uma lista dos pares de valores-chave em uma tupla. Para que possamos ver novamente, novamente uma tupla. Veremos em breve como esse tipo de dados se parece. Mas praticamente retornará os pares de valores-chave, os itens no item tipo de maneira. Então, se quiséssemos ver se há uma certa chave dentro do dicionário, poderíamos usar o método keys. Então, se digamos primeiro nome no meu dicionário, imprima, sim. Vamos executar isso e, claro, vamos imprimir sim, porque o primeironomeie isso dentro das chaves. Agora vamos examinar o loop através de um dicionário. A primeira coisa que precisamos lembrar é que eu não percorreria um dicionário. Os dicionários não estão ordenados. Portanto, não garante que se analisarmos esse dicionário, ele passará por FirstName, LastName e mito denso. Então h, desculpe, nessa ordem, especificamente, isso importante lembrar, eles não são encomendados, então o pedido não é garantido. Ele olhou através deles. Mas vamos analisar cada instância do que teríamos se fôssemos percorrer o dicionário. Para o item no meu dicionário, dict. Aqui, nós conseguiríamos, obteríamos, cada chave seria o mesmo que dizer para o item no meu dict, Keith, isso seria coisa equivalente a fazer. Nome, último nome e idade. Então, se fizéssemos valores, item para seus valores, obteríamos John Smith 27. Então, cada valor. Então, finalmente, se fizéssemos o item, meus itens de dicionário, teríamos o primeiro nome John, sobrenome Smith, 27 anos. É uma maneira complicada de obter essa ótima maneira de olhar para o semelhante, olhar para isso um pouco mais tarde também. Mas seria dizer, já que para desempacotar a tupla, é isso que, vamos chamá-la de desempacotar tupla. Se dissemos quatro itens principais em meus itens de dicionário e chave de impressão, item de impressão ou este que estrita melhor. Estirpe F. A tensão está dizendo que a chave KI é igual a KI e, em seguida, valor do item. Valor. Porque isso, desculpe, isso seria igual ao valor. Então, se nós salvássemos isso, podemos dizer, ok, valor do primeiro nome chave john key, LastName value Smith key H value 27. Seria descompactar as tuplas que obtemos do método dos itens. Ótimo, então vamos fazer uma recapitulação agora. A sintaxe para criar um dicionário é a seguinte, usando colchetes curly e atribuindo, atribuindo chaves a valores. Para criar um dicionário vazio, use colchetes curly vazios. Em seguida, para acessar o valor de um dicionário faz referência uma chave usando essa notação de colchete quadrado. E, em seguida, para reatribuir, basta reatribuir o valor referenciando a, a chave e atribuindo um novo valor para excluir um item, referência a uma chave e usar uma instrução DDL que delete para excluir esse item. Também aprendemos novos métodos de dicionário, as chaves GetMethod, os valores e o método items. Finalmente, há login na seção entender. Aqui você tem quatro perguntas para hoje. Sempre lembrando dessa parte mais importante do dia, certificando-se de que estamos fazendo nossos exercícios e, em seguida, estamos empurrando nossos limites e aprendendo todos os dias. Se você tiver algum problema com eles, há alguma dúvida com eles, sinta-se à vontade para perguntar sobre tiro na comunidade e estará ativo lá. Caso contrário, boa sorte e te verei novamente amanhã. Vejo você. 18. Lição 15: Bem-vindo a outro dia de descanso hoje Vamos internalizar o que aprendemos até agora e volte a todas as lições que você preencher minha revisão de necessidade. Lembre-se de que os exercícios são a parte mais importante de cada dia. Então temos as três chaves para aprender que vimos até agora para perguntas no final. Então, sabemos que mantenha a mente aberta, seja curioso e abordamos o aprendizado com mente de um iniciante para obter consistência, sabemos que precisamos voltar a cada dia e dar tudo o que temos. Você começará a ver um resolves e não se arrependerá dar seus cinco melhores para repetição espacial, é tudo sobre recall ativo, já que é um ótimo exercício para o cérebro onde aprender e isso nos ajuda a mover as coisas da memória de curto prazo para a memória de longo prazo. Repetir os tópicos após o descanso e a recuperação nos ajuda a esmagar a curva de esquecimento. Certifique-se sempre de ter um descanso e recuperação em consideração. Mas obrigado por voltar e ter um ótimo dia de descanso e te verei novamente amanhã. 19. Dia 16 - Túmulos e Conjuntos: Então, bem-vindo ao Dia 16. Os objetivos atuais que temos consistência são fundamentais para o crescimento a longo prazo. E temos que examinar tuplas, querer olhar para a atribuição de tuplas, depois conjuntos e, em seguida, alguns métodos para esses conjuntos. Vamos para a seção de aprendizado agora. Lembre-se de que os incrementos diários se compõem ao longo do tempo e crescimento de longo prazo V2 E também lembre-se do gráfico de crescimento e como devemos procurar o valor da decepção, tuplas ou um tipo de dados para que nos permitem armazenar uma coleção ordenada de itens em uma variável. tuplas são imutáveis, o que significa que elas não podem ser alteradas. Os itens de uma tupla podem ser misturados de fim de qualquer tipo, incluindo outras tuplas. Para criar uma tupla, simplesmente usamos os colchetes redondos para criar minha tupla. Por exemplo, eu poderia fazer isso. Esse outro, e isso seria uma tupla com três itens dentro dele. Se quiséssemos criar uma única tupla de valor, faríamos, se fizéssemos assim, isso simplesmente atribuiria minha tupla à string. Isso. Isso não funcionaria para criar uma única tupla de valor. Precisaríamos adicionar uma vírgula para criá-la, para enfatizar que seria uma tupla e isso criaria uma tupla de valor único. tuplas são úteis sempre que você tiver dados que você sabe que não mudarão e não devem mudar ao longo da duração do seu programa. Por exemplo, se você quiser incluir uma semana ou mês de meses do ano, ou letras do alfabeto serão usadas para dados que você não gostaria de alterar ao longo do programa. Assim como estamos fazendo com listas, podemos referenciar o valor de uma tupla usando a notação de colchete quadrado. Por exemplo, se quiséssemos imprimir esse valor, execute isso e teríamos isso impresso na tela que tem um segundo valor. Lembre-se de que este 00 com base nos índices reimpressos 0, nós imprimiríamos isso. Também podemos fazer loop, percorrer os itens de uma tupla. Com um loop for-loop, conseguiríamos o que esperamos , que é isso, aquilo e outro após a morte que pintamos antes, para excluir uma ou duas tuplas, podemos usar uma instrução delete. Isso excluirá toda a tupla. Lembre-se de que não podemos excluir. Não podemos excluir itens vidas individuais da tupla porque eles são imutáveis. Assim como temos a função list, também temos uma função tupla. Poderíamos transformar minha tupla, podemos transformá-la em uma lista. Poderíamos mantê-lo como uma tupla, seria redundante adicioná-lo aqui, mas você entenderia que funciona da mesma forma que essa função faria. Vemos aqui como ele é impresso em uma lista. Podemos transformar a mesma coisa em uma tupla. Há também atribuição de tupla, seja, isso seria uma tarefa de tupla. Temos o nome da variável e, em seguida, temos os itens das tuplas que queremos incluir na tupla. Isso é o que se chama embalagem. Isso foi chamado de embalagem. Então também poderíamos usar essa sintaxe para descompactar, descompactar essa tupla. Desembalar. Isso pode ser útil porque agora podemos fazer referência às diferentes variáveis. As diferentes variáveis que atribuímos simplesmente descompactando as tuplas. Você pode ver esse corante outro porque atribuímos esse ponto e outro descompactando a tupla. Apenas lembre-se da desembalagem porque será útil para olhar mais adiante , na embalagem. Podemos ver que ele funciona para listas também. Portanto, esta embalagem e desembalagem também é sustentada para lista. Aqui temos uma função que recebe dois argumentos e simplesmente imprime os argumentos um após o outro, separados por uma vírgula e um espaço que é literalmente tudo que atualiza a função faz. Então definimos que minha lista tem dois valores, isso e aquilo. Acontece que também poderíamos usar o, como mencionei antes, a estrela e a estrela dupla para descompactar listas e dicionários , respectivamente. Se quiséssemos executar minha função, poderíamos executá-la assim. Por causa da estrela, descompactaria minha lista em dois argumentos separados e nós a passamos para uma função como dois argumentos separados. Então, se eu executar isso, veríamos que funcionaria. Ele imprimirá este espaço de vírgula. E então, porque a estrela trabalha para descompactar, da mesma forma, poderíamos usar a notação estrela dupla para descompactar um dicionário. Se tivermos um dicionário e tudo estiver configurado para retornar um dicionário. Nesse caso, não funcionaria para este caso, é claro, porque eu não fui definido. E a função está corretamente para isso, poderíamos usar uma notação de dois fios para descompactar um dicionário. Também poderíamos usar a atribuição de tupla com o que é retornado de uma função. Digamos que essa função receba dois argumentos e simplesmente retorne os dois argumentos. Então eu passo como antes, atribuo algo a, eu executo a função. Primeiro de tudo, executo a função. Então, nos deparamos com a função, eu a passo na minha lista empacotar minha lista em dois argumentos separados. Que executar isso retornará os dois argumentos separados simplesmente, e isso é tudo o que vai fazer. Mas o problema é que quando ele os retorna dessa maneira nesta sintaxe, que é o argumento um, argumento dois separado por uma vírgula, isso retornaria uma tupla dos dois argumentos. Então eu poderia dizer aqui minha tupla. Então eu poderia imprimir minha tupla em uma tela. E então, quando eu corro isso, pudemos ver isso e aquilo como uma tupla. Da mesma forma que estamos executando essa função que retorna dois argumentos separados. Poderíamos executá-lo assim, valor val um e valor dois. Então podemos dizer, ok, vamos tentar imprimir o valor um e o valor dois para ver o que obtemos. Então podemos ver, ok, estamos recebendo sim, estamos recebendo isso e estamos recebendo isso também. Estamos vendo que podemos retornar de uma função separar os diferentes objetos separados por vírgulas. E isso criaria uma tupla com os objetos separados. E então, com estes, poderíamos usar a desembalagem de tupla ou podemos simplesmente mantê-lo embalado como uma tupla e, em seguida, podemos imprimir esses valores separadamente. Finalmente, vamos analisar os conjuntos também. Então, define como um tipo de dados que permite armazenar vários itens em uma única variável. Eles são um dos quatro tipos de dados internos no uso do Python para coleções de dados de armazenamento. Os outros três são listas, tuplas e dicionários. Em seguida, os conjuntos não permitem que valores duplicados sejam imutáveis em ordenados e indexados. A parte relevante aqui é que os conjuntos não permitem valores duplicados. Para criar um conjunto. Usamos suportes encaracolados. Você pode dizer que meu conjunto é igual ao valor um, valor de dois valores e, em seguida, imprimir meu conjunto. Podemos ver que ele imprime valor da tela de um a w. E você pode ver que não está ordenado. Assim, pode ser em um valor contábil de pedidos aleatório atendido e caiu. O importante é que eles não podem aceitar valores duplicados. Sempre podemos transformar um conjunto em conjunto em uma lista. Usando a função list. Podemos sempre usar a função set também para fazer o oposto, para virar uma escuta a um conjunto. Um exemplo disso seria, digamos que tivéssemos uma lista com valor para o valor n, e vamos repetir o valor para. E se nós imprimirmos a lista. Em seguida, criei meu conjunto e fiz o conjunto da minha lista, depois imprimiu meu conjunto. Vamos ver o que acontece aqui. Limpe a tela abaixo e execute-a. Vemos que estamos recebendo minha lista. É claro que sabemos que estamos recebendo um conjunto porque o definimos como um conjunto porque havia colchetes encaracolados. Agora estamos lista de financiamento. Então agora ele deve funcionar. Certo, estamos perdendo uma vírgula aqui. Agora, ele funciona. Temos a lista que tem valor uma maneira de valorizar dois e o valor n separado por vírgulas e depois ter feito uma lista. Mas, quando transformamos essa escuta de um conjunto, nós também vemos esse valor, que é uma duplicata, removido porque é um conjunto duplicado, não tem duplicatas. Então, sempre que transformamos isso em um conjunto, vemos que o obtemos nos valores únicos. Sem valores repetidos. Para examinar alguns métodos, iríamos analisar o método add. Assim, pudemos ver que poderíamos adicionar apenas outro conjunto de valores quando o executamos, veríamos, ok, adicionamos valor ao conjunto de cima. Também podemos ver que podemos usar o valor do método remove para, digamos, por exemplo, remover. Então dizemos, ok, vamos avaliar o valor m um no conjunto. Há também um método sindical. Então isso seria se tivéssemos outro conjunto, meu conjunto para digamos que o valor de três. Certo, vamos ver valor, valor, um. Valor para um exemplo. Então fizemos nosso sindicato. Meu conjunto para pensar que isso retornaria exatamente. Acho que isso retornaria comentários sobre este. Tela para maior clareza. Isso retornaria a união de ambos. Ok, Então exatamente. Então, se tivermos dois conjuntos diferentes, então temos um dos conjuntos e, em seguida, fazemos uma união. Na segunda frase, retornaria o valor 1234 e o valor n. Observe como os valores repetidos dentro dos dois, os dois conjuntos, que são o valor um, não são repetidos mesmo na união. A união é praticamente todos os itens estavam todos nos valores que estão em ambos os conjuntos. E aquele que você criou usando a união e a que você adicionou como entrada para o método de união. Mas então não incluiria os valores repetidos. Há outro, outro conjunto chamado interseção que executa algo semelhante a uma união, mas ele olha para aqueles que são os valores comuns e, em seguida, retorna valores comuns. Assim, podemos ver aqui que a interseção comum de avaliação entre os dois conjuntos é o valor um, que está correto porque esse é um valor um e valor, o valor coincide nos dois conjuntos. Incrível, então vamos agora fazer uma recapitulação. Vimos que melhorias diárias levam ao crescimento exponencial a longo prazo. Você pode pensar em tuplas são listas imutáveis. Eles não devem mudar depois de serem criados. Crie uma tupla usando a sintaxe a seguir, usando colchetes redondos. E pode conter qualquer combinação de tipos de objetos. Crie uma tupla de valor único usando a sintaxe a seguir. Acenando com uma vírgula no final do primeiro valor. Faça referência aos itens de tupla da mesma forma que isso usando índices baseados em zero. Por exemplo, minha tupla, estamos de volta às três. A instrução tupla retorna uma tupla vazia ou retorna uma tupla de outro objeto terrível. Da mesma forma que a função list faz para essa atribuição de tupla funciona da seguinte maneira. Se você quiser empacotar uma tupla, primeiro escreva o nome da variável e, em seguida, executa os valores separados por vírgulas e entre colchetes redondos. E se você quiser descompactar, anote os nomes das variáveis separados por vírgulas e, em seguida, faça referência ao valor ou faz anote os nomes das variáveis separados por vírgulas e, em seguida, faça referência ao valor ou referência a uma variável que aponta para essa tupla. Objeto. Os conjuntos são tuplas semelhantes e lista as principais diferenças que dizem, não alinhar, permitir valores duplicados e nossa data de índice não ordenada e interminável em conjuntos indexados, como tuplas, são imutáveis. A instrução set function funciona de forma semelhante à função list e à função tupla. Em seguida, os novos métodos de conjunto serão aprendidos ou os métodos de adição, união e interseção. Finalmente, vamos dar uma olhada na seção de entendimento. Temos algumas perguntas para hoje, seis perguntas. Mais uma vez, lembre-se de que essa é a parte mais importante, apenas para ver que estamos aprendendo e para garantir que estamos internalizando o que estamos aprendendo. Boa sorte com essas postagens quaisquer perguntas que você tenha na seção de bate-papo, na seção da comunidade estarão ativas lá. E boa sorte e te verei novamente amanhã. 20. Dia 17 - OOP - Definição de Classes: Bem-vindo à data 17. E vamos dar uma olhada nos objetivos de hoje. Vamos analisar como as perguntas são a resposta. Vamos examinar a documentação do Python. Vamos analisar a Programação Orientada a Objetos. Oop, e como tudo em 500 é um objeto. A pergunta mais importante quando você está olhando para a de hoje, o que é uma classe em Python? Vamos pular direto para a seção de aprendizado. Quero lembrá-lo de continuar fazendo perguntas durante todo o curso. Como as perguntas apontam sua atenção para respostas e as respostas podem mudar o tempo. Lembre-se do elefante e como responder à pergunta uma vez e, em seguida, manter essa incerta ao longo do tempo pode ser perigoso nos sensores pode mudar com o tempo. Então, queremos continuar fazendo perguntas constantemente. Ótimo lugar para responder às perguntas é a documentação do Python. As linguagens de programação tendem a ter uma ótima documentação com todas as informações corretas. E mesmo programadores experientes que codificam há anos, usam constantemente a documentação para atualizar seus conhecimentos. Mas ler a documentação às vezes pode ser intimidante por causa de quantos detalhes ela tem. É por isso que eu geralmente iria à documentação com perguntas muito específicas eu queria responder. Para saber o que é programação orientada a objetos, precisamos responder a uma pergunta muito específica, que é o que nossas classes em Python. Então, a questão que vamos procurar é quais nossas aulas em Python. Vamos dizer documentação. Tentamos obter a documentação especificamente. Vamos procurar o link python.org como a documentação oficial. Agora você pode ver aqui que é muito pesado, pesado, porque tem muitos detalhes em muitas informações. E é por isso que estou dizendo que é um ótimo recurso. Mas quando você tem uma pergunta tão específica, assim como nós, só precisamos saber o que acontece se as aulas forem. Então, para este exemplo específico, vamos ver o primeiro parágrafo da documentação. Vamos copiar este parágrafo aqui. O que vamos fazer é ver cada tópico específico referência de dados aqui. Vamos investigar o que são esses. Então, digamos que as classes forneçam um meio para criar dados e funcionalidades. Funcionalidade em conjunto. Criando uma nova classe. Nova classe cria um novo tipo de objeto. Novo tipo de objeto, permitindo que novas instâncias, instâncias do tipo sejam feitas desse tipo a serem feitas. Cada instância de classe pode ter um atributo, pode ter um atributo anexado a ele para manter seus estados. Glass esta instância também pode ter métodos definidos por sua classe para modificar seu estado. momento, estou fazendo isso para mostrar como quando, quando dividimos as coisas em etapas gerenciáveis e de tamanho mordido, fica mais fácil de entender. Então, agora vamos analisar esses tópicos especificamente e vamos começar a entender o que eles significam. Porque eu realmente acho que este parágrafo pode soar como uma língua estrangeira para você e isso seria, faça todo o sentido agora por causa do estágio em que estamos aprendendo em Python. Mas isso é para mostrar que podemos transformar algo que soa como uma língua estrangeira completa em algo completamente compreensível, dividindo-o em pedaços de tamanho mordido. Isso é o que vamos começar a entender o que cada um deles significa. E isso nos fará entender completamente esse parágrafo. Acontece que há muitos programadores por aí e pessoas que escrevem Python lá fora que nem entendem quais são esses conceitos. E é por isso que eles serão uma vantagem para você entendê-los bem. Acontece também que, uma vez que você entenda o que é uma aula, tudo o resto, todos os outros assuntos dos outros tópicos serão breves porque são, eles estão muito inter-relacionados com o que é uma classe. E acontece que, para entender o que é a programação orientada a objetos, o que precisamos fazer é entender esses conceitos, o que vou mostrar como ser difícil de fazer. Vamos começar com um exemplo. Você pode pensar em si mesmo como um arquiteto e você tem um projeto de uma casa. Você pode construir essa casa usando o projeto em quantas cidades diferentes ao redor do mundo quiser. Você pode ir a Paris e construir uma casa. Você pode ir para a Nova Zelândia e construir uma casa. Você pode ir para. Barcelona pode ir para o Havaí ou quantas casas você quiser. No final, cada casa seria sua própria casa. Mas todos eles teriam muitas semelhanças desde que foram construídos usando o mesmo projeto. Neste exemplo, o Blueprint é a classe e as casas seriam as instâncias dessa classe. Portanto, o blueprint seria a classe e as casas seriam as instâncias dessa classe. Você pode pensar em uma classe como um blueprint para um tipo específico de objeto. Além disso, o termo classe e tipo são usados de forma intercambiável em Python. Você pode usar esse blueprint para criar instâncias individuais que terão semelhanças em seus respectivos dados e funcionalidades. Acontece que temos trabalhado com as aulas o tempo todo. lista é um exemplo. Se eu tiver minha lista, uma igual a C, podemos ver que quando imprimimos o tipo minha lista, vemos que é uma classe, classe chamada list. Se criarmos uma lista diferente, digamos que a lista dois. O tipo impresso NF, minha lista dois, obtemos a mesma classe de tipo, classe do tipo de nome ou o nome da lista de classes, que também é o tipo. Assim, você pode usar o tipo em classe de forma intercambiável. Podemos ver que há duas instâncias para separar em instâncias separadas da mesma classe. Então, a classe é a mesma. Plantas são as mesmas, mas as casas são diferentes. As instâncias são diferentes. Em lembrar quando falamos sobre a função list, chamamos de função tupla, essa função, todas essas funções. Acontece que eles não são realmente funções, mas na verdade são classes. Quando tentamos imprimir o tipo de lista, por exemplo, obtemos um tipo de classe. Lembre-se de que o tipo no switch intercambiável na sala de aula realmente tem classe. Quando comparamos isso com, por exemplo, imprimimos o tipo da função de impressão, vemos que é uma função ou método incorporado. Assim, podemos ver que a impressão é, na verdade uma função ou método e a lista não é um método de função, mas na verdade é uma classe de si mesma. Podemos criar nossas próprias classes usando a sintaxe a seguir. Nós ficamos na aula. Em seguida, o nome da classe. O nome das classes é, por convenção, em maiúsculas. Então podemos dizer que passe aqui. Então vamos imprimir o tipo da minha classe para ver o que recebemos. Deixe-me ver. Ok, aqui estamos recebendo uma classe do tipo de classe, o que tinha sido feito isso porque está dizendo que é uma classe de si mesmo. Incrível. Então, quando nós imprimimos o tipo disso, que foi o exemplo que fizemos antes. Classe do tipo de classe. Impressionante, isso faz sentido. Isso nos diz que criamos nossa própria classe e é equivalente ao que é a lista. Para criar nossa própria instância de uma classe. Por outro lado, correríamos algo assim. Minha classe, digamos que minha classe um instância, uma, minha classe, minha classe, e então chame-a de um quinto. Da mesma forma como você chamaria uma função. Vamos chamá-lo assim. E então, quando a imprimirmos, se fôssemos imprimir o tipo da minha classe, minha classe um, pudemos ver que é uma classe do Maine. Minha classe principal simplesmente faz referência que é um script diferente que está sendo executado como o script principal. E então minha classe é uma classe definida no script que é o arredondamento do script principal. Isso é semelhante ao nos fazer como se fôssemos fazer minha lista. Criaríamos uma lista. E então imprimiremos o tipo da minha lista. Nós obteríamos como a lista de aulas esperada. Agora fizemos muitos progressos aqui. Temos, por exemplo, que classes ou são o equivalente ao tipo. Portanto, podemos dizer classes ou tipo de objetos. Tipo de objetos que são iguais aos blueprints para criar novas instâncias. Instâncias. Então agora temos novas instâncias em nova classe, para que possamos movê-las. Em seguida, clique em criar uma nova classe. Já mostramos isso também. Então, agora mantemos o seguinte. Temos em nossas classes ou tipo de objetos ou igual aos blueprints são usados para criar as novas instâncias. E então ainda precisamos entender quais atributos de funcionalidade de dados, são os métodos de datação. Mas já estávamos familiarizados com um monte desses e você verá quando entrarmos neles, mas por enquanto, isso é o que temos e fizemos bom entre uma boa quantidade de progresso para entender o que isso significa que, que inicialmente começou como eles praticamente gostam de uma língua estrangeira, estamos fazendo bons progressos. E isso será para a seção de aprendizado de hoje. Incrível. Então, vamos fazer uma recapitulação agora. Vimos que as perguntas são as perguntas são a sua atenção para receber e absorver respondidas de forma mais eficaz? Vimos que Python é um ótimo lugar para encontrar explicações detalhadas. E a melhor maneira de usar a documentação é ir com perguntas muito específicas com sua mente pronta para absorver as respostas. Tudo em Python é um objeto e , portanto, o que é Python. É por isso que o Python é uma linguagem de programação de programas orientada a objetos . Cada objeto tem seu tipo ou classe. O termo classe e tipo são usados de forma intercambiável em Python. Exemplos com os quais temos trabalhado ao longo do tipo de string, lista, tupla, dicionário e etc. Pensar que uma classe é um plano de uma casa. E casas individuais construídas a partir disso para pintar como as instâncias dessa classe. Por exemplo, uma classe seria lista. Mas quando você cria uma lista real, isso seria uma instância dessa classe. Em seguida, e veremos amanhã, veremos como as classes podem lidar com dados e funcionalidades, e você verá como estamos trabalhando com isso o tempo todo. Finalmente, na seção de entendimento. Eu tenho algumas perguntas para você hoje em cinco perguntas. Então, boa sorte com eles e certifique-se de fazer qualquer pergunta que você possa ter. E se você estiver bloqueado com qualquer um desses, não hesite em perguntar no chat e a seção da comunidade estará ativa lá. Mas eu vou te ver. Boa sorte com isso e te vejo amanhã. 21. Dia 18 - OOP - Atributos e Métodos de Classe: Este é o dia 18. Para os objetivos de hoje, temos esmagando a curva de esquecimento com repetição de espaço e recall ativo. Você tem classes, classe, dados, funcionalidade de classe e métodos de trovão ou mágicos definidos pelo usuário . Vamos pular direto para a seção de aprendizado. Lembre-se de que esmagamos a curva de esquecimento com repetição de espaço e recall ativo. Com o tempo, você notará como seu cérebro se torna mais forte e você pode fazer outras coisas no seu dia-a-dia com mais facilidade e foco. Voltando para onde paramos, lembre-se de que isso costumava ser um parágrafo que soava como uma língua estrangeira para nós. E agora estamos começando a entender melhor. Temos as classes ou o tipo de objetos são iguais a blueprints para criar novas instâncias, temos que as classes podem conter beta, bem como funcionalidades e atributos que criam um estado e, em seguida, também métodos também. E veremos como tudo isso combinou com os entrelaçados. Agora que sabemos o que é uma aula e como criar a nossa própria, vamos falar sobre como as aulas podem armazenar seus próprios dados. Estamos armazenando esses dados de forma semelhante ao que vimos até agora com variáveis. Chamamos isso de atributos de variáveis de classe. Podemos ter atributos de classe e atributos de instância. As diferenças que um atributo de classe é o mesmo para todas as instâncias. E uma instância a atribuir é exclusiva para cada instância. Quando você declara um objeto mutável como um atributo de classe e o altera em uma instância. Isso também mudará para todas as outras instâncias. Mas quando você cria um objeto mutável como um atributo de classe, o NS reatribui o atributo de classe em uma instância. Essa instância agora apontará para o novo objeto atribuído a ela, mas todas as outras instâncias manterão o atributo de classe original. Vamos fazer um exemplo aqui e dizer que vamos criar uma classe que representará uma casa. Isso também atribui uma string de doc de ponto, ou seja, classe para representar house. Agora é aqui que criamos os atributos de classe dentro da própria definição de classe. Digamos que o primeiro atributo que queremos atribuir como a cidade, vamos dizer que a cidade onde a casa fica em Barcelona, vamos dizer quarto. Vamos dizer que vai ser três quartos. E depois em um apartamento de dois banheiros. Então podemos dizer algo como chão. Digamos que você pode ter azulejo, madeira, tapete. É uma lista com os diferentes tipos de pisos de um piso que ele tem. E você pode ver até ter um atributo booleano que diz ter pool e dizer igual a true, ele tem que agrupar. Isso pode ser uma definição da nossa classe de robôs. Então, mais tarde, podemos dizer: Ok, vamos atribuir, criar duas instâncias desta casa de classe. Como faríamos isso? Bem, podemos dizer como s1 é igual a casa, depois casa igual a casa. Isso criaria duas instâncias separadas da mesma classe, o mesmo blueprint da casa, certo? Portanto, é um blueprint que criou agora duas instâncias separadas. Então, por exemplo, agora podemos dizer, podemos começar a fazer algumas alterações. Podemos dizer que duas casa em cidade, vamos mudá-lo para Sydney. Em seguida, casa dois quartos diminuiu isso em um menos igual a um. Casa duas casas de banho. Digamos que a mesma coisa menos igual a um, apenas diminuindo por um. Estamos mudando, estamos mudando a segunda instância da casa ou criamos para que possamos mudar os atributos e ver o que acontece certo? Então vamos dizer que casa, dois andares. Forçar a remoção. Bem, deixe-me vê-lo exatamente. Pisos. Remova. Vamos remover o piso de madeira dura. É incrível. Agora, vamos fazer o seguinte. Vou pular essa parte, mas praticamente o que vou fazer é imprimir todos os aspectos de cada atributo de cada instância para os aspectos de cada atributo de cada que possamos ver e compará-la contra os dois. Aqui vamos nós. Imprimimos uma linha em branco de mesclagem e, em seguida, imprimimos uma descrição dizendo imprimir atributos de uma instância. O próximo simplesmente fez. Imprima cidade, uma, cidade da casa1, todos com f cordas. E então eles fizeram um título com a cidade que o capitalizaria. Então temos quartos, banheiros, pisos, que devem ser iguais ao piso. Tem um pool verdadeiro ou verdadeiro ou falso. E então a mesma coisa exata, mas para casa em casa para exemplo. Então, vamos ver o que acontece quando executamos isso. Recebemos o primeiro, Barcelona três, quarto para banheiro, azulejo e tapete. Isso já é estranho porque deveríamos ter tapete de azulejos na madeira. Então também temos a casa da casa, quando temos onde esperamos ter Sidney dois quartos, um por dois quartos, um banheiro, tapete de azulejos, e tem uma piscina. Verdade. O que acontece aqui é que quando fazemos isso, quando fizemos isso para a segunda, para a segunda instância, estamos realmente fazendo isso o mesmo objeto que está contido aqui, e é atribuído à classe saturada. É por isso que as alterações cada instância criada com isso, com esse atributo de classe. Onde temos que evitar que isso aconteça é, na verdade, o seguinte. Teríamos que dizer casa em casa dois andares, andar igual a casa, casa a andar. Cópia. Teríamos que criar uma cópia disso. Então podemos dizer casa em chão, remover madeira dura. É assim que faríamos. Nós executaríamos esta casa perfeita, podemos vê-la estilo tapete de madeira dura e, em seguida, como tapete de azulejos suis apenas baseado em não, vimos que os dados são realmente através de atributos. Atributos. Funcionalidade. Acontece que para adicionar funcionalidade às nossas classes, fazemos isso através do método de mensagem, simplesmente dos métodos. Como fazemos isso? Bem, lembre-se de como falamos sobre métodos para listas, cadeias de caracteres e outros tipos de dados como, assim. Bem, acontece que é realmente semelhante ao tipo de objetos que estamos criando agora com classes. Porque sempre que quisermos criar uma nova lista, digamos minha lista, execute a lista, digite e imprima minha lista. Recebemos uma lista vazia porque estávamos criando uma instância por meio do tipo ou da lista de classes, estamos criando uma instância e, em seguida, imprimimos minha lista. Então também podemos obter o diretório da minha lista, que retornaria para imprimi-lo na tela, retornaria todos os métodos que temos. Temos um método de cópia, temos que acrescentar índice do método pop, o método de remoção. Já temos métodos. Esses tipos de listas que temos, esse tipo de lista nesta instância que criamos uma instância, imprimimos o n já que vimos que é uma lista vazia e vazia. Mas quando tentamos fazer o método direto ou a função dir, vemos todos os métodos que estão dentro dessa instância. Bem, o mesmo acontece com nossas aulas. Podemos simplesmente criar métodos em nossas classes que adicionarão funcionalidade às nossas classes. A maneira mais simples de definir um método dentro da classe que definimos como a seguir. Se tivermos nossa classe chamada minha casa em uma classe para representar uma casa, simplesmente a definiríamos como uma função dentro de um método. Meu método, vamos apenas dizer que o método Grant foi executado. Então, se criarmos uma instância, digamos que Bem, criamos uma instância da minha casa, da minha casa e, em seguida, administramos minha casa um, meu método. Vamos ver o que acontece aqui. Ele diz que nos dá um erro. Ele diz erro de tipo. Meu método usa 0 argumentos posicionais, mas um foi dado. Neste caso. Acontece que para uma classe e eu **** métodos de classe, sempre precisamos passar no auto-argumento. Quando executamos isso. Por outro lado, veríamos OK, método executado. Tenha em mente que precisamos passar o auto-argumento por causa de uma coisa especial sobre métodos é que o objeto de instância é passado como o primeiro argumento da função toda vez ele é executado. Pense no auto-argumento simplesmente como a instância em si. Então ele está passando a instância em si para a função é, é exatamente como se eu dissesse aqui embaixo, minha casa é igual ao meu método e depois passar na minha casa um. Vemos que o método bronze novamente porque estou chamando minha casa, que é um objeto, que é uma classe nesse estado, neste caso. Então estamos chamando meu método, que é um método dentro dessa classe. E então estou passando a instância, que é a instância em si. Isso equivale a dizer isso onde simplesmente queremos fazer isso porque fomos, só queremos chamá-la de casa em si para a instância em si, chamada a função em si, e, em seguida, faça com que a própria instância seja passada para a função automaticamente pelo Python. Isso é o que a perda do Python e foi aí que recebemos o erro antes. E foi aí que funcionou depois que incluímos o auto-argumento dentro do próprio método. Python também tem o que são chamados de métodos mágicos ou dunder. Trovão para um sublinhado duplo, que são simplesmente métodos que têm algum tipo de funcionalidade especial para eles. E cada um tem um propósito muito específico. Só precisamos lidar com métodos de trovão sempre que tivermos um objetivo muito específico em mente. E sabemos que queremos usar esse método dunder para lidar com isso. Vamos dar esse exemplo por um segundo. Usamos as variáveis de classe ou atributos de classe para atribuir todos esses atributos a uma única classe. E usamos um atributo de classe para isso. Mas e se quiséssemos fazer algo assim? Minha casa, uma igual à minha casa, e depois diga Barcelona, três a quatro quartos e banheiros. E então para o azulejo passaria na lista aqui, os pisos. Então é verdade. E se quiséssemos passar isso pois parece mais uma função, mas é simplesmente uma maneira de iniciar uma instância de uma classe com os atributos passados para eles porque não queremos que todos eles Barcelona ou ter o mesmo tipo de piso. Queremos defini-los exclusivamente em cada vez, toda vez que declaramos uma instância de classe. O que você acha que poderíamos fazer por essa situação? Bem, acontece que existe um método dunder muito específico chamado método para inicialização. Digamos que inicialize a instância o que esse método dunder faz ou qual o comportamento específico que esse método de trovão tem. O método init é que ele será executado toda vez que uma nova variável ou uma nova instância de classe declarada, ou sempre que uma nova instância for executada, então isso seria executado. Por exemplo, se eu inicializei a classe , fiz aqui, vou comentar isso porque ainda não queremos usar isso. Queremos dizer minha casa. E se fizermos isso? Podemos dizer, Ok, classe inicializada. Vemos que sempre que inicializamos a classe, criamos uma instância de uma classe, ela é inicializada. E então esse códon lá no método init de bronze, também é chamado de método construtor. Construtor. O que faríamos para esse exemplo específico, para que isso funcionasse, simplesmente usaríamos o seguinte. A sintaxe a seguir faria auto, auto cidade igual a, igual à cidade. Em seguida, passe para dentro. Cidade aqui fora. Quartos independentes iguais a quartos de cama, quartos, banheiros, pisos e banheiros, e depois os definem aqui. Flores florescem. Então, o self tem. Piscina igual a tem piscina. Agora, quando executamos isso, inicializaríamos essa classe e, em seguida, teríamos cada atributo atribuído a essa classe por causa da maneira muito específica como o método init funciona. Outro exemplo de outro método, ou poderíamos criar um método regular, pode ser um método de descrição de impressão. E aqui está um exemplo. Definimos a instância, um método de descrição e, em seguida, simplesmente imprimimos descrição de tudo da instância. Então, sempre que quiséssemos executar esse método, minha casa uma descrição de instâncias, salve isso. Poderíamos vê-lo imprime cidade de épsilon e quartos, três banheiros para forçar o hospital de tapete de madeira intitulado igual a verdadeiro. Podemos ver que é um exemplo de outro tipo de método que poderíamos criar. É aqui que estamos agora. Vimos essa funcionalidade também. O que isso significa é que isso significa que, através métodos, funcionalidade através de métodos. E estes também podem ser o que são chamados métodos de dunder mágico para sublinhado duplo. Então vimos esse estado, estado praticamente como um instantâneo da sua classe. Então, afirme que podemos pensar que o status é um subconjunto de dados e os atributos. Se você fosse tirar uma foto da sua classe ou do que estamos fazendo com seu objeto a qualquer momento, esse seria o estado do seu objeto. Podemos dizer aqui instantâneo do seu objeto. Então agora podemos ver com mais clareza que o parágrafo que inicialmente começou como língua estrangeira agora faz muito mais sentido. Se fôssemos para trás, leia de volta, eu não fiz. Neste momento, entenderíamos conceitos que ele tem. Isso é bastante impressionante apenas para transformar a língua estrangeira em algo compreensível. Então, parabéns por isso. Doce. Então agora vamos fazer uma recapitulação. Vimos que cruzamos uma curva de esquecimento com repetição de espaço e recall ativo. Nosso cérebro se fortalece com o tempo e se tornará mais nítido e mais focado no dia-a-dia. Agora vamos ver o que, onde estamos. Podemos ver que sabemos que nossas classes ou tipos de subobjetos são iguais aos planos. E, em seguida, novas instâncias são iguais às casas. O equivalente a blueprints e casas para classes são plantas e instâncias são casas individuais. Em seguida, vimos que os dados por meio de atributos nos dão o estado por meio do instantâneo do objeto. Em seguida, a funcionalidade atinge métodos, que não podem ser métodos mágicos ou dunder. Dunder para métodos de sublinhado duplo. Vimos que as classes têm dados por meio de atributos e métodos de funcionalidade. Podemos pensar em atributos como variáveis que pertencem a um objeto e métodos como função que pertence. Mesh admite isso como funções que pertencem a um objeto. Métodos Dunder para sublinhado duplo, também chamados de métodos mágicos, são métodos que têm funcionalidade especial e só devemos manipulá-los quando queremos trabalhar com esse específico funcionalidade. O método init é o método add dunder de uma classe que será executada toda vez que criarmos uma instância da classe set. Então sabemos que eu se refere a uma instância em si. Nós o passamos como o primeiro argumento para todos os métodos dentro de uma classe. Você poderia usar outra variável, nome em vez de self, mas você pode usar qualquer nome que quiser, mas é o que usamos para convenção e tornar seu código mais legível por outros programadores. E, finalmente, vamos dar uma olhada na seção de entendimento para hoje. Temos para perguntas para hoje. Mais uma vez, leia-os, pause o vídeo agora mesmo e depois passe por eles. Se você precisar de ajuda, sinta-se à vontade para postar qualquer dúvida no chat e a comunidade estará ativa lá. E se não, você pode se sentir livre para entrar e nós seremos úteis, por lá também. Boa sorte com estes e te verei novamente amanhã. 22. Dia 19 - OOP - Herança: Bem-vindo ao Dia 19, o circuito dos objetivos de hoje. A primeira é olhar para outra vantagem de ter uma mente aberta. E o segundo é olhar para a herança de classes. Vamos analisar quais são as classes de pais e filhos. Com isso, vamos direto para a seção de aprendizado. Ter uma mente aberta nos permite olhar para as coisas objetivamente e onde quer que surja uma maneira melhor de fazer algo, será capaz de adotá-la e melhorar rapidamente. Uma mente aberta nos impede de ficar com nosso antigo caminho simplesmente porque pode ter sido a maneira que fizemos em toda a nossa vida. Com a mente aberta, podemos ver todas as opções e escolher a que funciona melhor. Essa abordagem rapidamente faz você se destacar sobre todas as pessoas que lideram opiniões subjetivas atrapalham a tomada de decisão. Há situações em que queremos criar uma classe com base em outra classe. Uma classe herda de outra. A classe de nível superior é chamada de classe pai. Aquele que herda dele é chamado de classe infantil. Vejamos esse exemplo de uma classe que temos como classe pai. Minha classe dos pais. Vamos documentar. Será uma cadeia de impasse. Em seguida, vamos definir um método init para adicionar o auto inicializa uma instância da minha classe pai. Então vamos dizer que eu mesmo é igual a. Vamos adicionar como parâmetro nesse método. Então vamos dizer impressão. Vamos dizer f string de e dizer que você acabou de inicializar, Misha, inicializou uma instância. Minha classe dos pais. Então vamos dizer dizer print c igual a aqui em cima. Nós realmente não precisamos do upstream colocado aqui em baixo. Nós fazemos argumentos iguais a argumentos. Incrível. Agora vamos adicionar mais um método, que simplesmente será meu método pai. Passamos em si mesmos. Simplesmente, somos apenas isso é simplesmente um método, um método da minha classe pai. A única coisa que vamos fazer é imprimir o método pai executado. É por isso que vamos fazer agora temos nossa classe pai, temos o método interno e temos meu método pai. Então vamos definir outra classe, que será meu filho. Minha aula infantil. Então, quando queremos herança, quando queremos herdar de outra classe, queremos passar na minha classe dos pais para a classe de filhos. Novamente, isso seria uma string de documentos. Em seguida, definiríamos o método init. Digamos que queremos dizer a si mesmo. Então as crianças argumentam crianças argumentam criança. E então aqui em baixo simplesmente dizemos igual a criança para criança. Então vamos imprimir simplesmente algo para fazer login. Você diz, apenas inicializado, inicializado. Nova instância da minha turma, minha classe infantil. Vamos dizer a corda F com o então filho Senhor. Finalmente, vamos ter o método filho. Meu método filho que vai tomar em si mesmo e simplesmente vai imprimir. Mas vou adicionar um método de string doc. Meu filho. Basta imprimir o método filho executado aqui, você pode ver que eu liguei em uma super, super função, que é simplesmente chamadas e faz referência à instância pai. Então, ele vai fazer referência à classe pai, vai inicializá-la passando no argumento. Quando vemos aqui que temos esse argumento, passaria para a função chamada na classe pai. E isso inicializaria a classe pai. Se tivéssemos outros argumentos aqui. Por exemplo, são R2 ou algo que tivemos mais argumentos. Nós adicionaríamos esses argumentos adicionais aqui também, R2, e então passaríamos isso em R2, simplesmente replicaríamos tudo o que está na classe pai e passaríamos isso para a classe filho como bem. Mas neste caso, temos apenas um argumento, então apenas um chamaria a super função causará a classe pai. Inicializamos, passamos o argumento e, em seguida, simplesmente o executamos como qualquer outro método de construtor inicializado. E também adiciona alguma documentação a essa instância da minha classe infantil. Incrível. Agora, quando o fizermos, quando fazemos meu filho, digamos que meu filho seja igual à minha classe infantil. Eles vão passar no argumento um. Digamos que o valor um, valor dois. Então vamos dizer Meu filho meu, e depois executar os métodos, meu método filho. Então vamos vê-los. Meu filho também tem meu método pai. Quando executarmos isso, vamos dizer, ok, você apenas inicializa uma instância da minha classe pai porque eles são super, novamente a super função chamada sin, a classe pai, e em seguida, inicializa-o. Quando você chama o método init das super, super referências, da classe pai e, em seguida, ele o inicializa com o argumento que você transmite. É por isso que você diz que estamos imprimindo aqui. Acabamos de inicializar a instância da minha classe pai. Então você obtém o valor do argumento um. E então diz que você acabou de inicializar na incidência da minha, minha classe infantil, você é argumento valor um e valor dois? Então você vê que nada mais aconteceu, que os métodos não foram executados. E isso fala simplesmente porque não os chamamos da maneira certa. Precisamos apontar que passaria por referenciá-los usando os suportes redondos. Quando fazemos isso dessa maneira, podemos ver, ok, método filho executado, o método pai executado. E ambos correram usando a classe filho, que herdou da classe pai. Alguns exemplos em que podemos querer usar herança podem ser. Um não é. Por exemplo, se quisermos criar um aplicativo para uma escola, temos uma aula pessoal. E então, como classe pai, a classe pessoa seria a classe pai. E então poderíamos ter algumas aulas para crianças, que podem ser alunos, turmas e professores. Podemos ter a pessoa que pode ter muitos atributos para uma pessoa que pode se aplicar tanto aos alunos quanto aos professores. Mas então podemos ter algumas aplicações mais específicas para os alunos e professores separadamente. Isso pode ser um exemplo. Outro exemplo pode ser que você pode ter uma classe de pais se estiver tentando fazer um NOP para algo relacionado a cães ou animais de estimação. Você pode ter uma classe de pais chamada cão. E então as aulas infantis para as diferentes raças são os diferentes tipos de cães que você usa no futuro. Você pode ter apagado o cão, onde você pode ter um show dog ou você pode ter um cão de estimação, dissuadir diferentes aplicações que você poderia usar. Herança, herança que pode ser útil. Grade. Então, vamos fazer uma recapitulação. Agora, ter a mente aberta nos permite adotar as opções objetivamente melhores independentemente de qualquer preconceito que possamos ter. Inicialmente. Podemos criar classes filho que herdam de classes pai adicionando a classe pai na definição como Blackstone, seguindo a sintaxe como em classe, classe filho e entre colchetes redondos, a classe pai. A herança de classes funciona quando queremos criar uma subclasse e não nos repetir por ter que reescrever todos os dados e funcionalidades transferíveis. Usamos uma função super integrada para fazer referência à classe pai dentro da classe filho. Sempre que usamos uma classe filho, e a classe filho tem precedência para quaisquer dados ou funcionalidades antes que o Python pesquise pela classe pai. E, finalmente, temos a seção de entendimento. Você tem cinco perguntas para hoje. Novamente, se você tiver alguma dúvida sobre isso, sinta-se à vontade para perguntar e na comunidade porque estaremos ativos. Eles não são que é ótimo e, em seguida, boa sorte com isso e nos veremos novamente amanhã. 23. Lição 20: Bem-vindo a outro dia de descanso. Uau, parabéns por chegar até aqui no curso, a menos que eles incrivelmente empolgados para tê-lo aqui, porque isso significa que você foi capaz superar a parte mais difícil, que é a primeira alguns dias, você conseguiu se manter consistente até este ponto? É como um trem quando está em ponto completo, entrar em movimento é a parte mais difícil. Mas então fica mais fácil e fácil ao longo do tempo se você for consistente antes de perceber, o trem está se movendo em velocidade máxima e o esforço que você precisa fazer é mantê-lo lá. Porque um objeto que já está em movimento permanece em movimento, a menos que haja uma força que trabalhe para detê-lo. Certifique-se de revisar todas as lições ou qualquer coisa que possa ser útil. E vou demorar um segundo para lembrá-lo sobre as três chaves para um aprendizado eficaz para obter consistência. Basta voltar todos os dias e dar tudo o que você tem. Parabéns por colocar o movimento de treinamento. Agora eu encorajo você a aproveitar esse impulso que você está carregando e a terminar uma estratégia final forte e mantê-la aprendendo após a repetição espaçada. recall ativo é um excelente exercício de trazer. Combine isso com recuperação racional e você esmagará a curva de esquecimento. Finalmente, para perguntas ou respostas, mantenha a mente aberta. Seja curioso e aborde o aprendizado com a mente de um iniciante. Há sempre um novo caminho pelo qual não percorremos . Tão incrível. Aproveite o dia de descanso. Certifique-se de resolver quaisquer perguntas que você tenha de dias anteriores. E te vejo de volta aqui amanhã. 24. Dia 21 - Arquivos: Bem-vindo ao Dia 21, o circuito dos objetivos de hoje. Primeiro, queremos analisar a importância de sermos consistentes. Vamos revisitar isso. Em seguida, vamos examinar os arquivos. Vamos analisar tudo sobre arquivos. Então, vamos direto para a seção de aprendizado. À medida que você continua voltando, você continua reforçando o hábito de aprender e novidade e está facilitando o retorno a cada dia. Se você estiver aqui. Isso significa que você já fez um ótimo trabalho nisso. Então, parabéns. Por que arquivos? Bem, acontece que há uma ótima maneira de usar dados já salvos ou salvar novos dados criados pelo seu programa. Para abrir um arquivo, usamos a função open. E a função open retorna um objeto de arquivo. Então, vamos criar uma variável chamada arquivo. E vamos passá-lo no que é retornado do arquivo, a função aberta. A função open recebe o nome do arquivo, o nome do arquivo ponto TXT, por exemplo. Isso seria o que é chamado de caminho de arquivo relativo porque pressupõe que o arquivo já está na mesma pasta em que estamos atualmente. Mas um caminho de arquivo absoluto seria algo assim. Este seria um exemplo de um caminho de arquivo absoluto. Você o passará em cada pasta do diretório raiz? Este é um exemplo do que um sistema Mac OS usaria. E se você tivesse o Windows, adicionaria um C dois pontos antes que os pontos arquivassem o caminho. Mas aqui estamos apenas, vamos usar apenas caminhos de arquivo relativos. Neste exemplo, já temos um arquivo criado um arquivo de texto, que é este que diz Esta é a primeira linha, a segunda linha e, finalmente, deixou arquivo TXT de ponto de terceira linha, e já está em a mesma pasta em que estou atualmente. Chama-se sample.txt. E como ela, como não é uma pasta sustentada, poderíamos usar um caminho de arquivo relativo. Então eu poderia dizer exemplo TXT. Isso abriria esse arquivo nesse objeto de arquivo. A primeira coisa que precisamos saber sobre objetos de arquivo é que eles têm o que é chamado de posição atual. E para ver qual é a posição atual, simplesmente fazemos o objeto de arquivo ou esse objeto de arquivo e, em seguida, fazemos a função tail, o método tail para esse objeto. E podemos dizer que está na posição atual 0 porque começa na terceira posição atual de zeros. Isso significa que a posição atual está aqui atualmente. No início do arquivo. Há outro método chamado, chamado método de leitura. E esse método retorna algo que queremos imprimir na tela. Se fizermos objeto de arquivo, leia, esse método em que ele vai fazer é começar na posição atual, que podemos dizer agora olhando para o método tilt telling. É apenas 0 posição começará na posição atual e vai até o fim. Se não especificarmos outro caractere aqui, se dissermos ao objeto do arquivo para lê-lo, ele começará em 0 e terminará no final do arquivo. Assim, podemos ver que há uma primeira linha, segunda linha e, finalmente, a terceira linha. Isso é exatamente o mesmo que estamos recebendo do nosso arquivo de texto que criamos de antemão. Neste momento, se dissemos o método de cauda do pato do objeto de arquivo, poderíamos ver que ele está na posição 58, V0, digamos $1 longe de 0 até o final, que acabou sendo posicionado 58. Como vamos para a primeira posição novamente? Bem, como mudamos a posição desde o início ou para outro lugar dentro do arquivo. Bem, há outro método para isso, que é chamado de método Seek. Se buscarmos 0, voltamos para a posição 0 novamente, o início do arquivo. Porque se fôssemos ler o arquivo, por exemplo, livre para lê-lo e depois tentar lê-lo novamente. Toda vez que ele lê aqui e lê, e foi até o fim. A posição atual foi até 58. É por isso que sempre que executo o objeto de arquivo lido novamente, ele não imprimiu nada porque eles precisam executar o método Seek primeiro para tomar a posição atual até 0. E então eu posso lê-lo novamente desde o início. Sempre que abrimos um objeto de arquivo em Python, podemos ver que ele tem o objeto arquivo, o atributo fechado igual a false. Então, quando você olha para o objeto de arquivo, Fechado igual a false agora. E poderíamos usar a função close ou o close, o objeto de arquivo de método de fechamento, perto para fechar o arquivo. Dessa forma, sempre que executamos o arquivo de fechamento, podemos ver que há igual verdadeiro e queremos fechar nossos arquivos depois de usá-los. Depois, terminamos de usá-los. fim de reduzir o uso da memória do nosso script. Não há uma maneira mais simples usar arquivos em Python, que é usando a largura, a instrução width ou o bloco width. Nesse caso, usamos com open. E, em seguida, execute o nome do arquivo, que neste caso é o exemplo bloqueios dxdy. Como objeto de arquivo. Então, aqui, executamos as funções ou executamos o código para o qual queremos usar nosso arquivo de arquivo. Neste exemplo, vamos usar uma linha for-loop. No objeto de arquivo. Vamos imprimir a linha. Veremos que ele imprime todas as linhas do objeto de arquivo. Agora, porque o arquivo já continha novas linhas aqui, sempre que faço isso, estou adicionando uma nova linha, um novo caractere, já que já tem uma nova linha. E a função de impressão toda vez que é executada, adiciona uma nova linha também. É por isso que está adicionando duas novas linhas ao mesmo tempo. Então, para remover isso, podemos usar o método strip. E dessa forma, obtemos o arquivo sem as novas linhas adicionais. O bom da instrução width é que sempre que você usar um bloco de largura, toda vez que o bloco de largura terminar ou terminar, ele fechará o arquivo automaticamente. Ele abrirá o arquivo como um objeto de arquivo. Em seguida, você pode usar o objeto de arquivo. Você pode usar um loop for para percorrer cada linha no objeto de arquivo. Você pode imprimir cada linha. E quando esse bloco de código terminar de executar o arquivo, chegaremos, chegaremos perto automaticamente sem que precisemos declarar isso explicitamente. Acontece que a função aberta podemos passá-la no caminho do arquivo , bem como no modo. Até agora ainda não passamos no modo, já que ele usa o R tem um padrão. R é para leitura aberta um arquivo somente para leitura. Então, até agora estamos afirmando implicitamente que estamos abrindo o arquivo para leitura. Mas existem outros tipos de modos que poderíamos adicionar e poderíamos usar, por exemplo, W é abrir um arquivo apenas para gravação, e isso excluirá o arquivo se ele já existir, ou criará um com isso nome. Se ainda não existir, então o x está quatro aberto para criação exclusiva, falhando se o arquivo já existir, então a é para abertura para escrita, anexando o final do arquivo. Então, um é para anexar. B é para o modo binário, usando isso ao longo da leitura e escrita. E T é para o modo de texto, que é o padrão usando isso ao longo do modo de leitura que estamos escrevendo. Então B e T, T é o padrão e B seria, não seria, nós não gostaríamos muito brilhante para um binário, um arquivo binário. Então, mais é para abrir para atualização, leitura e escrita. Alguns exemplos são plus, o que significaria abrir um arquivo tanto para leitura quanto para escrita sem truncar primeiro. E então w1 plus que estão abrindo o arquivo para leitura e gravação. Truncando o arquivo primeiro. Para abrir o arquivo para leitura no modo binário, podemos usar o RB, que tem leitura e, em seguida, binário para anexar a um arquivo binário usado AB. Os arquivos de texto contêm arquivos binários de arquivo de strings contendo séries de bytes. Dito de outra forma, os arquivos de texto são legíveis por humanos e os arquivos binários não são. Alguns exemplos de arquivos binários incluem imagens, vídeos e arquivos compactados. E, finalmente, poderíamos usar o atributo de objeto de arquivo mode para obter o modo no qual o arquivo estava aberto. Então, como exemplo de como criaríamos um novo arquivo, poderíamos fazer algo como este exemplo, ponto TXT. Então vamos dizer direito como objeto de arquivo. Então aqui podemos usar o objeto de arquivo, objeto , direito, método para escrever um novo texto. Nesse caso, o que acontecerá sempre que eu voltar ao meu arquivo, esse era meu arquivo de texto. Sempre que eu volto a este arquivo TXT de ponto de exemplo, ele não incluiria tudo isso. Se eu voltar e tentar abrir esse arquivo. Este é o arquivo que eu conseguiria se voltasse para encontrá-la e tentasse abrir esse arquivo. Porque o w o que ele faz é que ele trunca o arquivo primeiro e depois escreve nele. E o método de gravação é usado para gravar o suficiente para anexar ao final do arquivo. Com o método direto, há certas coisas que você pode querer considerar. Por exemplo, as operadoras retornam a nova linha ou os caracteres de terminações de linha para os textos que você anexará. Como depende do final da linha, você pode usar esses caracteres para cada um como um carro retornar a nova linha em finais de linha tanto para Windows quanto para as unidades para sistemas operacionais Mac. Doce, então vamos fazer uma recapitulação agora. Os arquivos são uma ótima maneira de salvar dados fora da execução atual do seu programa. A função interna aberta aceita um caminho de arquivo, que pode ser caminhos relativos ou absolutos, e retorna um objeto de arquivo. Você pode usar a função aberta e , em seguida, métodos de objeto de arquivo, como métodos ler , informar, procurar e fechar. Mas a maneira mais conveniente de trabalhar com arquivos é apenas a instrução width, usando a instrução width open file.txt como file object tem a vantagem de que o arquivo é automaticamente fechado após a execução do bloco ou do bloco de código, mesmo que ocorra um erro ao imprimir todas as linhas do arquivo que você pode usar para linha no objeto de arquivo e dentro do bloco de largura e, em seguida, imprimir cada um dentro do loop for-loop. Depois, existem modos diferentes e diferentes. Você não pode reabrir a função. O padrão é RT, que é leitura e texto. E um comum que você pode usar como o r pluss, que abre um modo de arquivo. No modo de texto para atualização e leitura. Um modo comum pode ser R plus, que abre no modo de texto para atualização, leitura e escrita. E, finalmente, um conjunto para a seção de entendimento. Hoje temos três perguntas que têm a ver com o manuseio de arquivos. Então, boa sorte com eles e nos avise se você tiver alguma dúvida na seção da comunidade, ele estará ativo lá. Se não, boa sorte com estes e te vejo amanhã. 25. Dia 22 - Tratamento de Exceção: Bem-vindo de volta ao dia 22. Bom. Os objetivos atuais, temos erros e exceções no tratamento de exceções. Trata-se de exceções hoje. Vamos pular direto para a seção de aprendizado. Existem pelo menos dois tipos de erros. Temos erros de sintaxe e , em seguida, temos exceções. Se fôssemos executar esse código, veríamos que receberíamos um erro de sintaxe, sintaxe inválida porque essa sintaxe não é válida. Então, esse seria o primeiro tipo de erro. E então, se tentarmos executar algo assim, como uma divisão 0, obteríamos um erro de divisão 0 e isso seria uma exceção. O mesmo se executássemos o código abaixo, receberíamos um erro de nome porque Pam é uma variável indefinida não está definida. Então, finalmente, se tentássemos adicionar uma string como um, como um inteiro, obteríamos um erro de tipo só pode concatenar strings para strings. Nós receberíamos um erro de tipo, que é outro tipo de exceção. Podemos ver aqui como as exceções podem vir em diferentes tipos. Então, os exemplos que mostramos antes, somos ZeroDivisionError, erro de nome e par de tipos, podemos usar um bloco try e exceto exceto para lidar com possíveis exceções que possam surgir. O que isso faz é que ele tentará executar o bloco de código sob a instrução try. E se uma exceção for levantada, ela parará de executar o try-block e verificará o bloco exceto. Se a exceção gerada corresponder a qualquer uma das exceções no bloco exceto, esse bloco será executado. O que isso significa? Temos uma tentativa e exceto bloco. Vejamos um exemplo de um caso de uso real. Temos aqui um loop while, embora seja verdade. Então isso continuará infinitamente, a menos que algo aconteça nesse intervalo , onde vamos tentar isso, vamos tentar UserInput. E vamos pedir ao usuário que insira um número. E então vamos dizer número. Vamos transformar isso em um número inteiro. E então vamos quebrar, exceto se obtivermos um erro de valor. Se obtivermos um erro de valor em algum lugar ao redor deste bloco try, esse bloco exceto será executado e, em seguida, imprimiríamos no número inválido da tela. Por favor, tente novamente. Quando receberíamos um erro de valor? Bem, sempre que recebemos algo como se tivéssemos uma letra como entrada, sempre que tentamos inserir uma letra, receberíamos um erro de valor ou algo assim. Vamos tentar executar isso como exemplo. Por favor, insira um número. Então, se eu fiz W, ele me dirá um número inválido. Tente novamente e veja como o loop while, o while, ele é executado novamente. Como lidamos com a exceção e em seguida, o tempo é igual a verdadeiro, e então o bloco de código é executado novamente até que eu tente novamente, vou continuar recebendo algo da mesma iteração da mesma iteração até que eu insira um número válido, por exemplo, três. E isso significaria que o código seria executado com sucesso. Ele será quebrado, ele sairá do loop while e o código será executado com sucesso. Se quiséssemos, poderíamos adicionar mais tipos a serem capturados pelo bloco exceto. Adicionaríamos isso usando a notação tupla. Por exemplo, aqui, qualquer coisa que seria levantada como um erro de valor, um erro de tipo ou um Neymar seria capturado por isso exceto bloco e, em seguida, esse código seria executado depois disso. É assim que inseriríamos diferentes ou vários tipos de exceção, exceções a serem copiadas, exceto bloco. Há outra maneira de podermos usar o bloco exceto. E dessa forma, sem inserir nada ou nada, qualquer tipo de exceção, isso funcionaria como um curinga e isso capturaria todos os tipos de exceção que seriam levantados por esse bloco try. Isso não é recomendado, necessariamente porque se uma exceção imprevista, onde corremos aqui, ela seria capturada por isso, exceto bloco. E se isso fosse, o código para lidar com isso seria executado mesmo se não estivéssemos esperando essa exceção. O uso de um curinga não é recomendado. Usar um único valor ou um único tipo de exceção é o caso de uso. Verei o mais frequentemente porque é isso que tentaremos prever um único tipo de erro e lidaremos com um único tipo de erro na exceção. As exceções não suportam apenas todas as exceções quando elas levantaram ou acontecem imediatamente. E o try-block, se fôssemos referenciar nossa função aqui, levantaria essa suposição ainda , então isso seria chamado, que seria tratado pela exceção também. Por exemplo, se tivéssemos isso como uma função, basta simplesmente retornar int do argumento, então aqui usaríamos num igual num equal turn in function. Em seguida, entrada do usuário. Se fôssemos executar isso e, em seguida dissemos que um número ficaria envolvido, tente novamente até inserirmos um número e, em seguida, ele seria executado com sucesso. Mas aqui é para ver que se você tivesse uma referência de função em algum lugar, em outro lugar no erro aconteceu na função em vez de no código real diretamente. O ar, já que aconteceu no mesmo bloco de código, seria levantado e seria tratado menos esperado. Você pode definir suas próprias exceções herdando da classe de exceção base. Aqui estamos criando nossa própria classe ou exceção própria, que é chamada de ar. E está herdando da exceção base daqui. Portanto, nós inerentes à exceção que seria a classe pai e essa seria uma classe filho. E neste caso, seria uma exceção. A maioria é definida com nomes que acabam com um erro. Isso é convenção. Você também pode encadear várias exceções. Então, se eu fosse criar alguns erros lá, este herdaria desse ar, do pai lá. E vou dizer aula. Segundo. Este herdaria do primeiro erro. Então você pode ver como há, há como uma árvore de herança acontecendo aqui. Agora eu diria que para a aula, vou dizer erro. Primeiro, o segundo deles lá. Quer tentar. Quero tentar usar a declaração de aumento. Faça uma corrida em cada classe. Exceto, exceto o secundário. Impressão. Segundo. A maioria, exceto que você pode encadear exceto blocos. Primeiro, eles vão dizer impressão. Primeiro. Finalmente, aceite ar. E vou dizer impressão. O que acontece se eu executar isso? Nós receberíamos um erro OK, depois primeiro e depois segundo. Porque para o primeiro erro, o primeiro, pudemos ver que quando ele tenta, quando abraça o ar. Então ele vai de quatro classes em estreito, começa lá, o try-block e racista de ar. Em seguida, ele seguirá cada bloco, exceto. Quando ele vai, exceto secundário, não cai no secundário. E se false segue o próximo, exceto o erro, então ele cai no próximo, exceto bloco. E diz que, se essa área é a primeira área, já que não é, ela cai no terceiro exceto bloco e, finalmente, acaba imprimindo o ar porque cai por esse erro final exceto bloco. Então o primeiro salto é o mesmo, O mesmo. O primeiro cairá em primeiro e depois o segundo o seguirá até o segundo. Mas se os blocos exceto fossem revertidos, por exemplo , se este estivesse aqui, então este estaria aqui. Nós obteríamos toda vez a era do ar, uma era porque cada erro cai na classe aérea desde os erros. E todas as classes herdam da mesma exceção base do mesmo erro raiz. É por isso que recebemos ar, ar, ar. Imprimimos toda vez o primeiro, exceto o bloco. Isso acontece como vimos no exemplo anterior, a instrução de corrida permite que o programador corra um tipo de exceção, A única corrida de argumento indica a exceção a ser levantada e isso possivelmente seja ou uma instância de exceção, lance uma classe de exceção. Uma classe de exceção é uma classe que deriva da exceção, a exceção base, como vimos aqui, se as classes de exceção passaram implicitamente instanciadas chamando sua construtor sem argumentos. Portanto, isso significa que, por exemplo, essa classe de erro foi passada. Inicialmente, instanciaria essa classe aérea. E se tivéssemos nosso construtor nesta classe com um construtor nessa classe, então esse construtor funcionaria porque seria instanciado. Olhando para trás neste exemplo anterior, também íamos ver o que é a instrução L. Muito simples, é realmente uma declaração de negócio simplesmente acontece sempre que o try-block é executado com sucesso. Por exemplo, se quiséssemos adicionar essa parte de quebra, poderíamos adicioná-la à instrução else. Poderíamos imprimir sucesso, sucesso também. Dessa forma, isso nos permite garantir que estamos isolando linhas. Então, dessa forma, estamos isolando essas duas linhas, duas para o try-block e não estamos incluindo a instrução print e break no try-block. Essa é uma boa maneira de isolar o manuseio de exceções para algumas linhas menos. Em vez de geralmente se ater a algo que pode não ser o que estamos tentando mirar. Nesse caso, quando executamos esse código, obteria o mesmo comportamento que o outro código. Estamos tentando inserir letras, isso não funciona. Os números nos deixariam. Não funciona até colocarmos um número real. E então diz sucesso, o código termina de ser executado. Incrível, então é aí que mantivemos agora. Existem dois tipos de erros, erros sintaxe e exceções. As exceções vêm em diferentes tipos. Alguns comuns são ZeroDivisionError Neymar e digitar lá. Podemos ver a documentação do Python para que ela seja uma lista exaustiva. Podemos usar um bloco try e exceto para lidar com exceções. Python, tentaremos executar o bloco de código dentro da instrução try. E se uma exceção for gerada, possível verificar a instrução except e executar esse código se houver uma correspondência. Como todo o resto em Python, exceções são simplesmente objetos de uma determinada classe. Eles são todos uma subclasse da classe interna de exceção base. Se você quiser criar sua própria exceção, simplesmente classe criativa que herda da exceção, que já herda da exceção base. E por exceções de convenções e com erro. A declaração de corrida pode ser usada para criar explicitamente uma exceção. Finalmente, vamos dar uma olhada na seção de entendimento. Temos cinco perguntas para hoje. Lembre-se que essas são, esta seção é praticamente a seção mais importante porque é onde realmente aprendemos o que estamos vendo na seção de aprendizado quando agimos e, na verdade, fazemos essas perguntas. Então, boa sorte com estes. E se você tiver alguma dúvida, sinta-se à vontade para publicá-las na seção da comunidade no chat, e estaremos ativos lá. Mas de qualquer forma, te verei de novo amanhã. 26. Dia 23 - Módulos e Biblioteca Padrão Python: Bem-vindo ao Dia 23. E vamos dar uma olhada nos objetivos de hoje. Primeiro, vamos começar procurando quebrar crenças limitantes. Então vamos começar a procurar módulos, a biblioteca padrão Python, apologistas como quadrinhos Python. E então, para olhar principalmente não reinventando a roda. Vamos pular direto para a seção de aprendizado. Quero dar um segundo para que você saiba que você está codificando agora, hoje é a última lição de conceitos reais. E depois disso, você estará pronto para dar um projeto para usar isso para conectar os pontos do que estamos aprendendo até agora. Parabéns por ter vindo até aqui. Eu realmente admiro o compromisso de voltar e chegar a este ponto. Se você costumava pensar consigo mesmo, não consigo aprender a codificar. Essa foi uma de suas crenças limitantes. Então você se provou oficialmente, acho que é muito emocionante provar que estamos errados quando se trata de crenças limitantes. Então a pergunta começa a se transformar em, em que outras crenças limitantes você quer quebrar em seguida? Por enquanto, vamos nos sentar em nossa última lição conceitual que estamos falando de módulos. O módulo é simplesmente um arquivo que contém objetos Python desde variáveis até classes e funções. Você pode importar um determinado módulo o script Python e, em seguida, poder usar tudo nesse módulo em seu script sem a necessidade de reescrever qualquer código ou ter que reinventar a roda. Para começar, vamos analisar como importar nossos próprios módulos sass de arquivo main.py. Vejamos esse exemplo. Temos esse arranhão para não pi, e então temos uma função. E temos algumas aulas aleatórias aqui. E então temos algum código que bronze sempre que um script é executado, e em vez de executar scratch dot py. Então, se fôssemos executar esse código veria correr riscado Pi. E então esse seria o código inteiro. Acontece que podemos importar este é o conteúdo desse arquivo para os objetos desse arquivo para um arquivo separado usando a instrução input, simplesmente chamando o zero o outro nome de um arquivo. Se estiver na mesma pasta, podemos importar o zero dois. E agora aqui podemos simplesmente chamar o conteúdo do Scratch para, por exemplo, ainda para funcionar. Poderíamos chamar isso e depois dizer, por exemplo, imprimir zero dois em T2. E então vamos adicionar dois ao número cinco, porque podemos ver que a função U2 simplesmente retorna o argumento mais dois. Estávamos dizendo que imprimimos o item que é retornado daquele em duas funções que é chamado a partir desse arquivo importado, importado. Vamos ver o que acontece aqui. Quando executamos isso. Vemos correr zero a ponto py e vemos o número sete. Então, basicamente esperávamos apenas um número sete porque se estivermos apenas executando esse código, esse travamento dois, só esperamos que o número sete saia. Por que esse ponto de arranhão t2 ou scratch to dot py surgiu quando executamos esse código, apenas esse código. O problema é que sempre que importamos um arquivo, esse arquivo realmente é executado. Esse arquivo realmente seria executado onde quer que seja importado. É por isso que marca e imprimiu sprint. Então ele imprimiu essa frase que tínhamos no arquivo Scratch to dot py. Então, como lidamos com isso? Acontece que, por convenção, há uma maneira de lidar com isso e entre digitá-lo. E então vou explicar como funciona, mas é praticamente da seguinte maneira. Então, se o nome for igual a principal, então, queremos executar o main. A função principal. Principal. Ele será igual a qualquer código que estamos executando neste arquivo. O que isso significa? Estamos basicamente criando uma função adicional chamada função principal. E estamos adicionando o conteúdo principal do arquivo. Então estamos dizendo que se o nome é igual ao principal, então execute main. O que é esse nome, coisa de nome? O que é isso? Acontece que é um atributo do arquivo em si sempre. E isso é apenas um desses, um exemplo. Vou executar este arquivo e vou imprimir o nome da impressão. Quando o executamos, vemos tudo bem, nome da impressão, vemos que é principal. Portanto, o nome é igual ao principal, então é por isso que ele imprime o nome sprints main e, em seguida, ele executa o surdo, a função de domínio também. Mas acontece que quando executamos a função de um arquivo separado, neste exemplo, quando você traz daqui, quando executamos o scratch D2, vemos que não obtemos a função impresso na tela, mas, em vez disso, ficamos arranhados para imprimi-lo na tela porque foi isso que essa declaração de impressão fez. Esta instrução de impressão custa para este ponto scratch t2 para imprimir porque o atributo name será diferente se executarmos esse script diretamente ou se o executarmos a partir de uma instrução de entrada. Então, agora, se eu remover essa declaração daqui. E deixo essa afirmação como esta como uma função principal def. E então, se o nome principal for igual ao principal, execute main, então sempre que eu executar isso veremos o resultado esperado, que é apenas o número sete. Mas apenas para manter a convenção atualizada e garantir que estamos mantendo a convenção do que estamos executando. Vamos executar o nome igual ao principal novamente aqui porque também queremos executar o main. Então, aqui em cima, vamos definir o principal. E o que vamos fazer, o script real que estamos tentando executar aqui. Ok, então agora se eu salvar isso e executá-lo, ele será executado com sucesso porque sempre que eu executo diretamente, se o nome for igual ao principal e então ele executará a função principal. E então ele chamará o script importado, que também é riscado. Mas ele não executará o código principal do Scratch porque o envolvemos na convenção certa. Agora vamos dar uma olhada na biblioteca padrão Python. Biblioteca padrão Python. Então, biblioteca de módulos que vem com a instalação do Python. A biblioteca tem módulos com código muito útil. Por exemplo, há um módulo para analisar arquivos CSV, para registrar solicitações de URL, análise JSON em muitos outros outros. Vamos começar com um exemplo de um módulo chamado time. Depois de importarmos o módulo, temos tudo disponível para nós através dessa importação. Podemos ver através desse preenchimento automático abreviado que obtemos um monte de coisas, facilitá-lo para nós. Vejamos o exemplo da função de sono. Vamos passá-lo no número três. Em seguida, temos um feno de impressão e depois imprimimos lá. Então nós executamos isso. Veremos que ele imprime, ei, ele espera por três segundos e eles imprimem carimbar a função de suspensão como uma função de exemplo que importamos o módulo de tempo e, em seguida, usamos a função de suspensão para ter um código de suspensão por três segundos ou quantos inserimos na função. E então outro exemplo é uma função de hora local, que quando executamos, quando imprimimos o que recuperamos dela, quando a executamos, obtemos algumas informações sobre a hora local, para exemplo, no ano de 2021. E depois obtemos mais informações sobre o horário localmente. Essa instrução, o tempo de importação, importaria todo o módulo. Para importar uma função específica do módulo que usamos desde o tempo de importação de suspensão, por exemplo. Então, aqui, a vantagem desse recorte de entrada é que aqui não teríamos, não precisaríamos adicionar a especificação de tempo. Então, poderíamos apenas dizer dormir imediatamente porque temos isso disponível para nós. Agora, quando executarmos isso, veremos o que recebemos um erro. Obtemos um tempo não definido porque o tempo não está definido. Então, precisaríamos remover a hora daqui, mas a hora local também não está definida. Se fomos importar a hora local também, várias funções diferentes que poderíamos usá-la assim separadas por uma vírgula. Agora obteríamos o mesmo resultado de antes. Outro exemplo de um módulo é o módulo aleatório. E então vamos usar, o que não seria do nanomolar, seria importar aleatoriamente. E então também podemos fazer conjuntos Alia para o que importamos. Podemos dizer entrada aleatória como Rand, se quiséssemos. Então agora temos essa abreviação aleatória. Em vez de ter que fornecer aleatoriamente. Por exemplo, podemos ter minha lista através de um exemplo e dizer a, B, C. E então há uma função no módulo aleatório que é chamada shuffle. Assim, poderíamos fazer aleatoriamente ou rand shuffle e depois passá-lo na minha lista. E então vamos imprimir minha lista e ver o que obtemos. Recebemos um cdb. A função shuffle do módulo aleatório irá embaralhar todos os itens na variável que passamos. Nesse caso, passamos em uma lista. Quando ela pega nessa lista, embaralha os itens e, em seguida, ele muda ou atualiza para isso, mas os novos itens embaralhados. Portanto, é HTTP em vez de ABC. Nós também poderíamos usar o LES da seguinte maneira que poderíamos fazer a partir de importação aleatória, importar, embaralhar. Isso é um tiro. Então, aqui, não temos definido aleatoriamente. Nem sequer temos nítido, o shuffle definido. Vamos usar definido de forma nítida. E então execute isso de novo e veja o que recebemos. Nós obtemos a, b, c porque descobriu-se que era uma saída aleatória, mas depois obtemos um CB, depois BCA, você pode ver como estamos embaralhando lista que passamos na reunião. Há outra maneira de importar tudo do arquivo aleatório. Podemos dizer a partir de importação aleatória, importar tudo, que é uma estrela de aleatoriamente importante de todos. E isso significaria que podemos fazer referência cada item no módulo Random. Poderíamos referenciá-lo imediatamente sem ter que fazer referência a mais nada. Você pode salvar embaralhado porque ele já foi importado, então poderíamos executar isso e isso funcionaria bem. O problema com a declaração import all é que não queremos usar, não queremos usar isso e é perigoso, perigoso usá-lo porque podemos ter conflitos com o que temos já definido em nossas funções que já temos em nosso código. Uma última coisa a mencionar sobre módulos ou pacotes é que eles são pacotes que você pode baixar online. Na verdade, uma das maiores vantagens de aprender Python, que, como ainda é popular e poderoso ao mesmo tempo, muitos desenvolvedores em todo o mundo escreveram incrível bibliotecas com módulos que você pode baixar para fazer coisas incríveis sem ter que escrever o código pesado por conta própria ou ter que reinventar a roda. Assim, você pode realmente procurar pacotes on-line, módulos que têm muitas funções e funcionalidades que você poderia usar sem reabilitar para reinventar a roda. Alguns exemplos ou alguns pacotes de aprendizado de máquina são alguns pacotes de estatísticas que você poderia usar. As coisas realmente interessantes por aí, tenham acesso às bibliotecas públicas. É tão fácil quanto usar um gerenciador de pacotes para baixar essas bibliotecas e usá-las em seus scripts. Este exemplo, vou usar o pip, que deve vir com a instalação do Python. Então, no meu caso, você pode tentar pip na minha cara é PIP3, para que você possa percorrer por nós também. Vou dizer que pip3 instale pandas, que é um módulo de dataframe muito famoso . Eu baixei pandas e agora eles baixaram isso significa que posso referenciá-lo no meu script. Posso salvar pandas. E agora eu tenho todos os, todos os geralmente usados como SPS. Posso dizer PS. E agora tenho tudo a partir desse módulo disponível para o meu script. Portanto, há um exemplo de como você baixaria um módulo público usando o Gerenciador de Pacotes e, em seguida, usá-lo em um de seus scripts. Mas suíte por enquanto, vamos fazer uma recapitulação. Hoje foi a última lição conceitual para o curso que você está codificando agora, você fez, você chegou até agora, então parabéns. Os módulos são usados em Python para aproveitar o código que já foi escrito e evitar reinventar a roda ou reescrever código ou ficar seco com uma codificação para que não se repita. Você pode inserir seus próprios arquivos dot py como módulos para importar qualquer módulo quando a biblioteca padrão Python, que foi instalada quando você instala Python ou três, você pode instalar módulos escrito por outros desenvolvedores em todo o mundo e, em seguida, importe-os usando eles em seus scripts. Cada script tem um atributo name. Quando você executa um script diretamente, esse atributo será igual à string main. E quando você importa um módulo, esse arquivo de módulo estará sendo executado com o atributo name igual ao nome do script. Como toda vez que importamos um arquivo dot py tem um módulo, o arquivo é executado. Usamos o nome if igual à sintaxe principal, conforme escrito no código principal do script sob a função que chamamos de main by convention, existem várias maneiras de importar dependendo da finalidade do que é sendo importado, você pode importar o nome do módulo ou do objeto do módulo de entrada do nome do módulo, ou do nome do módulo importar tudo o que o último não é recomendado. Você pode usar aliases usando como meu SUD ou usar o pip três para baixar módulos de instalação em todo o mundo. Isso é o que eu mencionei antes. Então você obtém run pip em sua linha de comando e diz pip instale o módulo que deseja instalar, para instalar a partir da biblioteca. E, finalmente, olhamos para a seção de entendimento. Fizemos três perguntas para hoje. Sinta-se à vontade para fazer quaisquer perguntas que você possa ter sobre elas na seção da comunidade ou na seção de bate-papo, porque estaremos ativos lá. E se não, boa sorte com estes de qualquer forma. E te vejo novamente amanhã para começar com o projeto. 27. Dia 24 - Projeto - Python Learning App (1/5): Bem-vindo de volta meu amigo no dia 24. Vejamos os objetivos de hoje. Então, hoje queria ser o primeiro dia do projeto. Então, vamos começar baixando o projeto do GitHub. Em seguida, vamos examinar mais alguns contextos dos arquivos de projetos. E então vamos ver algumas técnicas, algumas técnicas úteis do conceito que já conhecemos, mas algo ou algumas novas maneiras que podemos aproveitar esse conhecimento que já temos algumas técnicas úteis para o projeto especificamente. Portanto, nosso projeto final será um aplicativo Python, que será um aplicativo de teste, que estaremos executando através de nossa interface de linha de comando, que também chamamos de nosso terminal. É um aplicativo que irá questioná-lo sobre o conhecimento que você tem sobre o que quiser. E neste caso, vamos fazer em nosso conhecimento Python, você será capaz de praticar nossas técnicas ativas de recall. Seremos capazes de praticar nossa repetição espacial e tudo isso com o objetivo de lembrar tudo o que aprendemos, o conceito da estrutura do aplicativo permitirá que você teste você mesmo com qualquer tópico sobre qualquer pergunta que você vincular, e ele manterá uma pontuação para que você saiba quais tópicos precisam mais atenção e o que você precisa examinar mais detalhadamente. Então, vamos examinar o aplicativo por enquanto para baixar os arquivos que precisaremos para o projeto. Vamos para o GitHub.com. Aqui. Aqui você vai procurar. Você olha para a busca do GitHub, você vai procurar por magnético. Aprendizado Python. Github é simplesmente um lugar onde as pessoas podem compartilhar o código ou você pode pensar nisso como um patriota. As pessoas podiam compartilhar seu código em todo o mundo. Então aqui você pode ver que, se você for para a facilidade cognitiva, meu repositório e, em seguida, o repositório de aprendizado Python, que significa repositório. Aqui você pode ver há um README que com uma descrição de como o projeto ou como o script Python funciona. Então o que vamos fazer é que vamos baixar o arquivo como um arquivo zip. Então você vai clicar aqui, isso vai baixar o zip. E então você vai abrir esse SIP. O solo abre a pasta Python. E agora você verá que você tem três arquivos JSON diferentes. Um ponto p-y, o arquivo principal, os scripts principais e, em seguida, um leia-me, o arquivo README mais simples que você está, que você está vendo aqui embaixo. Este é o arquivo leia-me, apenas uma página de boas-vindas e uma explicação do que o script faz. Então você tem o arquivo principal, que é o projeto principal com o qual vamos trabalhar. E então temos esses três arquivos JSON, que são os dados que vamos usar para armazenar as perguntas, os tópicos e o arquivo de pontuações anteriores. Então, quando abrimos esse arquivo, o arquivo principal ficará com isso. Quando executarmos este Python três principais, veremos que nosso aplicativo está sendo executado. Então, você verá bem-vindo ao seu novo aplicativo de aprendizado Python. Selecione um tópico para revisar e você será solicitado ao México dez perguntas por corrida. Então, boa sorte. E este é o aplicativo principal. Agora, como isso funciona é que simplesmente você seleciona um número do tópico que deseja revisar. Vamos fazer um por enquanto. Então você gostaria, estaria selecionando o tópico de strings que tem duas perguntas, será devido uma e Enter. Vamos ser perguntados, seremos rápidos, ok, uma das duas perguntas e o que não aprende a função? Eu sei por enquanto que a função Len retorna o comprimento de um objeto passado para ele. Vamos ver, vamos dizer C ou C. Isso está correto. Bom trabalho. E, em seguida, pressione qualquer tecla para continuar. Vou pressionar Enter e depois continuar para a próxima pergunta. Então, pergunto rápido também para explicar a seguinte afirmação. Impressão. Ok, é auto-formato. É uma função de formato. Eu sei que vai ser, digamos que um salvaria que está correto. Bom trabalho. Pressione qualquer tecla para continuar. E então me diz inacreditável que você marcou 100% e, em seguida, digite sim, para executar o aplicativo novamente, insira qualquer outro q para sair. Vou dizer sim para executar o aplicativo novamente. E vou ver que a pontuação anterior para o tópico string, strings é preenchida agora é 100% agora porque eu fiz isso da última vez no Xcode um 100%. É assim que o script está sendo executado. E agora você pode ver que você pode correr e você pode brincar com isso como quiser. Digamos, por exemplo, agora seis, eu quero a seção tudo. Isso reúne perguntas de todos os tópicos e reúne um número aleatório de dez perguntas. Então você pode ver, vamos ver aqui que queremos salvar o último item de uma string da lista que seria B. Isso está correto. Bom trabalho. Eu só vou estar lá vai ser um novo, está correto. Bom trabalho. Hum, haverá fazer algumas cartas aleatoriamente. Você quase conseguiu. A resposta correta foi, e ela me diz a resposta correta quando faço errado. Você está quase protegido pela pergunta de truque a resposta correta. O que é o imutável? Certo. Só estou fazendo isso aleatoriamente aqui. Estou errando porque estou fazendo isso aleatoriamente. E vamos ver, você marcou 40% e, se eu fizer sim novamente, quero tentar novamente, depois ultrapassou 40% aqui. E se eu tentar novamente no 100, isso repovoará isso em um 100 e como o acorde anterior. Mas agora você pode ver mais ou menos como o aplicativo se ramifica, e isso é praticamente o que pretendemos fazer. O que você vai fazer agora é que você vai fazer, você vai olhar para o script principal do Python, selecionar tudo e excluí-lo. Porque isso provavelmente é um dobro vai estar trabalhando com. Então a pergunta é arquivo, você vai usar isso, vamos usar isso, bem como o arquivo de tópicos e assim como o arquivo de pontuações anteriores, que no início estava vazio, um string JSON vazia. O que eu pedi para você fazer agora é brincar com os scripts antes de excluir o conteúdo, brincar com o script. Então você sabe o que é, qual é a funcionalidade disso. Porque, por exemplo, uma outra funcionalidade que temos é que toda vez que você faz a pergunta, por exemplo, se eu fizer um tópico contra strings, essa ordem do ABC é aleatória. É sempre como um pedido diferente. Esse é um bom exemplo de algo que não funciona. E, em seguida, outra funcionalidade que ele tem é que um máximo de dez perguntas. Por exemplo, uma seção tem mais de dez perguntas , como a seção tudo. E fiz tudo o que disse que fiz antes, só faria um máximo de dez perguntas. Isso é outra coisa a ter em conta, sempre aleatoriamente também, que seleciona sempre questões aleatórias e sempre em uma ordem aleatória de a, B, C e D. Então, leve algum tempo para familiarize-se com o roteiro. Agora você sabe como funciona. E também passe pelo README, passa pelo arquivo README ou no repositório, você pode vê-lo mais legível. Percorra o arquivo Leia-me legível e, em seguida, você entenderá mais sobre a funcionalidade do código e onde estamos tentando mirar. Então, antes de tudo, como lemos um arquivo? Bem, já falamos sobre ler arquivos e agora vou mostrar como podemos trabalhar com um tipo de arquivo muito comum na programação chamado JSON. Json significa JavaScript Object Notation. E podemos pensar nesses arquivos como se estivéssemos olhando para um dicionário Python. Então, vamos dar uma olhada no arquivo JSON de perguntas, por exemplo. Podemos ver como é muito semelhante a um dicionário Python. Podemos ver agora que a chave seria esse número um. Então, o valor dessa chave seria tudo isso dentro dos colchetes. Então, dentro desses colchetes encaracolados, que é um dicionário de si mesmo, teríamos chaves diferentes. Portanto, tópicos, opções de perguntas, responda como chaves diferentes e, em seguida, cada chave com um valor diferente. Portanto, esse valor seria lista. Por exemplo, esse valor seria string. Esse valor seria outro dicionário. Assim, podemos ver que temos um dicionário dentro de um dicionário, dentro de um dicionário principal. Então, um JSON strings que começa aqui e termina todo o caminho aqui em baixo como um colchete encaracolado. Então, é praticamente, podemos pensar nisso como um dicionário Python. Nesta pergunta é arquivo, podemos ver que uma pergunta tem os tópicos, cadeias de caracteres, listas, dicionários e, em seguida, pergunta, a questão real que é uma não empresta função faz, e então as diferentes opções que temos, as diferentes opções ABC. E então, claro, precisamos da resposta. Precisamos da opção certa para a resposta certa, que é a letra a. Mas no programa real quando ele é executado, ele realmente embaralha essas respostas e entende a inteligência, que é a resposta correta. Bem, como realmente melhoramos? Como realmente carregamos o conteúdo desse arquivo em nosso script principal? O que fazemos aqui, o que fazemos ou o que usamos aqui é a importação, a biblioteca JSON, que está na biblioteca padrão Python. Portanto, não precisamos baixá-lo, o que simplesmente o importa para o nosso arquivo. Portanto, para usar a biblioteca Import the JSON, nós a usamos da seguinte forma. Se eu estivesse, por exemplo, na largura da pasta meu, meus arquivos que eu quero ler. Eu iria para esta pasta e, em seguida, usaria na instrução importar JSON. E então eu faria com aberto como vimos na outra seção. Vamos fazer tópicos, por exemplo, o arquivo de tópicos. Vamos dar uma olhada no arquivo de tópicos. É simplesmente uma largura de dicionário, cinco chaves e valores phi. Dicionário muito simples. Vejamos os tópicos JSON, arquivo JSON como objeto de arquivo. Em seguida, simplesmente usamos, vamos fazer as instruções de impressão e usamos a biblioteca JSON. Usamos a função load e a passamos no objeto de arquivo. Vamos realmente chamar isso. Em vez de imprimi-lo imediatamente, vamos chamar esse arquivo de carregamento de JSON. Objeto de arquivo de carregamento de pontos. Agora, quando imprimimos, quando imprimimos o carregamento do arquivo, vemos que ele tem o conteúdo do arquivo como um dicionário. Porque quando imprimimos o carregamento do arquivo de tipo, vemos que é um dicionário. Então, outro exemplo que será útil para usarmos hoje seria a função de despejo JSON. Como este funciona é que usaremos, por exemplo, com aberto. Vamos usar as pontuações passadas neste curso, e então vamos passá-lo na opção W, o W, que nos permite escrever no arquivo. E então eu quero dizer objeto de arquivo. E então vamos dizer k JSON dump. Então vamos dizer que o carregamento do arquivo, que faz referência ao carregamento de arquivo anterior que tínhamos, nós tínhamos afirmado. Em seguida, vamos dizer objeto de arquivo. Então, quando lemos as pontuações passadas para a linha. Na verdade, eu ainda preciso fechá-lo aqui. E como objeto de arquivo para linha no objeto de arquivo, imprima a linha. E inesperado, acho que vai faltar parênteses. Claro, imprima o objeto de arquivo que não está definido. Continue fazendo objeto. Podemos ver que ele tem o conteúdo que esperávamos porque inserimos no arquivo. Também vamos usar uma função chamada shuffle da importação do shuffle da biblioteca aleatória, desculpe, aleatória. O que essa função faz? E nós vimos isso no passado em uma seção de passagem. Mas o que essa função faz é que, se tivermos uma lista, temos B, C e D. Digamos. Então dissemos, dissemos aleatoriamente, embaralhamos minha lista ou passamos na minha lista. Então, quando imprimirmos nossa lista será embaralhada. Então BAC d, ele toma um argumento como um argumento terrível e retorna uma versão embaralhada desse objeto. Outra função útil para saber é uma da biblioteca do sistema operacional. Importamos a biblioteca do sistema operacional. E então, quando fazemos o sistema SO, isso é como se estivéssemos inserindo ou enviando para a linha de comando ou instrução. Se nós limpássemos aqui, a tela limparia esta. O que essa afirmação faria é que, se fizermos o sistema de entrada, ele passará em qualquer string que você passar para a função do sistema. Ele passará para a tela como se fosse, como se estivéssemos chamando isso nós mesmos. Se dissemos a função clara, ela limpará a tela para nós. Então, faremos o equivalente a este. Veja se estávamos indo claro. Mas isso seria, isso funcionaria para o sistema Mac OS. Se você tivesse um sistema operacional Windows, usaria o sistema SO. Em vez de claro, você usaria o CLS. No nosso caso, o comando não foi encontrado porque isso não funciona em uma ópera e em nosso sistema operacional. Mas se você tiver um sistema operacional Windows, TLS funcionaria para essa opção. A última que vamos examinar, a última técnica que vamos examinar. Que se quiséssemos sair do nosso programa, se quiséssemos sair, se estivermos executando um código e quisermos sair ou sair do código, correremos Uma exceção de uma exceção muito específica que é chamada de saída do sistema. Nesse caso, não funcionará. Ele não funcionará no ambiente do iPython como esperamos. Mas quando você levanta um sistema, saia do código. Por exemplo, vamos encontrá-lo. Então. Saia. Quando você o levanta em seu código, ele sairá do programa. Então, sempre que você vir aqui, vamos executá-lo novamente. Sempre que você vir Q entrar, isso é realmente chamar o sistema de corrida, a exceção de saída do sistema e está saindo do programa. Então é assim que isso está funcionando. Foi isso para as técnicas de hoje. E isso deve ser suficiente para nos levar a ir e nos controlar o que estamos tentando chegar para o nosso projeto final. Impressionante, então vamos fazer uma recapitulação agora. Primeiro, vimos que baixamos o arquivo zip do GitHub e analisando o repositório de aprendizado Python, repo significa repositório. Em seguida, vimos o arquivo README. Como as informações úteis sobre a funcionalidade do projeto? E o projeto tem três arquivos JSON de pontos, mas os dados relevantes para o projeto e um ponto py, que é o arquivo principal com o script real. Também vimos que JSON significa JavaScript Object Notation, e podemos pensar nisso como o equivalente a um dicionário Python. Em seguida, vimos as perguntas pontuam o arquivo JSON que tem uma amostra de perguntas a serem feitas pelo aplicativo de aprendizado. Poderíamos até adicionar mais perguntas a esse arquivo e elas seriam incluídas no Python broaden ou no script Python. E, finalmente, vimos algumas técnicas úteis. Vimos a instrução import JSON para importar a biblioteca json. Vimos a função load para carregar um objeto de arquivo e resolvemos a função de despejo da biblioteca JSON também para despejar um dicionário em um objeto de arquivo. Também vimos essa importante biblioteca aleatória ou aleatória e vimos a função da bilirrubina aleatória que poderíamos passar em uma lista para sermos embaralhados. Em seguida, vimos que a biblioteca do sistema operacional e como poderíamos usar a função do sistema para limpar a tela tanto para Mac quanto para Windows. E, finalmente, vimos como poderíamos levantar uma exceção de saída do sistema para sair do programa e deixá-lo parar de funcionar. E agora vamos dar uma olhada na seção de entendimento. Por hoje. Eu queria baixar o projeto do GitHub e executar o projeto e brincar com a forma como o projeto bronze e pensar sobre como os arquivos de dados ou os arquivos JSON de ponto de broto são úteis para executar o script. Exclua também o conteúdo do arquivo main.py e comece a fazer perguntas sobre como você iria programar isso sozinho. E começaremos a codificar juntos amanhã. Então, boa sorte com essas postagens. Qualquer dúvida que você possa ter no chat. Novamente, começaremos a codificar o programa começará a codificar o projeto final amanhã. Vejo você amanhã. 28. Lição 25: Bem-vindo a outro dia. Certo, você definitivamente continua matando isso. Quero parabenizá-lo por ter chegado até aqui no curso. Estou falando sério quando digo que maioria das pessoas nem chega perto desse ponto. E isso muito diferente, o que faz você se destacar da grande maioria das pessoas que simplesmente decidem desistir cedo. Consistência é uma habilidade que você melhora ao longo do tempo. E isso é exatamente o que fizemos aqui. Quero dizer que agradeço você por estar aqui. Como você sabe, hoje é tudo sobre descansar e revisitar todas as lições anteriores sobre tópicos que achamos que poderíamos internalizar um pouco mais. Também vou aproveitar esse tempo para lembrá-lo de algumas das chaves para aprender. Para consistência. É exatamente o que estamos fazendo. Voltando a cada dia. Todos os dias você constrói mais impulso. Pense nas coisas como treinadas que podem ser difíceis de começar, mas uma vez que está se movendo, a coisa difícil se torna interrompida. Para repetição de espaço. Revise o que você aprendeu espaço ao longo do tempo, através do recall ativo, um excelente exercício para o cérebro. Combine isso com algum descanso e recuperação de qualidade e você estará esmagando a curva de esquecimento em pouco tempo. Finalmente, para perguntas ou respostas, tenha a mente aberta, curioso e aborde o aprendizado e exercícios diários com a mente do iniciante. Há sempre um novo caminho pelo qual não percorremos. Se você acha que cobriu todos eles, pense novamente, espero que você tenha um bom descanso e eu te vejo de volta amanhã. 29. Dia 26 - Projeto - Python Learning App (2/5): Bem-vindo de volta ao dia 26, e este será o primeiro dia de codificação no projeto real, o projeto final. Vamos dar uma chance. Depois de baixar os arquivos do GitHub, você deve estar olhando para algo assim. Você tem o arquivo de perguntas, arquivo de tópicos, o arquivo principal anterior e, em seguida, o arquivo main.py principal deve estar vazio porque deve excluir tudo nele. E é isso que vamos fazer para o projeto final. Então, para começar, vamos começar escrevendo a definição da função principal ao escrever essa configuração, ela se parecerá com isso. E então dentro da função principal é onde começaremos a escrever nosso código. A primeira parte do código que vamos escrever É uma função para carregar os arquivos, carregar os dados da pergunta Jake JSON, estados de tópico no córtex passado, que vai parecer algo assim. Eu adicionei a string doc à função principal que diz que executa o código principal. Em seguida, adicionei uma função, uma função que carregará os arquivos JSON. E então eu passo os três arquivos com as três strings dos arquivos de nome, três strings com os nomes dos arquivos. Em seguida, ele retorna as perguntas, tópicos e passa o curso em dicionários para essas variáveis. Qual seria a carga? A definição da função carregar arquivos JSON. Bem, a função vai parecer algo assim. Definimos o arquivo JSON. Portanto, a função de carregar arquivos JSON. Em seguida, temos uma entrada arbitrária de nomes de arquivos. Assim, podemos inserir qualquer número de nomes que quiséssemos, e ele seria transformado em uma lista no nome do arquivo. É o que fazemos aqui embaixo. Criamos uma lista vazia com as cargas resultantes e , em seguida, percorremos a lista de nomes de arquivos. E abrimos cada arquivo como um objeto de arquivo e, em seguida, fazemos um carregamento atual é uma carga json da função load JSON load do objeto de arquivo. Em seguida, adicionamos a carga atual na lista de cargas resultantes e a retornamos. Ouça o fim. Observe aqui como importamos a biblioteca JSON. Poderíamos usar uma função de carga json. Novamente, quando retornamos uma lista, podemos ver aqui em baixo na função principal que descompactamos essa lista também. Se inserirmos três arquivos, esperamos três saídas nessa lista. E é por isso que isso funciona. Então, aqui em baixo, depois de carregar os arquivos nessas novas variáveis, queremos ter todos os dados compilados. Vamos ver essa nova variável de dados compilados. E vamos criar uma função chamada criar dados compilados que usa as perguntas, tópicos e dicionários do curso como entradas. E, em seguida, ele gera dicionário de dados compilado. Como será essa função? Então, subimos aqui e criamos uma nova função chamada compilada. Criar dados compilados é passado nas perguntas, tópicos e curso de aprovação. Então, vamos ver o que essa função faz. Leva perguntas, tópicos e passe o curso todos os dicionários. E essa função, o que ele faz é que ele cria dados compilados a partir do conteúdo carregado dos tópicos de perguntas e arquivos de senha. O primeiro passo que fazemos é criar um dicionário vazio. Então, literalmente, o primeiro passo que fazemos é passar por este dicionário, que o dicionário de tópicos passa pelo número e pelo tópico e apenas acrescentar os dados compilados, o número e, em seguida, adicionar um dicionário como o valor com o tópico, com o nome do tópico. Esse é o primeiro passo que fazemos. Em seguida, criamos esse adicional, adicional. Então, analisávamos o comprimento dos dados compilados e adicionamos um e criamos uma string a partir dele. E adicionamos esse campo adicional chamado, que tem o tópico como Oldfield. Este é um campo que terá todas as perguntas e não será restringido pelos tópicos individuais. Mas teremos uma lista abrangente de perguntas. Quando olhamos para a tela de saída que o projeto possui, podemos ver que ele tem a lista de tópicos e, em seguida, tem uma categoria nula. Pensamos que as perguntas foram inseridas nele. Isso é praticamente o que os dados que estamos tentando obter nos dados compilados, estamos tentando obter o número da ideia do tópico. Estamos tentando obter o tópico, o número de perguntas, as pontuações anteriores e, em seguida, a lista de IDs de perguntas anexadas a cada tópico. Então é isso que estamos recebendo aqui em baixo. Obtemos, criamos um valor de dados com as IDs de perguntas como uma lista vazia. Estamos analisando a chave de dados individual e o valor dos dados nos itens de dados compilados. E este foi um dado compilado novamente, lembre-se de que foi o primeiro dicionário que criamos. O que estamos tentando chegar aqui é que tentamos preencher a pergunta Id é 40 para cada tópico. No começo, o que fazemos é fazer uma declaração if de que vai se o tópico não for igual a o, ele faz alguma coisa e se for igual a o iria correr para esta declaração else e ele executará outra coisa. Então, vamos ver o que ele faz, aqui em cima. Se não for igual a todos, o que ele fará é olhar para os itens da pergunta. Analisaremos todas essas perguntas, essas perguntas como dicionário e pares de chaves e valores. E então ele vai ver se o valor dos dados, se o tópico estiver vendo os tópicos de valor. O tópico que estamos investigando agora está nos tópicos da questão. Em seguida, ele será anexado, ele anexará os dados à sua lista de Id de pergunta, que começou como uma lista vazia. Ele anexará a chave dessa pergunta. O que estamos recebendo aqui praticamente como uma lista do tópico com uma lista de configuração de ID de pergunta relacionada a esse tópico. Por exemplo, strings teriam a pergunta I D número um porque ela está incluída nesse tópico. Finalmente, se for uma instrução L, portanto, se não estiver na seção O, simplesmente não filtra nenhum tópico, pois inclui todas as perguntas. Então, ele passa pelos itens da pergunta e simplesmente anexa todas as chaves a essa chave de ID de pergunta a esse valor de dados. Isso é o que acontece neste loop for-loop. E, finalmente, analisamos o valor dos dados, a contagem de perguntas e adicionamos a duração da contagem de IDs de perguntas para obter o total nessa categoria. E, finalmente, adicionamos o curso passado. Obtemos a pontuação do passe dos dados deste. Quando está vazio ou simplesmente inserindo nesse campo de pontuação anterior. Em seguida, ele finalmente retorna os dados compilados. Isso é o que nós temos aqui em baixo. Um theta compilado. Se eu fiz aqui, se eu executasse dados compilados impressos, salvei isso, então executo isso. Vejamos como isso parece. Está meio bagunçado agora. Mas você pode ver que ele tem, por exemplo, uma chave, que é o número um é a chave. E você pode ver o tópico. O tópico é strings e , em seguida, ID da pergunta ID do usuário número um na questão ID número oito. Porque se fôssemos para as perguntas, veríamos que a pergunta número um tem cadeias de caracteres nele e, em seguida nenhuma delas tem string nele até o número oito, que também tem os tópicos Scoring Strings nele. Essa seria a lista de perguntas que eu acho relacionada a esse tópico. Finalmente, você tem os IDs de pergunta reais. Então, novamente, você tem cadeias de caracteres, o ID da pergunta é 18 e, em seguida, a contagem de perguntas seria igual a duas porque esse é o número de perguntas que ele tem na pontuação anterior é igual a não. Em seguida, número dois. Portanto, o número principal dois são os tópicos. Ele terá o tópico da lista do que o ID da pergunta é 10041011. E você pode ver como ele dá a volta. Agora temos um dicionário com os dados compilados. Então esse era o objetivo de hoje. Os principais objetivos de colocar esse dicionário de dados compilados em vigor. Foi isso para a parte principal de hoje do projeto. Portanto, certifique-se de dar uma olhada nesses loops para se certificar de que você entende o que está acontecendo aqui. Como você importa os dados, como você carrega os dados e, em seguida, como o dicionário de dados compilados é criado. Então, boa sorte e publique quaisquer perguntas que você possa ter na seção da comunidade. Estarei ativo lá. E de qualquer forma, te verei de novo amanhã. 30. Dia 27 - Projeto - Python Learning App (3/5): Bem-vindo ao Dia 27. Então, hoje será o segundo dia ou o 31. Dia 28 - Projeto - Python Learning App (4/5): Bem-vindo de volta Hoje 28. E onde paramos com o projeto foi que solicitamos que o usuário insira o ID do tópico. O próximo passo agora é criar uma instância de uma nova classe que vamos criar uma nova classe que será chamada de classe de quiz. Vamos criar o questionário escolhido, e ele será a classe de questionário com as entradas do ID do tópico, os dados compilados e as perguntas. Vamos subir aqui e vamos criar uma aula chamada quiz. E vamos adicionar a string de documentos que permanecerá representando um questionário com base nos dados compilados no tópico especificado. Agora vamos construir o construtor. O construtor terá o ID de auto-tópico compilado dados e perguntas como entradas. E, em seguida, ele inicializará a Instância do questionário. E, simplesmente aqui, selecionaremos o ID de tópico automático igual ao ID do tópico na forma como definimos os atributos da instância. Finalmente, aqui mesmo, aqui embaixo, randomizamos a pergunta embaralhada, duas perguntas a serem feitas. E aqui em baixo podemos ver a si mesmas perguntas para fazer. É um ID de tópico de dados compilado para o ID da pergunta. Então, temos a pergunta a fazer e, em seguida, simplesmente aleatorizamos ou embaralhamos as perguntas a serem feitas. Então, temos uma ordem aleatória para isso. Aqui. Podemos ver que ele não está definido simplesmente porque ainda não o importamos. Então, agora você só precisa importar aleatoriamente. E do lado do método init, teremos um método que executará o teste. Ele será chamado de teste de execução e será um método de classe para executar a instância do quiz e retornar a pontuação e o tamanho do intervalo ou o número de perguntas feitas. Então, aqui em baixo, criamos nosso método. Então, vamos começar com uma pontuação de 0. Então, começamos com isso. Em seguida, criamos o tamanho do intervalo, que será no mínimo dez. A duração das perguntas a serem feitas, porque não queremos fazer mais de dez perguntas. Em seguida, criamos um índice para um loop for-para o índice entre o intervalo desse tamanho de intervalo, que novamente será no máximo dez. Então, vai dizer, ok, a pergunta atual será das perguntas que vamos fazer com que a pergunta faça índice com esse índice. Em seguida, vamos limpar a tela para fazer uma pergunta. E então vamos executar as execuções da função de pergunta. Ele, executará e retornaremos verdadeiro ou falso para uma resposta correta ou incorreta. Se correto, aumente a pontuação em um. Então, se as perguntas feitas funcionarem, correto, se estiver correto, aumentará a pontuação em uma. E se estiver incorreto, ele simplesmente manterá o quadrado das cidades e , em seguida, dirá que insira qualquer chave para continuar. Finalmente, teremos a pontuação e o tamanho do intervalo retornados pelo, até o final deste método. Então, a próxima coisa que temos que criar uma pergunta DSP que será uma função. Então vamos dizer aqui, definir a função de pergunta feita e ela terá as seguintes entradas. Então pergunta, número da pergunta e total de perguntas. Portanto, o primeiro passo é criar uma lista vazia que será preenchida com as perguntas, opções e depois embaralhada. Então, aqui está o que ele vai fazer. Ele criará uma lista vazia popular com as perguntas, opções e depois embaralhada. Em seguida, criaremos uma tupla com suas primeiras sete letras do alfabeto. E então o dicionário de opções embaralhadas terá as opções na ordem aleatória. Em seguida, imprimimos o prompt de pergunta. Em seguida, imprimimos opções aleatórias para o usuário escolher. E então definimos uma resposta correta para o objeto de pergunta dizendo a resposta correta. E, em seguida, solicitamos ao usuário usando a função de entrada validada. E, em seguida, definimos uma resposta de usuário a partir das opções embaralhadas. E, finalmente, comparamos respostas para determinar corretas ou incorretas e retornamos verdadeiro ou falso, respectivamente. Finalmente, vamos até o final da nossa função principal. E vamos para essa linha de código apenas para executar o método de teste de execução da instância de teste escolhida. E ele retornará a pontuação e o tamanho do intervalo. Agora, se executarmos nosso código, podemos ver que chegamos à tela principal. Digamos que, digamos que dois para listas, insira duas. E agora podemos ver, ok, como fazemos uma cópia da lista? Podemos dizer que C vai dizer sim, correto. Bom trabalho. E perceba como está dizendo para questionar duas de um total de quatro perguntas, o que é uma maneira de remover? Deve ser B, o método pop, está correto, Bom trabalho qualquer chave para continuar. E então o que é a função length faz traz o comprimento ou retorna o comprimento. Vai ser B. Isso está correto. Bom trabalho. Finalmente, qual é o elevador selecionando o último item da lista que deve ser melhor, seja esse trabalho extra bom. Perfeito. Então, ele executou o teste com sucesso. Isso deve ser por hoje, pessoal. Muito obrigado por assistir. Se ainda estamos perdendo alguns passos, mas vamos revisá-los amanhã. E então, se você tiver alguma dúvida, sinta-se à vontade para publicá-las na seção da comunidade e verifique as etapas que fizemos para garantir que entendamos o que estamos fazendo. E te vejo de novo amanhã. 32. Dia 29 - Projeto - Python Learning App (5/5): Olá meus amigos e bem-vindos ao dia 29. Hoje, praticamente todos nós começamos com o projeto. Criamos todas as funções que precisávamos. Criamos a classe e o método e os métodos que precisávamos. E estamos praticamente todos prontos com tudo isso. As etapas finais são lidar com as pontuações. Para praticamente preparar tudo para que o usuário esteja pronto para terminar a seção de aprendizado. Vamos iniciá-lo adicionando uma chamada clara para que possamos limpar a tela. E então, vamos calcular a pontuação final. Portanto, se o sublinhado for a inversão da introversão de 100 vezes uma pontuação sobre o tamanho do intervalo. Podemos obter um número percentual, por cento. Em seguida, fazemos o tópico do curso anterior e fazemos uma sequência da pontuação final mais esse sinal de porcentagem porque isso é o que vai para o ID final ou anterior do tópico principal. É nisso que vai entrar. Em seguida, usamos um bloco de largura para abrir o arquivo JSON dos tribunais anteriores no modo de gravação. E isso truncaria todo o arquivo. E ele o abrirá como um objeto de arquivo como esse objeto de arquivo. E então vamos usar a função de despejo JSON. Vamos passá-lo no dicionário, no dicionário do curso passado. E vamos passar um objeto de arquivo. Vai sobregravar praticamente todo o arquivo. Mas como tínhamos o dicionário do curso anterior já de antes, a partir do carregamento , antes, devemos colocar todas as versões do outro curso passado também no arquivo. E devemos substituir apenas com a versão atualizada, com o novo ID de tópico atualizado nele. Então também vamos adicionar uma declaração if com declarações else-if e uma declaração L que vai dizer, ok, se a pontuação final for 100, você vai dizer inacreditável. Você marcou 100%. Se uma pontuação final estiver acima de 90%, excelente trabalho, você obteve 90% ou acima de 90%. Se as pontuações finais acima de 80, incrível, Você marcou qualquer pontuação usar coordenada e se não, se estiver abaixo disso, você vai dizer, nenhum entusiasmo vai dizer que você marcou qualquer pontuação que você pontuado. O último passo será adicionar isso. Outra entrada try. E vai dizer sim se você quiser executar o aplicativo novamente e não, se não. E vai dizer que se outra tentativa não for igual a sim, você vai quebrar. Então, o que vai quebrar? Ele vai quebrar uma declaração while, um loop while que vamos dizer while loop, enquanto verdadeiro, percorra tudo. Precisamos colocar o recuo apropriado aqui. Então, tudo está dentro da função principal. Então, agora temos tudo em um loop. E se o usuário inserir algo diferente de um YES vai quebrar o loop e finalizar o código. Então, vamos tentar executar isso novamente e vamos ver o que recebemos. Vamos fazer tuplas. Então, vamos fazer o número quatro. Como você remove a última coisa que eu tenho uma pergunta de tupla ou truque. tuplas são imutáveis, então esteja correto, Bom trabalho. Enquanto o exemplo correto de criação de uma tupla, é com colchetes redondos, então é um bom trabalho correto. Incrível. Você marcou 100. Entre ontem no aplicativo novamente e você localizará um continuum, eu vou dizer sim, incrível. Então podemos ver isso agora. Acabamos de ir a 100 e temos 100 e tuplas. E se fizéssemos módulos, por exemplo, vamos fazer o número cinco. Vou tentar obter um incorreto de propósito. Então, qual das seguintes instruções pode ser usada para importar o módulo JSON da biblioteca. Vou dizer que isso vai dizer que você quase conseguiu. A resposta certa foi todas as outras opções. Pressione qualquer tecla para continuar, e isso vai me dizer 0%. Então sempre que faço sim e volto e vejo que é 0%. Mas se fizermos isso de novo, então dissemos Todas as outras opções. Vemos que isso é correto, bom trabalho. E então vemos que você marca 100%. E vemos que temos 100% para passar no curso. Então, vemos que nosso código está funcionando sem problemas. Estamos executando nosso aplicativo de aprendizado com sucesso e tudo está funcionando como esperamos. Tão ótimo trabalho de chegar até aqui e parabéns por concluir o projeto. E eles devem ser úteis para quaisquer outros conceitos que você quisesse adicionar, diminuindo outras maneiras que você queria aproveitar. Esta forma de questionar a si mesmo. Pode ser útil para outros tópicos, bem como de uma forma que você possa aproveitar os tópicos e as perguntas para seu uso pessoal e não, não precisa ser apenas para Python. E você pode adicionar perguntas a esse arquivo de perguntas e fazer perguntas para o que quer que seja. Você pode encontrar um uso para isso também. 33. Lição 30 Finais são novos primórdios: Incrível. Você termina o curso e eu quero parabenizá-lo por chegar até aqui. Você é um outlier. A maioria das pessoas não termina o que começam, mas algumas aqui, isso significa que você não é uma delas. Então, parabéns. Você aprendeu que é tudo sobre voltar e dar tudo o que você tem. E essa gratificação atrasada é o que traz as melhores recompensas. E agora podemos ver que os finais são simplesmente novos começos porque sempre haverá muito mais para aprender em Python em qualquer outra habilidade que você aprendeu, até mesmo os melhores artistas e mestres de suas habilidades estão constantemente aprendendo e se esforçando. Eu queria agradecer por ter vindo e embarcar nesta jornada comigo. E espero que você tenha gostado e aprendido muito. E também quero convidá-lo a permanecer nesse caminho de aprendizado porque você verá que é capaz de fazer coisas que nunca imaginou. Obrigado novamente, e te vejo por aí muito em breve.