Transcrições
1. Boas-vindas ao Python 201: Bem-vindo ao Python 21 com seu anfitrião Caleb Talia. Isso sou eu. Se você está pronto para subir de nível suas habilidades Python,
então, por favor, continue assistindo. Este curso vai levá-lo de habilidades Python de nível iniciante para nível intermediário. Neste curso, vamos mergulhar mais profundamente em assuntos Python como o nada e em operadores gerenciando arquivos funções aninhadas basicamente decoradores, objetos
Python, argumentos de função de escopo avançado, argumentos de palavra-chave, virtual usando pacotes de terceiros, trabalhando com solicitações de API e muito mais. Agora, se isso não faz sentido para você ou você não sabe tudo isso, todas essas coisas são, este curso é absolutamente para você. Olhe para tirar o máximo proveito deste curso, você vai precisar saber alguns conhecimentos básicos do Python, como funções, instruções
condicionais, tipos de dados e variáveis. Se você não conhece nenhum desses,
por favor, confira o curso Python 101, pois ele vai ser muito mais útil para você. Este curso também está assumindo que você já escreveu alguns Python antes e que você tem um editor como VS Code ou PyCharm instalado e você sabe como executar um script Python simples. Olá, sou o Caleb a contar e tenho trabalhado com o Python há alguns anos. Trabalhei com clientes como Mozilla, NASA, NHS no Reino Unido. E eu ensinei milhares de desenvolvedores a escrever Python em vários cursos meus. E hoje eu vou estar ensinando Python Intermediário. Bem-vindo ao Python 201 com seu anfitrião, Caleb Italian. Espero vê-lo lá dentro.
2. O operador de IN: Vamos começar falando sobre o operador em. E assim, no Python um-para-um, aprendemos sobre operadores de comparação. E eu só fiz isso maior em um operador de comparação simplesmente parece que se algo é igual a outra coisa. Agora, se você pegou Python 101, nós tínhamos um pequeno projeto onde escrevemos um programa de pedra-papel-tesoura. E podemos mudar isso para um arquivo Python aqui. E vimos algo como se minha resposta fosse igual a rock, e na verdade não é igual a rock. E minha resposta não é igual a papel. E minha resposta não é igual a tesoura. E se eu fizer isso um pouco menor aqui, saia do programa. E foi tudo o que fez. Agora, há uma maneira melhor de fazer isso porque sabemos que as três respostas que estamos comparando com pedra, papel e tesoura serão todas, bem, elas serão as mesmas. Eles nunca vão mudar. Então o que podemos fazer é este operador, este em comparação operador. E o que vou fazer aqui é rever o meu terminal. E se eu digitar Python 3.9 porque essa é a versão que eu quero usar aqui. Eu posso simplesmente escrever o operador em para comparar uma coisa contra uma matriz ou uma lista. E assim eu digo, uma lista de nomes é igual a. E vamos tornar isto maior aqui. E a lista de nomes é igual a Caleb, John e Gully. E então, se fizermos nomes ou se fizermos tipos de nomes, vamos ver que esta é uma lista. E suponha que nomes B, nomes, plural. Lá vamos nós. Isso é uma lista. Não vemos nada novo. Devemos estar familiarizados com o tipo de dados de uma lista já. Mas e se quiséssemos verificar se uma variável ou um nome está em uma lista de nomes. Bem, atualmente o que temos que fazer é pelo nome em nomes. Se o meu nome, seja qual for a variável, for igual ao nome, imprimir, este é o nome. E então isso é tipo de Honestamente nenhuma maneira de viver sua vida porque e se você fosse, se sua lista, mas se você é um raio é
realmente, muito grande, e se você tem 1000 itens lá, então você tem que iterar mais de 1000 itens diferentes apenas para descobrir se algo está lá dentro. Python tem isso embutido. Então eu vou fazer aqui é Controlo-C apenas advogado. E eu posso dizer Caleb, como uma string em nomes e isso vai sair como verdade. Eu também poderia dizer a mesma coisa com um k. minúsculo e isso vai ser falso porque nossos nomes têm Caleb, John, e Gully. Mas lembre-se quando estamos comparando strings em Python 101, uma string com um K maiúsculo não é o mesmo que uma string com um k minúsculo. Assim, o mesmo com um J ou um g ou qualquer outra letra. O fato é que tem que ser uma correspondência exata. E assim, no primeiro exemplo aqui, esta é uma correspondência exata. E o que eu posso fazer aqui é se eu apenas digitar isso mais uma vez, eu posso dizer se caramba em nomes, imprimir, caramba, está na lista de nomes. E vemos que Gully está na lista de nomes. E então esta é uma maneira
muito, muito fácil de verificar se uma resposta está em várias respostas, um número possível de respostas. E então, se voltarmos ao nosso exemplo aqui, eu vou mover isso um pouco para baixo e fazer isso um pouquinho menor. Se voltarmos a esta resposta aqui, vamos dizer, se a minha resposta não for abalada, minha resposta não é papel. Se a minha resposta não é uma tesoura, o que posso dizer em vez disso é se a minha resposta, seja lá o que for. E em vez de igual ou igual a, podemos dizer em uma lista de opções. E então nós só precisamos passar isso em uma lista e nós podemos simplesmente colocar em uma lista de opções. E vamos realmente fazer essas variáveis existirem. Então podemos dizer que Minha resposta é igual ao rock. E vamos fazer as opções para ser uma lista de pedra, papel e tesoura. E agora podemos dizer, se a minha resposta, rock é um destes três, então faça alguma coisa. Podemos dizer “imprimir”. Rock é uma das opções possíveis. Agora vamos em frente e salvar este arquivo como o operador in. E eu vou fazer, fazer, fazer, fazer, apenas sair dessa. E eu vou digitar Python no operador dot py. E diz que o Rock é uma das soluções possíveis. E se eu mudar isso? E se eu mudasse de pedra para outra coisa? Literalmente qualquer outra coisa que poderíamos dizer algo sublinhar mais e vamos ver que isso não imprime mais nada para nós. E isso é porque se houvesse outra declaração, isso seria executado para nós. Imprimir resposta errada. Tente de novo. E isso é tentar isso e vemos a resposta errada. Tente de novo. Agora, onde isso fica um pouco mais poderoso é, e novamente, nós tocamos nisso no Python 101. Então isso é um pouco de uma recapitulação. Em vez de dizer que minha resposta é igual a um valor codificado, poderíamos dizer, entrada. Qual é a sua resposta? E se essa resposta é igual a pedra, papel, tesoura, então ele vai dizer que uma dessas não é opção. Podemos dizer que essa opção é uma opção viável. Caso contrário, vai dizer resposta errada, tente novamente. Então vamos salvar isso e vamos dar uma chance. Aqui diz, qual é a sua resposta? Se eu digitar rock. Não, não vamos fazer rock. Já fizemos rock. Vamos fazer papel. Essa opção é viável. Vamos tentar de novo. Aqui diz, qual é a sua resposta? Minha resposta será Python. Python um Sim porque eu tenho um Zed lá por algum motivo. E diz, resposta errada, tente de novo. E assim o operador in apenas IN simplesmente diz, é a coisa à esquerda, dentro do iterável, à direita. Se for, se for verdade, execute esta instrução condicional. Se não for, então é falso. Execute a instrução else, ou originalmente não tínhamos nada, então não faça nada. Agora, se eu comentar isso, podemos fazer o mesmo com um dicionário. Então vamos dar um valor, não um valor, mas uma variável chamada chave. E este vai ser o nome. E poderíamos criar uma pessoa no nome do dicionário. Caleb, profissão, professor de codificação. E então podemos dizer se chave em pessoa, Imprimir, Nome é uma chave de dicionário válida no objeto Pessoa. Então vamos em frente e dar uma chance a isso. Agora vamos, vamos digitar no espaço Python no operador sublinhado dot py. E diz nome como uma chave de dicionário válida no objeto Person. E se mudássemos a chave aqui? E se mudarmos para algo que está faltando? Nada acontece. E isso porque o que isto procura é a chave. E lembre-se no dicionário que temos um par de valores chave. Está procurando aquela chave ali. E assim uma pessoa com uma chave de fluoróforo não existe, mas uma pessoa com uma chave de nome existe. E assim podemos usar o operador in em um dicionário também. Também podemos usá-lo em um tupple. Agora, o que eu gostaria que você fizesse, para experimentar isso, novamente, um pouco de experiência prática é que eu quero que você use o operador em um set. Esse é um tipo de dados Python. Aprendemos sobre isso no Python 101. E eu quero que você use o operador em um conjunto, não um dicionário e não uma tupla, não uma lista, mas um conjunto. Quero que veja se isso funciona para você. Se funcionar ou não para você. Porque neste ponto estamos entrando em Python nível intermediário. É hora de começarmos a explorar e pararmos confiar em alguém mostrando tudo o que pode ou não acontecer. É hora de começar a explorar e aprender por conta própria. E, e por isso é realmente importante que você possa fazer isso porque eventualmente você vai ter um emprego. E nesse trabalho eles vão pedir-lhe para criar algum tipo de recurso único e não vai haver um tutorial para isso. Não vai haver uma pessoa para segurar sua mão por isso. Você vai ter que tipo de experimental um pouco por conta própria e chegar com suas próprias soluções. E isso é realmente uma boa experiência na vida real quando se trata apenas experimentar e você não vai quebrar nada. Então sinta-se livre para experimentar e se não funcionar, não funciona. Se você receber um erro, você pode aprender sobre o que é esse erro. Mas vá em frente e dê uma chance. Diga se a chave está em algum tipo de tipo de dados definido, então apenas imprima algo. É tudo o que temos que fazer.
3. O operador NÃO: Vamos dar uma olhada no operador NOT. Então aprendemos sobre declarações condicionais e dissemos algo como se algo igual a outra coisa, faça uma coisa. E isso é fixe. E também aprendemos sobre isso. Se algo não for igual a outra coisa, faça uma coisa. Mas e se não quisermos simplesmente escrever tudo isso? Bem, temos um atalho. Podemos dizer se algo é verdadeiro, se essa string é verdadeira, o dicionário é verdadeiro, a lista é verdadeira, o booleano é verdadeiro. Será que realmente importa se algo é verdade? Então faça uma coisa. Mas e se quisermos dizer se algo é falso? Então vamos em frente e criar um exemplo aqui. Vamos dizer que a minha coisa é igual a verdade. Só para criar este exemplo, se a minha coisa, a coisa de impressão era verdade. E se executarmos isso, podemos fazer Python, não operador dot py. E diz que a coisa era verdade. E isso é porque realmente se resume a isso. Agora, e se quiséssemos exatamente o oposto? Will, temos que fazer isso. Temos que escrever um passe e depois fazer outra declaração. A impressão não é verdade. E vamos mudar isso para falso apenas para que possamos fazer isso executar. Então, a coisa é falsa. Isso não vai acontecer. O outro, então, vai ser executado. E vai dizer que isso não é verdade. Então, se rodarmos isso de novo, certeza, ele diz que isso não é verdade. Agora isso é exatamente a mesma coisa que dizer é igual a falso. O que é exatamente a mesma coisa que dizer não é igual a verdade. E vamos apenas limpar esse exemplo e executar isso mais uma vez. Isso vai dizer, isso não é verdade porque falso não é verdade. Na verdade, isso não é verdade. Esta afirmação é verdadeira porque está dizendo falso. É o mesmo que é verdade? - Não. Está bem. Bem, então é uma afirmação verdadeira e é aqui que fica um pouco confuso. Assim, em termos de Python, gostamos de atalhos sempre que possível. E nós simplesmente dizemos, se minha coisa for igual a verdade, imprima uma declaração aqui. Agora, quando
executarmos isso, vamos ver que isso simplesmente não funciona, isso não executa nada. O que podemos dizer em vez disso é o operador NÃO. E assim, em outras linguagens de programação, você verá um ponto de exclamação na frente de sua variável. Você o vê muito no PHP, e você vê muito em JavaScript. Em Python, não fazemos isso em Python. Gostamos que nosso código seja legal e legível. Então não queremos símbolos loucos por todo o lado como se não tivéssemos JavaScript nos dias de hoje. Nós simplesmente dizemos, se algo não é verdade e está literalmente fazendo uma frase para nós. Se algo não é, e ele está procurando, ele está sempre procurando por um verdadeiro valor. Então, se não for verdade, ou seja, se isso for falso, imprima uma declaração aqui. Vamos em frente e salvar isso. E nós vamos ver que isso agora imprime uma declaração que diz imprimir uma declaração. E aqui, como esperávamos. Agora vamos em frente e criar mais um exemplo. Nome é igual a K_1 como g. Podemos dizer se o nome não está em. Olhe para isso agora estamos misturando o operador em com não. E temos que nos dar uma lista de nomes. Caleb, John caramba. Então, se cana ascii não está em uma lista com esses nomes nele, imprimir, cana não faz parte do clube. E quando executarmos isso, primeiro de tudo, vamos ver nesta declaração impressa aqui em cima, então podemos simplesmente ignorar isso. Mas então vamos ver a impressão digital na linha nove. E com certeza, a impressão original aparece da linha quatro. E da linha nove diz que Cain não faz parte do clube. E então o que estamos dizendo aqui é, se o nome não está nesta lista particular ou matriz de nomes, faça uma coisa. E com o operador não vem muita energia. Agora podemos verificar se as coisas são o contrário. Nós não fomos capazes de fazer isso em Python um-para-um Python 101, tivemos que tomar o caminho mais longo em Python 201, nível
intermediário Python precisamos saber do que não palavra-chave é algo não verdadeiro, é algo não em outra lista é algo não outra coisa. Agora uma coisa a ter em mente é tipicamente quando estamos comparando coisas como cordas, podemos ter o nome um é igual a K_1, nome2 é igual a Caleb. Normalmente, não fazemos isso. Nós não escrevemos se nomear um, não nome2, imprimir nomes diferentes porque isso simplesmente não faz sentido. Se o nome de um não é nomeado para. Quero dizer, sim, há uma maneira de comparar usando o operador é assim, mas na verdade não fazemos dessa maneira. O operador é é um especial no é operador significa é comparar peças de memória, não apenas o valor, que poderia ser cana ou Caleb. E então o que normalmente dizemos é quando estamos comparando strings, se o nome um não é nome2 e fazemos isso com este operador. Mas quando estamos trabalhando com o operador não em uma lista, colocamos no meio. E quando colocamos o operador não na frente de algo, estamos verificando se é falso. Então, se você lê isso literalmente como uma frase normal, faz muito mais sentido. Se algo não é verdade, afirmação. Se o nome não estiver em uma lista, faça alguma coisa. E se uma pessoa não é a mesma que uma segunda pessoa, faça outra coisa. E esse é o operador NÃO. Agora o que eu gostaria que você fizesse é que eu quero que você faça os dois primeiros exemplos aqui. Então, vamos nos livrar disso e apenas fazer os dois primeiros exemplos. Tente verificar um booleano e, em seguida, tente verificar uma lista como esta. Certifique-se de usar o operador NOT em ambas as situações. E o objetivo aqui não é se tornar um especialista no operador não porque é honestamente, é uma coisa muito fácil de aprender na maioria das vezes. A idéia aqui é simplesmente obter alguma experiência prática aprendendo como o código oposto funciona. Se não faço parte de um clube, não posso entrar. Se não sou rico, não
posso comprar um iate. Se alguém inserir alguma entrada de usuário e ela estiver vazia, isso seria falso. Então, você pode dizer, se não UserInput, então você pode sair do script ou dizer-lhes para inserir mais conteúdo ou, ou reinserir o script. Então vá em frente e tente isso de novo. O objetivo aqui é apenas praticar. Só queremos praticar, praticar, praticar. É assim que você vai ficar bom. Você só precisa praticar, praticar, praticar. Então experimente isso, dê uma chance e se você ficar preso ou,
ou esta explicação não foi boa o suficiente, sinta-se livre para deixar um comentário abaixo ou no grupo aprendendo a codificar Facebook. Estou sempre lá para ajudar. Na próxima lição, vamos em frente e falar sobre a leitura de arquivos.
4. Como ler arquivos usando Python: Certo, vamos falar sobre como podemos ler arquivos. E assim abrimos arquivos em Python com essa coisa chamada gerenciador de contexto. Agora não vamos entrar muito nos detalhes de um gerenciador de contexto. É um pouco de uma maneira diferente de abrir um arquivo, especialmente se você vem de uma linguagem de programação diferente. Mas também é muito desempenho de memória, que
significa que você não pode acidentalmente quebrar seu computador até ler arquivos é tão simples como dizer com abrir seu nome de arquivo, r para ler como arquivo. E então podemos fazer algo como imprimir file.js. E é isso. Isso é tudo o que há para ele. Agora precisamos criar um arquivo aqui. Então vamos em frente e criar um novo arquivo, e vamos chamá-lo leia-me dot TXT. Olá do Python 201. Isso é o que essa leitura vai dizer. E então o que vamos fazer aqui neste arquivo de leitura dot py, nós estamos simplesmente indo para abrir esse arquivo readme e imprimir o que quer que esteja lá dentro. E assim poderíamos dizer com aberto leia-me 2.txt, que é o nome do arquivo vírgula. R significa ler como. E então damos a ele algum tipo de nome de variável, podemos chamá-lo de arquivo. Tentamos não usar mais f porque F é meio que curto para um F Strings. Então não queremos que isso confunda em Python. Normalmente escrevemos algo como arquivo ou CTX para contexto ou algo assim, não
importa. É só um nome de variável. E então podemos dizer ponto de arquivo de impressão. E você pode ver que VS Code já está tentando preencher coisas automaticamente para mim. Então, se eu for até aqui, posso clicar em ler. E esta é uma função, este é um método. Ele realmente vai executar algum tipo de lógica, e então ele precisa desses parênteses. Vamos em frente e salvar isso e executar este arquivo em seu terminal. Vamos fazer Python arquivos de leitura dot py e ele diz Olá de Python 201. Você vai notar que há realmente uma linha vazia lá também. E se voltarmos aqui, tenho a certeza, tenho a certeza de que haverá uma linha vazia 2. E sim, aí está. Linha vazia para esta é uma nova linha. Vamos em frente e salvar isso. Há uma linha vazia três. Olá do Python 201. Esta é uma nova linha. E isso é realmente tudo o que há para ler arquivos. Agora aqui está a coisa, é quando você está lendo um arquivo ou quando você está lidando com arquivos. Este gerenciador de contexto usando a palavra-chave width simplesmente significa que não temos acesso ao arquivo fora desse recuo. Então, se comentarmos isso e escrevermos passar e então tentamos imprimir arquivo dot read. Vamos ver o que vai acontecer aqui. Ele diz operação de erro de valor IO no arquivo fechado. Está a tentar ler este ficheiro, mas já foi fechado. Então, basicamente, o que Python vai fazer é dizer, com o arquivo TXT readme dot aberto como um status de leitura, não um status de escrita ou algo assim. Apenas um status de leitura vai atribuir isso a uma variável chamada Arquivo. E então esse arquivo vai ser escopo. Essa variável de arquivo vai ter escopo para este recuo aqui. E quando chegar ao fim do recuo, o que faz na linha cinco, ele vai fechar o arquivo automaticamente para nós,
então não temos que nos preocupar em fechar o arquivo nunca. Python fará isso por nós. Esta é uma maneira segura de abrir seus arquivos. Agora, o que eu gostaria que você fizesse como um pouco de lição de casa aqui é ir em frente e criar um novo arquivo chamado README dot TXT. E escreva isto a ver com aberto. E então seu nome de arquivo, vírgula r para ler como algum tipo de nome de variável, e então imprima isso. E eu vou limpar isso porque nós não precisamos disso. E então tudo o que fazemos é o nome da variável. Acontece que eu chamo de arquivo dot read, e isso vai ler o arquivo para nós. Então vá em frente e dê uma chance. Sinta-se livre para pausar o vídeo aqui mesmo. Há mais uma coisa que quero mostrar a vocês, mas gostaria que pudessem pausar o vídeo aqui e tentar isto. Agora há mais uma coisa que podemos fazer se quisermos o conteúdo deste arquivo seja armazenado em uma variável que
o conteúdo deste arquivo seja armazenado em uma variávelacessível fora da palavra-chave width aqui ou o recuo aqui. Poderíamos simplesmente dizer algo como o conteúdo é igual ao file.js lido. E aqui em baixo podemos dizer “imprimir”. O conteúdo é conteúdo. E quando tentarmos isso, vamos ver se isso funciona. Ele diz que o conteúdo é Hello from Python dois em um, esta é uma nova linha e há uma linha vazia lá dentro. E então agora temos acesso ao, basicamente todo o conteúdo desse arquivo. Mas fora do gerenciador de contexto que abrimos com a palavra-chave width. Porque é que isto é importante? Bem, isso é importante porque temos um gerente de contexto. Nós armazenamos o conteúdo do arquivo em uma variável chamada content. E, em seguida, nos bastidores, Python fecha este arquivo. Ele fez isso por nós, então não está usando muita memória, está tentando ser o mais eficiente possível. E porque, francamente, muitas pessoas se esquecem de fechar seus arquivos, esta é uma maneira segura de fazê-lo. E então podemos acessar essa variável de conteúdo fora do gerenciador de contexto. Agora eu também gostaria que você desse uma chance. Então, há duas tarefas para este trabalho de casa em particular. Uma delas é abrir um arquivo TXT simples e depois impresso. E outra é atribuir o conteúdo desse arquivo
que você está abrindo a uma variável e, em seguida, acessá-lo fora do gerenciador de contexto, a instrução width, incluindo o recuo para garantir que ele está acessível de fora do Isso. Vá em frente e experimente isso e quando estiver pronto, te
vejo no próximo vídeo.
5. Como criar arquivos usando Python: Na última lição, analisamos como podemos abrir arquivos e simplesmente lê-los, mas também podemos escrever em arquivos. Podemos criar novos arquivos. E então vamos em frente e criar um novo arquivo a partir do zero usando Python. E assim parece com isso com aberto e, em seguida, seu nome de arquivo. Então, digamos escrever arquivos, data.txt. Então este é o arquivo de escrita dot py. Vamos fazer a escrita file.txt. Vamos criar esse arquivo. E, em seguida, na última lição que usamos r para ler. Nesta lição vamos usar w para escrever como arquivo. Então agora temos um gerenciador de contexto. Então esse arquivo só estará aberto enquanto estivermos recuando nosso código aqui. Então podemos dizer arquivo dot write. Olá do Python 201. Vamos em frente e executar este arquivo digitando Python, escrevendo arquivos dot pi. E vamos ver um novo arquivo aparecer aqui à esquerda. E veja que a escrita file.txt aparece. Boom, diz “Olá de Python para um”. Agora, o que acontece quando executarmos isso de novo? Vamos escrever Hello from Python 21 segunda vez, salve isso, e vamos executar isso. Agora, você acha que isso vai anexar
ao arquivo file.txt escrito ou você acha que ele vai sobrescrevê-lo? Então ele vai dizer Olá de Python para um, Olá de Python para 1 segundo vez? Ou é simplesmente vai dizer Olá da ferramenta Python 1 segunda vez como uma linha individual neste arquivo. Estes são pequenos experimentos divertidos que temos enquanto aprendemos Python. Vamos verificar isso. Clique em e ele sobrescreveu todo o arquivo. Agora, se você quiser anexar a um arquivo, isso é muito fácil. A significa apêndice. E esta vai ser uma segunda linha. Vamos em frente e executar isso. Verifique nosso arquivo file.txt escrito. E diz, oh, na verdade não é como segunda linha. Mas acrescentou ao fim aqui. Então ele foi direto para o final
do arquivo e escreveu mais o que realmente queremos fazer aqui. E este é um bom exemplo. Eu estou realmente feliz que isso veio à tona, é que nós podemos fazer barra n. E então nós realmente não vemos estes em arquivos, mas neste arquivo aqui onde esses dois pontos estão e ele vai para uma nova linha, há realmente um caractere escondido lá dentro. É uma barra para a nova linha. E podemos escrever essa nova linha aqui. Também podemos adicionar uma nova linha e uma barra de tabulação t. Esta é abada. Vamos em frente e executar isso e ver como isso acaba. Então nós temos Olá de Python 21, segunda linha, isso é porque eu realmente estraguei tudo. Não vou editar isso vezes. Quero mostrar a vocês que até programadores experientes como eu cometerão erros. Isso é totalmente normal. Uma segunda linha, porque fizemos isso uma segunda vez. E uma guia aqui, você percebe que não são espaços. Esta é, na verdade, uma guia e diz que esta é abada. Então agora podemos escrever arquivos. E com isso, podemos pegar a entrada do usuário e podemos escrever arquivos diretamente da entrada do usuário. Mas não vamos pular tão adiante ainda. Na próxima lição, vamos em frente e ler várias linhas ao mesmo tempo. Então, como abrimos esse arquivo? Mas como é que conseguimos esta linha e esta linha e esta linha? Como é que fazemos isso? Mas antes de irmos para a próxima lição, o que eu gostaria que você fizesse como sua tarefa é abrir um gerenciador de contexto usando a palavra-chave width, abrir um arquivo, nomeá-lo, o que quiser. Use a propriedade de escrita W. Então W significa certo, e nós apenas colocar W para abreviação como algum tipo de arquivo. E então esse arquivo do gerenciador de contexto ponto para a direita, e então uma nova linha. E você pode colocar uma barra n para uma nova linha lá se você quiser ou cortar t. E então, quando você terminar isso, tente anexar a esse arquivo. Então escrever vai sobrescrever o arquivo todas as vezes. A vai acrescentar a esse arquivo, adicioná-lo ao final. Vá em frente e experimente isso e quando estiver pronto, vamos dar uma olhada em como podemos ler várias linhas ao mesmo tempo.
6. Como ler linhas multiplicais em Python: Ok, bem-vindo. Vamos dar uma olhada em como podemos ler várias linhas ao mesmo tempo. Agora você pode estar pensando, bem, por que isso é importante? Mas se eu te der uma lista de 100 e-mails e eu quisesse que você encontrasse o que tem meu nome nele. Como é que vamos fazer isso? E isso é muito parecido com raspar dados da internet, o que é uma coisa muito, muito comum. Então, antes de qualquer coisa, vamos em frente e criar um novo arquivo. E isso só vai ser chamado de e-mails 2.txt. Haverá um e-mail em gmail.com, e-mail para e-mail três. E então vamos colocar Caleb no gmail.com. Vamos colocar John em gmail.com e vamos colocar gully em Hotmail.com. Temos seis endereços de e-mail aqui. E queremos tentar descobrir se, digamos Caleb, Edgy.mil dot com está aqui. Como é que fazemos isso? Bem, primeiro temos de abrir isto. Dizemos com e-mails abertos 2.txt, Vamos apenas lê-lo. Nós não precisamos escrever para ele ou anexá-lo como e-mails. E o que podemos fazer aqui é e-mails com linhas de leitura. E se eu imprimir isso, vamos ver que isso vai parecer muito, muito familiar. Então eu posso digitar, vamos limpar isso. E eu posso digitar Python lendo várias linhas e ponto py. E você olharia para isso? De repente, isto é uma matriz. Então, o primeiro item aqui é e-mail em gmail.com. E-mail para três Caleb um Gmail, John no Gmail Gmail no Hotmail. Isto é uma matriz. Agora podemos trabalhar com uma matriz. Isso é excitante porque podemos pegar atalhos mais legais aqui. Então vamos em frente e jogar isso em uma variável chamada e-mails. E nós não temos que trabalhar dentro desse gerenciador de contexto mais. Seu trabalho está feito. Agora podemos acessar todos esses e-mails como uma matriz ou como uma lista como chamamos em Python. Podemos acessar todos esses e-mails em uma lista e uma variável chamada e-mails, tão simples quanto isso. Então agora podemos dizer para e-mail, em e-mails, imprimir, procurando, digamos não, vamos procurar uma conta do Hotmail. Procurando uma conta do Hotmail. Em seguida, podemos dizer se Hotmail está neste e-mail particular, podemos usar o operador em para verificar se uma string está dentro de outra string. Imprima todo o e-mail. E assim isso vai filtrar todos
os e-mails em um arquivo e nos dar todos os que têm Hotmail nele. Vamos em frente e executar este código e vamos ver procurando por conta do Hotmail, procurando por conta do Hotmail procurando leite quente. Oh, olhe para isso. Se for considerado culpado em Hotmail.com. Vamos apagar essa declaração de impressão porque isso não é útil. Digamos que só queríamos toda a conta do Gmail. Então isso vai filtrar o que disse ravina no hub em Hotmail.com. Fazemos isso e mandamos um
e-mail, e-mail para três, Caleb e John. Agora, o que há com esse espaçamento? Bem, esse espaçamento é porque se eu rolar de volta para cima, você percebe que barra n, e nós conversamos sobre isso na última lição. Slash n significa nova linha. E então o que queremos fazer aqui é pegar este e-mail e simplesmente queremos cortá-lo. Agora em outras linguagens de programação, usamos a palavra trim. Em Python, usamos guarnição esquerda ou guarnição direita, e nós não chamamos isso de corte em tudo. Na verdade, chamamos de tira. Então nossa tira e tudo o que vai fazer é tirar essas linhas lá dentro. Então, se rodarmos isso de novo, não vamos ver todos esses espaços extras. E, na verdade, não é onde queremos que esteja porque estamos imprimindo. Isto não vai imprimir nada para nós. Queremos mudar o que está sendo exposto em nossos terminais. Nós fazemos strip aqui. E quando rodarmos isso mais uma vez, vamos nos livrar daquele pairar lá. Fazemos isso mais uma vez. Lá vamos nós. Está se livrando dessa linha extra para nós. E novamente, a razão pela qual isso está acontecendo é porque se nós imprimir todos esses e-mails, nós vamos ver que esta matriz aqui, esta lista, esta lista Python tem uma barra n no final. E isso porque no final de cada linha há uma barra n. É um personagem invisível, não o vemos, mas está lá. E isso diz ao programa, que diz ao computador que há uma nova linha aqui. E então tudo o que estamos fazendo é dizer, ei, em vez de ter barra lá, tire-o. Agora, o que eu gostaria que você fizesse como sua tarefa é algo um pouco mais fácil. Tente abrir um arquivo chamado e-mail dot TXT. Jogue um monte de e-mails lá, certifique-se de que é legível. E então eu simplesmente quero que você faça um loop em cada e-mail e imprima o e-mail. Experimente isto. E se você notar que você tem linhas extras lá, tente usar nossa tira que simplesmente vai se livrar
da barra n no final de cada valor. Vá em frente e me faça um favor, experimente isso. Não vai parecer que isso é realmente super útil no momento. Mas quando você entra em web scraping, que é o que o Google faz, Google raspa todos os sites na, na internet e os indexa em um banco de dados. Está à procura de cordas dentro de cordas. Está passando por cada página lá fora. Então, em vez de percorrer cada email
, pode ser cada site. E depois vai fazer uma coisa. E tudo isso pode ser armazenado em um único arquivo. Então esse é um exemplo divertido do mundo real. Sim, definitivamente experimentá-lo. E quando você estiver pronto, vamos para a próxima lição onde nós realmente pedimos a um usuário alguma entrada de usuário e, em seguida, criar um arquivo que será executável.
7. Escrever um arquivo e executar o: Ok, bem-vindo de volta. Vamos falar sobre a execução de arquivos, ou eu acho que a criação de arquivos de UserInput. E então a idéia aqui é que você pode pedir ao usuário alguma forma de entrada. E então você pode criar um arquivo com isso. E com esse arquivo você pode adicionar algum conteúdo lá também. Então vamos fundir toda a experiência que temos com a leitura e escrita e adição arquivos em um programa onde você pode basicamente criar sua própria forma de catálogo ou,
ou livro de contatos ou, ou catálogo de endereços. Então primeiro vamos pedir o nome do arquivo. O nome do arquivo será inserido. Qual é o nome do arquivo? E vamos também pedir conteúdo. A entrada é igual para inserir o conteúdo, seja qual for o conteúdo que vai ser. Então podemos dizer algo como largura. Estamos abrindo um gerenciador de contexto aqui, abra o nome do arquivo. Nós vamos escrever ou sobrescrevê-lo cada vez como arquivo, então nós podemos dizer arquivo ponto direito, o conteúdo. Agora, se tentarmos isso, arquivos executáveis
python, ele vai me pedir um nome de arquivo. Então vamos colocar Zed,
Zed, Zed 2.txt apenas para que ele aparece na parte inferior aqui, é fácil detectar sob algum conteúdo. Olá, meu nome é Bob e gosto de codificar. Ok, parece que não fez nada, mas, hey, olha isso. Zed, Zed dot TXT apareceu. E boom, MyText está agora lá dentro. Agora veja isso, podemos realmente começar a tornar isso muito mais agradável para o usuário. Poderíamos dizer que arquivo aberto é igual a entrada. Gostaria de ler este arquivo? E isso deve levar um sim ou um não. Então poderíamos dizer que se arquivo aberto está em Y ou N, então podemos fazer uma coisa. Nós dizemos, se o arquivo aberto é igual a N, não faça nada. Ou podemos dizer se o arquivo aberto é igual a y, vamos em frente e abrir este arquivo agora. Então, podemos dizer com abrir esse mesmo nome de arquivo de cima com propriedades de leitura como arquivo, impressão, arquivo dot read. E então todo o roteiro se parece com isso. Estamos pedindo um nome de arquivo. Estamos pedindo algum conteúdo. Vamos então escrever esse nome de arquivo com conteúdo dentro dele, e é completamente dinâmico, depende do usuário. Então nós vamos dizer, você gostaria de abrir este arquivo sim ou não? Abrir arquivo está em uma lista de Y ou N. Em seguida, execute este código. Se arquivo aberto é igual a y, então queremos abrir este arquivo e imprimir esse arquivo. Vamos em frente e dar uma chance a isso. Vamos fazer YoY dot TXT é o nome do arquivo, digite algum conteúdo. O conteúdo é rei. Lembra quando as pessoas costumavam dizer que nas mídias sociais o conteúdo é rei? E gostaria de ler este arquivo? Vamos digitar y, e imprime para nós. Ele leu esse arquivo para nós, e isso é exatamente o que é NY YY 2.txt. Agora vou apagar este ficheiro. Vou deletar esse arquivo também. E eu vou deixar este código fonte com você. Agora. Eu quero que você experimente isso, apenas testar linhas de um a cinco. Não precisa se preocupar com as linhas 7 a 11. Drew apenas ficando chique lá. Estamos basicamente mostrando suas habilidades só porque podemos, que é uma coisa muito programadora de fazer. Nós gostamos de fazer isso. Mas tente isso e peça um nome de arquivo. Você alguma entrada de usuário pede algum conteúdo para usar uma entrada mais usuário e usar um nome de arquivo dinâmico e dinamicamente correto, algum conteúdo dinâmico. E, em seguida, certifique-se que esse arquivo realmente
aparece onde você acha que ele vai aparecer e abri-lo, certifique-se de que ele está fazendo o que você espera que ele faça. E se tudo estiver bem, parece certo? Vamos passar para a próxima lição em que falamos sobre funções dentro de funções porque surpresa, surpresa. Tudo em Python é chamado de objeto. Sim, é um conceito alucinante, mas podemos aninhar coisas dentro das coisas e você pode realmente vê-lo aqui. Nós nunca tivemos uma declaração com dentro de uma declaração if, dentro de uma declaração if. E isso pode durar para sempre. Não é performance fazer isso para sempre, mas podemos fazer isso para sempre se quisermos. E as funções não são diferentes. Podemos ter uma função dentro de uma função dentro de uma função. Então, a próxima lição vamos dar uma olhada nas funções e algumas
das esquisitas escovas que acontecem dentro disso.
8. Funções dentro de funções: Vamos dar uma olhada em funções aninhadas dentro de funções, porque em Python podemos fazer isso. Em Python tudo é chamado de objeto, e isso significa que funções dentro de funções ou objetos, arquivos ou objetos pacotes são objetos. Tudo é um objeto, você tem um objeto, Eigen objeto, todos nós temos um objeto. Mas neste curso, não neste curso, mas nesta lição, vamos dar uma olhada no escopo e como ele afeta funções dentro das funções. Então vamos criar uma função, vamos chamá-la de coisa um. E então podemos ter uma função dentro disso. E digamos apenas imprimir. Bem-vinda à coisa um. E isso é apertar isso só um segundo rápido lá. E vamos ter outra função aqui. Coisa também. Imprima. Bem-vinda à coisa também. E para executar isso dentro desta função. Ou melhor, para executar a coisa também, nós simplesmente executamos dentro da coisa um, então dizemos coisa para executá-la. E então quando chamamos coisa um, isso vai executar, ele vai imprimir, ele vai então registrar esta função e o código
dentro desta função e , em seguida, executar essa função dentro dela. E agora temos duas funções e uma aqui, e só é necessário chamar uma delas. Então vamos em frente e salvar isso. E vamos ao View. Ouça-me agora. E vamos digitar arquivos de usuário executáveis python. Isso não está certo. Isso é Doo-doo-doo-doo. Tenho que desfazer isso. Tudo bem, então eu mudei o nome do arquivo lá, então não estamos substituindo o arquivo da última lição. Então o que eu quero fazer aqui no meu tipo de terminal funções Python dentro de funções. E vamos ver se diz “Bem-vinda a uma coisa, bem-vinda a fazer”. E isso é novamente porque se separarmos
isso, pode fazer um pouco mais de sentido aos nossos olhos. Mas a primeira coisa, bem, nós sabemos que isso é uma coisa de função regular também, vai então registrar ou ser registrado dentro da coisa um. E depois executámo-lo. Agora, se não quiséssemos que fosse executado,
bem, por que haveríamos de lê-lo? Mas isso é ao lado do ponto que poderíamos simplesmente não ser executados por dentro. E isso vai simplesmente dizer bem-vindo à primeira coisa. Então essa é uma função dentro de uma função. E, em última análise, isso é o que é chamado de decorador, uma taxa de deco ou algo assim. Ou seja, a premissa de um decorador falará sobre decoradores provavelmente em um curso futuro ou em um módulo futuro. Mas isso é basicamente o que um decorador é em Python. Então, agora vamos dar uma olhada no escopo. Digamos que alguém tem um nome. Mas a coisa também não vai ter um nome. Então podemos dizer bem-vindo a pensar em um nome comum. E como iríamos passar algo para esse nome? Bem, nós também poderíamos fazer isso e poderíamos dizer o nome. E então poderíamos dizer o nome aqui. E então se eu disser Jacob, isso vai dizer bem-vindo para pensar um. Jacob, também precisaríamos do nome Doo-Doo-Doo-Doo. E assim ele passa o nome junto, mas honestamente ter
que digitar esse mesmo nome de variável repetidamente é irritante. Você vê quantas vezes eu tenho que digitar o nome aqui. A coisa boa sobre o escopo Pythonic é se ele não encontrar um nome dentro desta função, se ele não encontrar esse nome em particular e isso poderia ser chamado literalmente qualquer coisa. Mas se ele não encontrar essa variável, esse parâmetro, esse argumento dentro de sua função, isso vai olhar fora da função. E ele vai olhar para as coisas, um para uma variável chamada nome. E então vamos em frente e testar isso. E não vamos passar um nome qualquer. E a coisa também vai dizer bem-vinda para pensar também. Ele vai ter um nome lá, mas nós não estamos realmente passando nada n. E então nós vemos isso muito no mundo do JavaScript, mas nós não vemos muito isso no mundo do Python. Vamos em frente e executar isso. E vamos dizer o quê? Vamos ver se diz: “ Bem-vindo a pensar um Jacob e bem-vindo ao Jacob. E isso porque mesmo que não tenhamos passado explicitamente o parâmetro name, o que ele fez foi procurar um nome dentro dessa função específica. Não o encontrou, então parecia fora dessa função. Encontrou-o dentro de uma coisa de função um. E a coisa boa sobre isso é que ele tem escopo de modo que se
tentarmos imprimir aqui o nome impresso, ele não vai existir de qualquer forma. Na verdade, isso vai lançar um erro de nome de erro, nome, nome não está definido. E essa é a coisa legal sobre funções e escopo com funções é que uma vez que você tem uma função, se você tem uma função aninhada, você pode usar todas as mesmas variáveis dessa função original. E essa função original i neste caso, coisa um, não
vai vazar nenhum de seus parâmetros ou nenhum de seus argumentos. E assim que mantém seu namespace e agradável e limpo para que não tenhamos que nos preocupar com o nome sendo registrado e magicamente estão fazendo algo mítico quando simplesmente não existe. Tudo o que dissemos foi, basicamente, se você empacotar isso, você não vê que o nome é igual a qualquer lugar aqui, não existe aqui fora. E esse é o escopo do Python. Agora, isso é apenas o escopo normal do Python. É assim que Python funciona. Se não consegue encontrar a coisa, parece fora daquela coisa. E como uma recapitulação, funções dentro de funções é realmente você apenas
declarar uma função, declarar uma segunda função dentro dela, ou uma terceira, quarta ou quinta função dentro dela. Você pode fazer uma coisa, você pode devolver uma coisa. Você pode fazer praticamente qualquer coisa que você gosta dentro dessa segunda, terceira ou quarta ou quinta função aninhada. E você pode apenas manter aninhando longe se você quiser apenas você tem que
lembrar qualquer função que você registra você tem que executar também. Então, se você está pensando, bem, por que eu faria isso com uma impressão digital? Honestamente, você não faria isso. Mas se você tivesse dez linhas de lógica aqui e quisesse reutilizar essa lógica duas ou três vezes dentro da coisa um, você registrava isso como uma sub-função. Agora sua tarefa para esta lição é dar uma chance a isso. Função criativa, função aninhada dentro dela, executar a função aninhada, executar a função original, e certifique-se de passar algum tipo de argumentos ou algum tipo de parâmetro que é usado tanto no função original e a própria função aninhada. Vá em frente e experimente quando estiver pronto. Vamos passar para a próxima lição em que falamos sobre fazer solicitações de API simples.
9. Como fazer solicitações simples de API: Vamos em frente e fazer uma solicitação de API simples. Tudo bem, nesta lição, vamos precisar usar um pacote chamado Solicitações. Então, primeiro de tudo, vamos experimentar isso. Vamos digitar Python para entrar em nosso shell. Pyt HON, se eu posso soletrar isso. E, em seguida, podemos apenas digitar solicitações de importação. E se você não vir nenhum erro, então você está pronto para ir. Podemos prosseguir. Podemos usar pedidos. Se você vir um erro, algo como isso, solicitações de
importação para que você veja um módulo não encontrado erro, então temos que ir em frente e instalar solicitações. Agora, se tivermos que instalar solicitações, tudo bem, podemos fazer isso. Vamos deixar a nossa concha aqui. E você vai precisar ter PIP agora você
já deve ter pip instalado em seu computador. Se você digitar Pip traço v, ele vai te dizer um monte de coisas aqui. E meu Pip está usando Python 3.8. Agora, se você não tem pip instalado em seu computador, se houver comando não funciona para você, vá para a lição onde instalamos PIP e falamos sobre pacotes e coisas assim e depois voltamos para este. São algumas lições à frente e depois voltamos. Mas versões modernas do Python, se bem me lembro, vem com pip por padrão. Então, o que podemos fazer aqui, supondo que você tem os pedidos, pacote ou módulo, você pode importar solicitações e, em seguida, você pode simplesmente dizer REQ para solicitação é igual a requisições dot get, e então algum URL. Então vamos fazer HTTPS, Caleb dot IO. E podemos imprimir o status aqui, código de status do ponto
X e não x. Estou acostumado a digitar x, deve ser naufragado. Acabei de mudar o nome da variável, o código de status do ponto de req. E vamos em frente e dar uma chance a isso. Python simples API solicita dot py. E ele me dá 200, agora 200 status e códigos HTTP significa que o site está funcionando. Agora, neste ponto, você pode fazer um programa de monitoramento de site com bastante facilidade. Poderíamos fazer algo assim. Vamos comentar isso. E podemos fazer pedidos de importação. Hora de importação. Verdadeiro selvagem. Req é igual a pedidos ponto get e, em seguida, o seu site. Assim, cursos HTTPS codificação ponto para cada buddy.com imprimir código de status de ponto req. E então podemos dizer que se o código de status do ponto req não for igual a 200, poderíamos enviar um e-mail , podemos alertar, poderíamos sair deste script. Podemos fazer o que quisermos, então vamos passar. Mas, em última análise, isso iria idealmente
enviar um e-mail, enviar um texto usando Twilio API ou algo assim. Manda-me um e-mail ou manda-me uma mensagem, algo assim. E isso vai correr muito,
muito rapidamente uma e outra e outra vez. Portanto, não queremos enviar spam ao nosso servidor com solicitações,
mas, em vez disso, o que queremos fazer é fazer uma solicitação e talvez esperar por 60 segundos. E assim poderíamos fazer o tempo ponto de dormir 60 segundos. E assim, uma vez por minuto, isso vai fazer um pedido. Mas, apenas como exemplo, vamos baixar isso para três segundos. E vamos fazer isso de novo e ver o que acontece a cem, duzentos. Então nós vamos ver que isso tem constantemente puxando meus sites para ter certeza de que ele está funcionando o tempo todo. Basicamente, acabamos de criar um programa de uptime ou um programa de monitoramento de uptime em como sete linhas de código com Python. E para cancelar tudo o que fiz lá foi o controle C. Então eu vou realmente comentar este aqui. Você pode verificar o código-fonte, se quiser. E eu vou descomentar o original porque isso é tudo o que realmente
precisamos fazer para esta lição em particular. Tudo o que precisamos fazer é isso. E esta é uma solicitação de API simples. Na verdade, isso dificilmente é uma solicitação de API. Isso é mais ou menos apenas uma solicitação HTTP. Mas em Python, é tão perto de uma API, é basicamente uma solicitação de API. Na próxima lição, vamos dar uma olhada em fazer uma solicitação de API para
um endpoint que realmente aceita e JSON ou não aceito, mas retorna JSON e como podemos transformar isso em um dicionário Python e trabalhar com esses dados. Mas, por enquanto, vamos em frente e dar linhas de um a quatro uma tentativa, apenas experimentá-lo e ter um pouco de diversão com ele. Veja se você pode obter um código de status diferente de um site diferente. E se você receber um código de status diferente, algo que não é 200, sinta-se livre para ir e pesquisar o que esse código de status significa. Se você não estiver familiarizado com códigos de status HTTP.
10. Como fazer solicitações do JSON: Tudo bem, vamos fazer um pedido de API JSON, apenas um simples. Então, vamos apenas obter algumas informações. Nós não vamos postar qualquer informação, colocar ou excluir ou qualquer outro termo API. Vamos simplesmente obter algumas informações. E isso vai ser a coisa mais comum que você faz quando
se trata de APIs Python ou API é realmente em geral. Então, a partir da última lição fizemos pedidos de importação. E então nós dissemos REQ é igual a solicitar ponto get,
e, em seguida, algum URL aqui. E não sabemos se isso acabou por ser HTML ou JSON ou algo assim. Então precisamos encontrar um ponto final. Então, se nos dirigirmos para trocar ponto, este é um dos meus sites favoritos API porque é temático para o nome Star Wars. Bem, eu gosto de Star Wars, mas nós também podemos ir para trocar e dot dev barra api slash, digamos que as pessoas cortar um. E isso vai nos dar informações sobre Luke Skywalker ou pessoas. E digamos seis, quem quer que seja. Oh, quando mentirosos. E podemos obter toda essa informação do JSON. O que é bom nisso é que não é muita informação, mas é o suficiente para ser uma grande demonstração. Então vamos em frente e começar a trocar ponto dev barra api pessoas, e então apenas um número. Então isso vai ser o nosso URL, HTTPS, troca de ponto dev barra, API barra pessoas. Vamos fazer pessoa com quem quer que seja. E então vamos dizer que essa pessoa vai ser o que esse pedido acaba por ser escrito para responder com db.json e pessoa de impressão. Vamos em frente e experimentar isso. Python fazendo solicitações de API JSON. E leva um segundo e podemos ver que C3PO. E se você estiver familiarizado com Python e tipos de dados, isso se parece muito com um dicionário, não é? Agora podemos tirar o nome e dizer “imprimir”. Nome IS guia, guia. E vamos fazer uma variável F String aqui. Digamos pessoa, nome. E vamos fazer disto uma corda F. O que mais podemos acrescentar aqui? Nós temos um nome. Nós também podemos adicionar seu ano de nascimento é pessoa, ano sublinhado nascimento. E eu só estou pegando isso daqui e aqui. Então vamos em frente e executar isso mais uma vez. Nome é C3PO, ano de nascimento é 112 BY vamos adicionar mais uma guia aqui. Só para alinhar isso bem. O nome é C3PO, ano de nascimento é 12º, b, y. e agora temos acesso a todas essas informações aqui. Agora o que é legal sobre isso é que nós também temos filmes que nem chamam filmes. E filmes é simplesmente uma lista de filmes que digamos três. C3po não é. Então vamos dar uma olhada em onde 3P o é n, e vamos imprimir qual filme esse título é chamado. Então precisamos de dois. O que significa esse URL? Api filmes cinco, filmes cortar cinco. Isso é pedir isso. E chama-se “Ataque dos Clones”. E é um episódio também. Digamos que só queremos descobrir em que filmes ele está. Poderíamos então dizer para o filme pessoalmente. Filmes porque esta é, na verdade, uma lista REQ para solicitação. Pedidos, ponto obter filme, URL, impressão, filme é. E depois podemos fazer um filme. Na verdade, precisamos JSON FI isso primeiro. Então, digamos que filme é igual a solicitar ponto JSON. E então podemos fazer o título do filme. E isso vai imprimir todos os filmes para nós. Vamos também dar-nos uma declaração de impressão acima dos filmes envolvidos em. E vamos fazer isso mais uma vez. E está saindo e recebendo todos os filmes. Então isso é fazer um diferente, um pedido de API diferente para cada filme em que ele está e obter esse título. E agora estamos recebendo dinamicamente um monte de informações. Estamos recebendo um personagem C3b. Estamos verificando quais são os vídeos, quais filmes ele está envolvido. E para cada um nós estamos recebendo esses dados, todo
o filme em dados, incluindo o título e tudo o que estamos fazendo é imprimir o título. E é por isso que quando fazemos isso, você pode ver que ele está voltando um de cada vez. Filme é Nova Esperança, Império Ataca de Volta, Retorno dos Jedi, Ameaça
Fantasma, ataque dos clones e vingança, ou o CIF. Agora, como um aviso, eu realmente acredito se há alguns dados ausentes desta API, mas independentemente disso, ainda é uma API divertida de usar. Então, como recapitulação, como fazemos solicitações de API JSON? É o mesmo que fazer um pedido regular. Mas se esses dados forem JSON, podemos simplesmente fazer ponto JSON nesse objeto de solicitação. E isso vai jogá-lo em uma variável. Chamamos-lhe “pessoa”. E então temos acesso a todos esses dados. Todos esses dados em um dicionário Python. Então, o que eu gostaria que você fizesse é dar uma chance simples a isso. Você não tem que fazer um loop para aqui. Mas o que você pode fazer é uma solicitação simples ou uma solicitação GET,
e, em seguida, arquivo JSON e, em seguida, imprimir o que esses dados são. Ele vai voltar como um dicionário uma vez que é JSON desafiado ou lido de JSON, em vez
disso, ele vai voltar como um dicionário para que você possa ter acesso ao nome ou ao ano de
nascimento ou qualquer outra coisa que a API lhe dá. Vá em frente e tente isso e quando você estiver pronto, vamos falar sobre como podemos converter uma string que se parece com JSON para um pedaço real de JSON e um dicionário Pythonic.
11. Como ler JSON em Python: Certo, vamos dar uma olhada na leitura do JSON. Então, na última lição, o que fizemos foi pegar algum JSON de uma API e meio que trabalhamos com ele. E isso foi bom porque os dados estavam na verdade no formato JSON. Não era uma string, estava no formato JSON. E assim foi formidável para nós e
podemos facilmente transformar isso em um dicionário usando Python. Mas o que acontece se isso voltar como uma corda? Agora o que eu quero dizer com isso é apenas que os dados do C3PO na última lição se parecem muito com isso. Então C3PO é igual a, vamos fazer isso um pouco menor aqui. E tem toda essa informação aqui. Agora, não podemos simplesmente dizer nome do colchete
C3PO como fizemos na última lição porque esta é uma string, isso não é um dicionário. Então, se dissermos nome C3PO e tentarmos imprimir isso. Python lendo JSON dot pi, vamos ver que os índices de string devem ser inteiros. E isso é simplesmente porque está tentando cortar isso. Ele sabe que é uma string, e por isso não é um dicionário não tem uma chave ou uma propriedade chamada nome. Então precisamos converter isso. Agora podemos fazer isso com a biblioteca JSON. Tudo o que temos que fazer é digitar. Vou fazer isso um pouco maior, o JSON importado deles. E temos C3PO aqui em cima. O que podemos fazer agora é que um C3PO é igual a C3PO. Mas nós simplesmente colocar JSON dot
load, load s. Parece que a palavra carrega, mas o que ele realmente significa é carregado string. Então nós estamos pegando essa string e nós estamos jogando em basicamente uma ferramenta de conversão que vai transformar isso em um dicionário para nós. E se isso estiver formatado corretamente, não
veremos nenhum erro. E então agora você vai ver algo assim com este exemplo particular de qualquer maneira, ele vai dizer algo ao longo das linhas de nome de propriedade
esperando entre aspas duplas. E isso é porque, adivinha? Este não é devidamente formatado JSON e este é um dicionário de Python. Agora, se voltarmos aqui, pessoas como T, vamos pegar C3PO. Você pode ver todos esses dados tem aspas duplas, não
são aspas duplas, mas não usando apóstrofos, pelo menos. Então vamos em frente e copiar isso. E vamos dar um JSON formatado corretamente, o que significa que temos que trocar os apóstrofos que estávamos usando. E vamos em frente e usar três como uma corda de doutor. Então podemos ter várias linhas lá dentro. Vamos em frente e experimentar isso. legal, cacau, cacau, esse trabalho. Então, mesmo que esteja em várias linhas, foi totalmente bom. Temos C3PO é igual a esta string JSON gigante. Não é um objeto JSON, não
é um dicionário, é uma string agora. E então nós dissemos C3PO é igual a JSON dot load s. E então essa string, essa string aqui em cima, e simplesmente a converteu em um dicionário para nós. Então vamos em frente e digite, tipo de impressão C3PO. E nós vamos ver que isso vai ser um dicionário, vai ser um DIC T. Lá está, classe dict. Agora o que é legal sobre isso é que nós podemos então colocar isso para outro arquivo depois que nós adicionamos. Então vamos em frente e remover isso. E vamos mudar algo em seu vamos mudar C3PO é nome para outra coisa. Podemos dizer que o nome C3PO é igual ao meu amigo Caine como chave. E agora isso só vai mudar no dicionário. Isso não vai mudar isso no texto real aqui, precisamos converter isso de volta. E assim, para convertê-lo de volta, nós simplesmente fazer JSON dot dump, S, dump string, C3PO. E vamos fazer C3PO. String sublinhado é igual a, e vamos imprimir isso. Imprimir C3 POSTAR. E devido a isso, isso tem todos os seus dados. Isso está voltando como uma string e o nome é Ksp. Nós agora tomamos dados JSON como uma string e
você vai, você vai estar trabalhando muito com isso. Por isso, é importante saber como o JSON funciona. Nem tudo está perfeitamente formatado
no mundo do desenvolvedor ou no mundo humano. E então nós pegamos uma string, nós dissemos convertido para dicionário apropriado usando JSON load s. Então nós mudamos o nome. Depois dissemos, oh, na verdade o que queremos fazer é descarregar esses dados. Então mudamos esse nome, basicamente, mudamos aqui em cima. E então nós despejamos esses dados de volta em uma string usando
dump S. Dump string, deu-lhe uma string e, em seguida, imprimi-lo. E isso é tudo o que tínhamos que fazer. Agora, o que eu gostaria que você fizesse é dar uma chance a isso. Eu quero que você experimente. Isso é realmente importante se você estiver indo para usar JSON muito, talvez não todos os dias como um desenvolvedor Python, mas certamente toda semana ou a cada duas semanas. Então é muito, muito comum. Sinta-se livre para até mesmo roubar este código só porque ele tem o dicionário ou não o dicionário, mas os dados JSON string aqui. Não se esqueça de importar JSON, JSON dot load s. E, novamente, quando JSON é importado, json.dumps S, e isso significa string de carga, dump, string.
12. O que são função *args ?: Vamos dar uma olhada em argumentos de função. Então na natureza, em um monte de, um monte de Python, especialmente em Lake o mundo de Django. Você vai ver algo como coisa surda,
auto, pedido, args, estrela, estrela, quarks. E então nesta lição, vamos dar uma olhada no que é args. Porque, bem, isso virá com as aulas. Nós não precisamos de auto-solicitação é uma coisa do Django, mas isso pode realmente ser qualquer coisa, digamos nome. E então é preciso algum tipo de argumentos e, em seguida, algum tipo de argumentos de palavra-chave. Então vamos ignorar os argumentos de palavra-chave por enquanto, e vamos apenas trabalhar com args. Primeiro, quando estamos trabalhando com nossos ovos, vamos nos livrar disso porque não estamos usando. Se dissecarmos esta função aqui. Que tipo de dados isso parece para você? Você deveria estar dizendo que isso parece uma tupla. E isso é o que Args volta como. Args sempre volta como uma tupla. Então vamos criar uma função aqui onde em vez de coisa surda, vamos dizer adicionar números. E nós vamos simplesmente imprimir os args e vamos nos livrar do nome porque isso vai ser um argumento posicional necessário. Nós não queremos isso e nós só queremos lançar em qualquer número de argumentos. E a coisa boa sobre args aqui é que você pode passar em um número ilimitado de argumentos e ele só vai funcionar. Então agora vamos dizer adicionar números 13579. E vamos, sim, lá vamos nós. Agora isso não vai realmente adicionar os números, mas isso vai imprimir 13713579. Então a função args dot py, e ele volta como 13579. Vamos dar uma olhada nisso. Vamos dissecar isso um pouco. Vamos ver o que realmente é. Isso é mesmo uma tupla ou eu estava apenas puxando sua perna? Olhe para isso. Eu não mentiria para você. Eu não faria isso com você. É uma tupla. E assim quaisquer argumentos, não argumentos posicionais. Por exemplo, se tivermos um argumento posicional chamado nome, usarei um Caleb como exemplo. Este nome aqui Caleb é atribuído aos primeiros argumentos posicionais. Tudo depois deste argumento posicional é um, é um arg estrela, ou apenas um argumento regular. E então o que isso está fazendo é dizer, oh, vamos igualar o primeiro. E então, se não fingíssemos, onde, se fingíssemos que não existia, o resto deles seriam argumentos. E agora podemos trabalhar com tudo isso. O que é legal sobre isso é que podemos dizer que total é igual a 0. E se quiséssemos adicionar todos esses números, podemos dizer para um em args, total é igual ao total mais qualquer que seja esse número vai ser. Então ele vai adicionar 13579 juntos. Devolver total. E então aqui fora podemos dizer que o total é, é adicionar números. Caleb, 13579. Imprima o total. E vamos realmente nos livrar desses argumentos obrigatórios posicionais porque não estamos usando isso. Então, por que está lá? E vamos fazer isso e temos 25. Vamos juntar isso em nossas cabeças para ter certeza que isso funciona. Um mais três é quatro mais cinco é nove, mais 716 mais nove é 25. E então agora podemos tomar argumentos ilimitados usando a palavra-chave args. Agora não tem que ser um RGS. Só tem que ser delimitado por aquela estrela. E é assim que Python sabe que este vai ser o resto dos argumentos. Em JavaScript. Acredito que usamos uma coisa chamada “operador de descanso”. Então, um ponto-ponto-ponto. Em Python usamos uma estrela ou um asterisco. E isso é simplesmente diz ao Python que o resto dessas funções ou o resto
desses argumentos nesta função vai ser um conjunto de argumentos. E assim ele sabe para empacotá-los, jogá-los em uma tupla chamada args, e então nós podemos trabalhar com todos esses argumentos. Agora, o que eu gostaria que você fizesse é tentar isso. Eu quero que você crie uma função onde você talvez adicione todos os números juntos ou você multiplique todos os números juntos, faça algum tipo de adição básica ou multiplicação ou algo assim. E você pode até mesmo anotar nomes. Se você queria pegar uma série de nomes, eles não têm que ser números. Só usamos números porque era simples. Mas você poderia usar uma série de nomes e imprimir todos os nomes independentemente do que você acabar tentando. Eu quero que você experimente isso porque você vai ver Star Args em todos os lugares. No nível profissional, Python, é muito, muito importante que entenda como isso funciona. Quando você terminar isso. Na próxima lição, vamos falar sobre essa coisa chamada quarks, argumentos de
palavra-chave, e isso é delimitado por duas estrelas. É um pouco diferente, meio que o mesmo.
13. O que são função **kwargs?: Ok, vamos dar uma olhada em argumentos de palavra-chave em uma função. Muitas vezes você verá algo def, um argumento posicional, argumento obrigatório posicional. Como você poderia ter algo como argumentos opcionais posicionais. Então nome aij é igual a 31 por padrão, então você pode ter alguma forma de argumentos lá, qualquer tipo de argumentos. Estes não têm nome. Estes são simplesmente como 1357 ou nove como fizemos na última lição. E então temos args de palavras-chave. E isso é se a função completa, isso é praticamente tudo o que podemos fazer dentro de uma função. Em relação aos parâmetros. Então sabemos que esse nome vai ser exigido, absolutamente necessário. Idades, opcionais, quer esteja lá ou não, realmente não importa. A idade vai ser sempre 31 anos. Então temos args. E isso pode ser qualquer número de argumentos, pode ser literalmente um número ilimitado de argumentos. Ele volta como uma tupla e podemos percorrer os dados nessa tupla. Args palavras-chave, quarks é delimitado por duas estrelas, dois asteriscos. E o que isso significa é que, em vez de voltar como uma tupla, volta como um dicionário porque os args de palavras-chave se parecem com isso. Coisa é igual a algo. Ou se fizermos isso em termos Pythonic coisa alguma coisa. Então é um pouco mais do Dictionary. Então vamos em frente e excluir isso e vamos criar um exemplo onde usamos quarks. Tão surdo. Digamos que uma pessoa tem algum tipo de atributos. Ainda não sabemos quais são esses atributos, mas podemos percorrê-los. Então, primeiro de tudo, vamos imprimir quarks e imprimir tipo de quarks. E vamos executar a pessoa e digamos que o nome é igual a Jacob. Aij é igual a 27. Cérebro é igual a enorme. E o que é ótimo nisso é que eu realmente conheço uma pessoa chamada Jacob. Acho que ele tem uns 27 anos. E ele é provavelmente a pessoa mais inteligente que já conheci. função Python quarks ponto py. E vamos ver se temos um dicionário chamado Jacob, 27
anos, cérebro enorme. E tudo o que isso fez foi literalmente empacotar isso e jogar esses argumentos de palavra-chave em um dicionário para nós. Então agora podemos trabalhar com isso. Temos algo com que trabalhar. Então podemos agora dizer em nossa função, se, vamos verificar se a idade está em quarks. Imprima sua idade. E então podemos fazer quarks ponto-ponto porque é apenas um dicionário. E já sabemos como usar o ponto GetMethod. Quarks Dot obter nome. E é agora que estamos usando o operador in, estamos usando Get, estamos usando dicionários estavam usando um condicional, estamos usando argumentos de palavra-chave, estamos usando uma função e estamos usando instruções de impressão e nome. Por que eu coloquei o nome? Eu deveria ter colocado idade. Se você está gritando com sua tela indo aplicativo. Bem, você poderia pegar. Diz que você é. Apenas um após o outro aqui, apenas matando hoje. Você tem 27 anos. Cuco, cuco, cuco. Vamos fingir que consegui isso na primeira tentativa. Então agora você pode estar pensando, onde é realmente usado Lake. E isso parece meio rebuscado. E se você está pensando que você não está errado, mas você provavelmente não está completamente certo também. Um bom exemplo disso seria como, digamos que você deseja encomendar pizza de um site. Pizza de pedido surdo. Precisamos de um nome posicional. Precisamos de um endereço para entregá-lo. E digamos coberturas. Agora coberturas vai ser um argumento de palavra-chave. E assim podemos dizer que a ordem de impressão é para o nome. Vou usar uma corda F aqui. E o endereço é enviar para o endereço. Agora precisamos chegar a algum tipo de preço. Então o preço agora vai ser, digamos, um padrão de US $18. E para cada tópico que temos, queremos adicionar mais $2 a ele. Então agora podemos percorrer coberturas. Podemos dizer para o valor chave em itens coberturas. Porque sabemos que este é um dicionário e podemos simplesmente percorrer todas as coberturas para não nos importarmos com os tópicos. Pode ser, pepperoni, pode ser presunto, pode ser abacaxi, poderia ser queijo extra, poderia estar ajudando você como eu não sei, isso realmente não importa. Só queremos descobrir o preço aqui. E então vamos percorrer todos os itens do dicionário que nos dá um par de valores de chave. E francamente, nem precisamos usar a chave ou o valor. Então o fato de que estamos usando itens de ponto é completamente inútil. É apenas bom, por exemplo, código neste vídeo. Então vamos em frente e dizer para cada item no ano, preços iguais ao preço mais US $2. Vamos imprimir isso. Quando terminarmos. O preço total é o preço, e vamos devolver o preço. Então vamos em frente e agora encomendou esta pizza. Como instanciamos essa função em particular? Nós pedimos pizza porque esse é o nome. Digamos que vai para a Amanda. Ela mora no Canadá. E que tipo de coberturas ela quer? E dizer como Pena tos é igual a verdadeiro para argumento de palavra-chave. Queijo extra é igual a verdadeiro, e presunto é igual a verdadeiro. Então nós temos um parafuso posicional que até um pouco aqui. Argumento obrigatório posicional chamado nome e outro chamado endereço. Todo o resto é considerado um argumento de palavra-chave. Então, se pedirmos esta pizza, isto é, agora
podemos dizer que o preço total é igual a isso. Vamos em frente e realmente executar esta função Python, quarks. E diz que as ordens da Amanda são enviadas para o Canadá. O preço total é de $24.024. E isso é porque temos 246 dólares extras. Porque cada tópico vale $2 e o preço base é 18. E este é um exemplo do mundo real de como você poderia, possivelmente, se você quisesse usar argumentos de palavra-chave. Você também pode verificar se os endereços nos argumentos de palavra-chave. Porque se o endereço estava nos argumentos de palavra-chave, você pode ignorá-lo ou se não foi um argumento obrigatório posicional como este. Se ele estava lá, então ótimo, você sabe, ou para enviar a comida ou entregar a comida para, você sabe, nós enviamos comida? Entregamos comida? Para entregar a comida? Caso contrário, se os endereços não estiverem em coberturas. E nós estamos simplesmente verificando se há uma chave dentro de um dicionário lá. Se os endereços não estiverem em coberturas, você precisará pedir um endereço ao usuário. E esta é uma situação do mundo real. É assim que você pediria pizza usando Python. Agora eu gostaria que você desse uma chance. Eu vou desfazer isso para este código realmente funciona. Vá em frente e crie uma função que leva um par de argumentos
obrigatórios posicionais e, em seguida, deixá-lo exceto argumentos de palavra-chave com estrela, estrela. E novamente, ele não precisa ser chamado kw args e palavras-chave args. Você provavelmente vai ver dessa maneira. Pode ser chamado de qualquer coisa. Mas na maioria das vezes, você vai vê-lo como quarks. Vá em frente, experimente. Você vai precisar saber como isso funciona quando nos movemos para coisas como o Django porque usamos argumentos de palavra-chave em todos os lugares no Django. Na próxima lição, vamos falar sobre como podemos instalar o PIP.
14. Como instalar pip: Vamos dar uma olhada em como você pode instalar pip. Então, em primeiro lugar, o que é Pip? Pip é um pacote. Eu acho que é considerado um pacote, mas as pessoas basicamente permite que você instale pacotes de terceiros usando Python. Então, se você já usou JavaScript, você pode ter usado o NPM. Em PHP, é chamado Posner, eu acredito compor compositor. Acho que é compositor e já faz algum tempo. E em Python chamamos de PIP. E assim como funciona é que podemos dizer pip install package name, e isso o torna disponível em nosso computador para nós, então agora podemos usar o código de outras pessoas em nosso computador. Agora, se você não tiver, por exemplo, solicitações instaladas, você pode simplesmente fazer solicitações de instalação de pip. Agora vamos verificar para ver se você realmente tem pip instalado primeiro, vamos fazer Pip traço v terminal interno. E eu tenho pip instalado. Se você não tem isso, se isso lhe dá algum tipo de erro, como comando não encontrado tipo de erro, vamos precisar instalar o PIP. Agora, se você já tem pip instalado e você pode já ter pip instalado, só porque Python pode vir com ele. Se Python vem com sua versão do Python vem com Pip, você pode ignorar o resto deste vídeo. Se você não tem PIP, vamos em frente e instalar o PIP agora. Então, para instalar o pip, o que vamos querer fazer é que queremos, antes de tudo, enrolado é para o nosso computador. Então, queremos baixar este arquivo para o nosso computador. E assim podemos fazer isso com curl em nosso terminal, HTTPS dois pontos barra barra, bootstrap dot p, y p pacotes Python dot io slash get dash, Pip dot py do que nós traço o e vamos chamá-lo get pip dot py. Agora e ver se eu tenho algum erro de digitação no ano devido a, devido ao devido download do arquivo. E se eu fizer ls traço LA ou se você estiver no Windows, você pode escrever DIR. E temos o Pip? Temos uma função aqui chamada “get pip”. Ótimo, é o que queremos. Então agora, uma vez que você tem esse arquivo, tudo que você tem que fazer é digitar Python, obter pip dot py. E isso irá em frente e obter um PIP de instalação em seu computador para você. Agora que o comando de novo é só isso. Curl HTTPS dois pontos barra barra bootstrapped ponto pi,
pi um ponto PIPA io barra GetDish, Pip, ponto PY, obter traço, Pip dot pi. Por isso, sinta-se à vontade para pausar o vídeo aqui se precisar. Se isso não estiver disponível para você nesta plataforma, basicamente copiar e colar, basta pausar o vídeo e escrevê-lo. E então você precisa executar Python, obter pip dot pi. E uma vez que isso é feito correndo, você deve ser capaz de fazer Pip dot dash v. E Pip dash v vai mostrar-lhe sua versão Pip onde ele está sendo usado. Então, por qualquer motivo, minha versão do Pip está usando 3.8, Python 3.8. E isso me diz python 3.8 aqui. Agora instalar um pacote é tão fácil quanto dizer algo como pip install, cor Emma. E isso vai explodir e baixar um monte de coisas. Diz que já está satisfeito para mim. Acho que já o tenho de alguma forma. E eu posso desinstalar fazendo Pip desinstalar ColorRamp. Sim, vamos nos livrar disso. Não precisa estar no meu computador, então me livrei dele. Outro que você pode, você pode possivelmente querer se ele não vem com a sua versão do Python é ir para o seu shell e simplesmente digitar solicitações de importação. Certo, funcionou para mim. Mas se você vir um erro que se parece muito com este módulo, erro Not Found, você precisará instalar solicitações. Então vamos em frente e desistir. E você pode fazer solicitações de instalação pip. E isso nos permite então em nosso código, o que vimos antes era como pedidos de importação ou importação JSON. E isso só nos permite importar o código de outras pessoas. Agora Python vem com algum de seu próprio código, como você não precisa da biblioteca JSON. Ele só vem com Python. Não faz parte da parte central do Python. Então você importa JSON, enquanto as solicitações podem ou não vir com sua versão do Python. Se isso não acontecer, você tem que fazer pedidos de instalação pip e, em seguida, podemos em nosso código, pedidos de importação.
15. Mutable vs imutável: Tudo bem, bem-vindo de volta. Vamos dar uma olhada nessa idéia de algo que pode ser mutável vs. imutável. E estas são palavras extravagantes para algo mutável contra um mutável? Isso é tudo o que é. Desenvolvedores, programadores, nós realmente gostamos de nossas palavras extravagantes. Então nós usamos imutável e mutável, realmente apenas significa mutável e imutável. É isso. Mas há algo a observar aqui é que quando você está trabalhando com certas variáveis, certas coisas são mutáveis ou mutáveis e algumas coisas são imutáveis, imutáveis. E assim, por exemplo, você pode estar pensando que uma string é mutável, na verdade não
é, não tem mutável. Então, se nós temos algum tipo de corda aqui e nós somos digamos, a raposa pulou sobre a vaca. E então dissemos que string é igual a outra coisa. Podemos estar pensando que isso é realmente mutável, mas o que está realmente acontecendo nos bastidores aqui é algo muito, muito diferente, algo que você não esperaria necessariamente. Então string aqui está pegando essa string em particular e está bloqueando em um pequeno pedaço de memória em seu computador. E apelidamos de corda. Esse é o nome da variável. Agora, nos bastidores, não podemos mudar isso de forma alguma. E então, se fizemos string dot superior, e vamos imprimir isso, vamos imprimir string dot superior, e vamos também imprimir apenas a string regular. E vamos fazer Python mutável vs. imutável. Vamos ver que uma é maiúscula e outra não é maiúscula. E o que você realmente vê aqui é string está pegando tudo isso, transformando-o em maiúsculas, mas não está restaurando de volta para esta variável particular. O que ele realmente está fazendo é apenas manter isso na memória e depois deixar você usá-lo. Agora, se quiséssemos, poderíamos tentar sobrescrever isso. Podemos dizer string é igual a sobre escrito. E com certeza isso vai funcionar para nós. Mas nos bastidores é fazer algo que não se espera. Nos bastidores diz: “Ok, corda é igual a esta frase em particular aqui. E então essa string está sendo sobrescrita. Isto tem um pedaço de memória. Isto tem um pedaço de memória diferente. Então nós não estamos colocando esta peça nesta corda e,
em seguida, colocando esta peça na mesma corda, nós estamos realmente substituindo-a completamente. Então estamos dizendo que isso tem um pedaço de memória. Isso não pode ser alterado uma vez que está lá e lá para sempre, ou até que seu script termine, pelo menos. Então nós estamos dizendo, ok, bem, nós sabemos que há um pedaço de memória chamado String. Vamos sobrescrever isso com um novo pedaço de memória e chamá-lo de “sobrescrito”. Então, nos bastidores, você não pode realmente mudar uma string. Agora sobre selvagem, porque você pensaria que você poderia ser capaz de mudar uma string, mas ele simplesmente não funciona dessa maneira em ciência da computação. Então, outro exemplo disso seria como uma lista. Para termos nomes iguais a Caleb, Jacob, Deus e Amanda. O que é diferente nisso é porque estamos usando uma lista. E mesmo que essas cordas aqui, esses itens individuais sejam imutáveis, a lista em si é mutável, significa que
podemos alterá-la, podemos adicionar a ela, podemos acrescentar a ela. Então podemos fazer nomes dot append. E vamos adicionar o gato chamado ruibarbo, nomes impressos. E você percebe como nós não fazemos nomes é igual a dois nomes dot append. Nós não fizemos isso. Nós simplesmente atribuir a variável aqui. E então nós dissemos com essa variável, adicione algo a ela, e então imprima isso. Vamos em frente e executar isso e vemos o exemplo sobrescrito. As duas primeiras linhas. Depois vemos Caleb, Jacob, goleiro, Amanda e ruibarbo. E curiosamente, ao contrário disso, onde fizemos a corda ponto-ponto, não a salvava como maiúscula. Podemos ver isso aqui. Era maiúscula uma vez, mas ele não guardou como maiúscula. Considerando que nomes com uma lista, sim. Nós definimos essa variável, qualquer que seja essa variável vai ser como uma lista. Então dissemos que o ponto da lista anexa um novo item, adicionando novo item a essa lista, e ele o salvou automaticamente para nós. Isso significa que as listas são mutáveis, mas as cordas não são mutáveis. Agora, isso é importante na sua vida em Python todos os dias? Não, a menos que você esteja indo para entrar provavelmente em ciência de dados e você tem quantidades
gigantes de dados e você precisa ser muito eficiente em desenvolvimento web. Nós realmente não precisamos saber disso, mas é uma coisa boa de saber, mesmo assim. Agora, como seu dever de casa, o que eu gostaria que você fizesse é sair e o Google é uma tupla, mutável ou imutável. Sabemos que a lista é mutável. Sabemos que uma string é imutável, mas uma tupla é como uma lista à qual você não pode adicionar nada. É considerado mutável ou imutável? Você vai ter que ir fazer um pouco de pesquisa para este aqui. Quando você terminar isso vamos para a próxima lição onde falamos sobre essa palavra chique chamada numeração E.
16. O que é is: Kelley Dhaka Lee, vamos falar sobre essa coisa chamada numeração E. E realmente tudo isso vai fazer é nós vamos fazer um loop através algum tipo de lista e nós vamos obter o número do índice a partir dele. Então poderíamos criar uma lista, digamos que animais é igual a uma lista de gulley, ruibarbo, Zafar e Henry. E então podemos dizer para animais, em animais, imprimir o animal, mas como sabemos exatamente qual ordem isso não é? Como sabemos que o ruibarbo vai ser o número dois? Ou como sabíamos que Henry seria o último? No momento, não temos. E assim, se
executarmos este código, vamos ver que este é um padrão para loop. Aprendemos sobre isso no Python um-para-um, nada chique, nada novo, nada excitante. Então, se quiséssemos obter a numeração aqui, usamos essa função chamada enumerate e envolvemos nossa lista nele. E o que isso vai fazer é se tentarmos executar isso, confira isso. Dá-nos uma tupla. E é, na verdade, cada item aqui é uma tupla. É uma tupla de tuplas, uma lista de tuplas. E então 0 e caramba, um ruibarbo para HHS esforço três, Henry. Então agora temos esses valores de índice. E porque há dois deles aqui, podemos fazer essa coisa chamada desempacotar. Então podemos fazer índice e depois animal. E então se imprimirmos apenas o animal que vai aparecer como da primeira vez. Poderíamos imprimir o índice e depois aquele animal. E podemos ver aqui 0 barranco, um, ruibarbo para Zafar, três Henry. Então agora estamos começando a obter esse número de índice. Agora podemos realmente fazer algo com isso. Podemos dizer se o módulo de índice dois é igual a 0, então cada segundo continua. E então se não continuarmos, se o índice com um módulo de dois tiver um restante de 0 ou não tiver um restante de 0, imprima esse animal. E assim não só vai mostrar a cada segundo. Isso mostra ruibarbo e Henry. Ou como um exemplo alternativo aqui, o que podemos fazer é imprimir com um índice F String mais um número. Vamos fazer uma guia que não é fazer tablets de espaço, apenas fazer tabulação. E depois o animal. E isto vai parecer uma lista numerada adequada para nós. 1234, Kelly ruibarbo é EFR e Henry. Então agora estamos chegando a algum lugar com isso. Agora, enumerar vem em muito útil. Eu uso como provavelmente uma ou duas vezes por semana em código de nível profissional. E então você vai precisar saber o que enumerate faz. E realmente tudo o que ele faz é dizer, hey, vamos dar alguns valores de índice aqui. Então isso vai ser 0, isso vai ser um, isso vai ser dois,
e isso vai ser três simples adicionar é
que tudo o que ele faz é adicionar valores de índice porque às vezes você precisa desses valores de índice. Vá em frente e experimente isso. Na próxima lição, vamos falar sobre a compreensão de listas.
17. Entendas de lista: Tudo bem, vamos dar uma olhada em uma compreensão de lista. Então, uma compreensão de lista é realmente apenas um método abreviado de escrever um for-loop e colocar todos esses dados em uma lista. Agora, nós veríamos um exemplo antigo, como itens é igual a algo assim. Na verdade, não é devido itens. Vamos fazer. Números é igual a uma lista de números. Para um em 13579. Números ponto anexar qualquer que seja esse número vai ser para o poder de dois números impressos. E assim vemos 19, 25-40, 981. E então tudo o que fizemos foi expor o número contra o número dois. Então nós dissemos um para o poder de 23, para o poder de 25 para o poder dois é ter uma prioridade de nove para o poder dois e você obtê-lo. Há uma maneira mais rápida de fazer isso em Python. Isso é uma coisa muito pitônica de se fazer, e parece muito bizarro no início. Mas em vez de fazer isso o longo caminho, poderíamos dizer que números é igual a algum tipo de valor para um valor em uma lista de algum tipo. E então o que estamos dizendo aqui é olhar para este loop. E isso se parece muito com um em uma lista de 13579. E veja isso mesmo quando um destacado, é exatamente o mesmo. E tudo o que estamos a fazer é devolver esse valor à esquerda. Então agora estamos dormentes. Podemos usar entorpecido em vez de x num para o poder de dois. E vamos imprimir números mais uma vez. E vamos comandar isto. Vamos ver se isso é exatamente a mesma coisa. Então agora, em vez de escrever 123 linhas de código, você sabe, é apenas três linhas de código. Escrevemos tudo em uma linha de código. E então, novamente, nós apenas dissemos a resposta para algum tipo de iteração ou iterável em uma lista de coisas ou uma lista de iterações. E temos colchetes em torno dele. E os colchetes em torno disso significa que isso vai ser uma compreensão de lista. Podemos fazer algo muito parecido com dicionários chamados de compreensão de dicionário, sobre
o qual aprenderemos na próxima lição. Mas, por enquanto, só precisamos saber que temos um suporte duro aqui, parece uma lista e temos algum tipo de coisas estranhas aqui. Agora o que eu quero que você faça é que eu quero que você experimente isso porque as compreensões de listas são muito, muito populares em Python. Eles são significativamente mais populares do que uma compreensão de dicionário. E você vai precisar saber como isso funciona. Então, quando você vê, você não apenas olha para ele e você diz, oh, eu não sei o que isso significa. Eu não sei o que é isso. Nem sei como se chama isto. Agora você sabe que essa sintaxe estranha aqui é sua resposta para sua iteração em um iterável envolto em uma lista. E isso é idêntico ao que escrevemos aqui. É só um pouco mais curto. Então vá em frente, experimente. Divirta-se um pouco com ele. Tente quebrá-lo, tentei entendê-lo. Provavelmente gastar uns cinco minutos com ele em apenas mexer ao redor e ver o que você pode ou não fazer. Se você quiser dar um passo adiante, eu definitivamente sugiro ir embora e pesquisar como você pode adicionar uma declaração if aqui. Porque você pode ter instruções if e else dentro de compreensões de lista também. Então você tem uma grande linha com um loop for. E você pode ter uma instrução if dentro de que para loop e apenas saída algo se houver uma resposta particular. Vá em frente, experimente quando estiver pronto. Vamos para a próxima lição onde aprendemos sobre as compreensões de dicionários.
18. comprehensions de dicionários: Bem-vindo à compreensão do dicionário. Assim como uma compreensão de lista, uma compreensão de dicionário pode ser escrita em uma única linha também. Então vamos em frente e criar um exemplo longo e, em seguida, vamos recriá-lo com um exemplo mais curto. Então vamos fazer um exemplo onde queremos criar um dicionário fora de uma lista de tuplas. E assim podemos dizer algo assim. Nomes é igual a, temos uma lista e uma tupla aqui chamada Caleb, ocupação, codificador. Agora, para transformar isso em um dicionário, teríamos algo como d é igual a e depois quatro. E porque esta é uma tupla com dois itens, podemos descompactá-la. Então, podemos dizer para o valor da chave em nomes, D0, C0 é igual ao valor. E então podemos imprimir o que quer que D seja para dicionário. Então dicionário Python. E você pode ver que há um dicionário agora chamado Caleb Ocupation Coder. Poderíamos até checar novamente se ele é de fato um dicionário, embora, quero dizer, podemos olhar para ele por sua sintaxe. Mas vamos ver como isso se parece. Na verdade, é um dicionário. E então tudo o que fizemos aqui foi criar um dicionário a partir de uma lista. O caminho mais longo, há uma maneira mais curta de fazer isso. Então vamos em frente e nos livrar disso. E eu vou fazer isso um pouco mais curto. Assim podemos ver o código. Então agora podemos dizer D é igual a uma compreensão de dicionário. Então nós normalmente colocamos algum tipo de chave, algum tipo de valor para valor de chave em, digamos nomes, que é um iterável. Então, vamos escrever isso pelo caminho mais longo. Portanto, este é um valor de dois-pontos chave para cada valor de chave em nomes. Vamos em frente e imprimir d novamente, e vamos ver que é exatamente o mesmo, vai olhar exatamente o mesmo topo e baixo, assim como este. E então tudo o que fizemos aqui foi abrirmo-nos e fecharmos com chaves. Nós dissemos os dois pontos chave, assim como um dicionário normal quando estamos criando um dicionário do zero. Em seguida, tem um valor. E então estamos dizendo que a chave e o valor vêm de itens descompactados. Em um iterável. Qi foi o primeiro item descompactado, o valor era um segundo item descompactado. E nomes é o iterável aqui em cima. Agora, isso é muito mais fácil de escrever do que ter que escrever essas três linhas. E você também pode adicionar declarações aqui também para garantir que você só adicione certas informações, que eu vou deixar você pesquisar por conta própria, porque isso é uma parte importante de aprender a codificar. Mas também há mais uma maneira. Poderíamos também simplesmente dizer D é igual a nomes DECT. Confira isso. Simples typecasting no seu melhor. Então nós vamos aparecer, vamos imprimir D3 vezes e verificar isso. Fomos capazes de converter nomes para um dicionário automaticamente com uma única linha de código. E nós usamos como para seis caracteres mais um nome de variável. Então, há algumas maneiras diferentes de fazer isso. Agora, uma compreensão de dicionário não é tão comum quanto uma compreensão de lista. Compreensões de lista são muito populares. Em Python. Compreensões de dicionário populares, não tão populares, mas você ainda vai ver isso e você vai precisar saber como eles funcionam. Então vá em frente e tente isso. Sinta-se livre para executar este exemplo linhas de um a três. Apenas, você vai fazer um loop através de um iterável chamado de lista. E essa lista tem nomes. Cada item nessa lista é um conjunto de tuplas ou um conjunto de tuplas que não se lembra do que é chamado lá, mas tem um primeiro valor. Segundo valor, vírgula, outra tupla, primeiro valor, segundo valor. E você pode descompactar isso usando o valor de chave nesse iterável. E então você pode criar uma compreensão de dicionário. Em seguida, imprima isso, certifique-se de que é realmente o que você espera que seja. Vou desfazer este código para que possas ver o caminho mais longo. Vá em frente e experimente. Se você ficar preso, definitivamente venha conferir a aprendizagem do grupo Facebook código. Estamos aqui para ajudá-lo a aprender Python.
19. Como obter valores de dicionário: Vamos dar uma olhada em como podemos obter valores de dicionário. Agora eu toquei nisso um pouco em algum momento, algumas lições atrás. Mas se tivermos um dicionário, podemos verificar se existe um valor e obter esse valor pelo seu nome de propriedade. Então vamos criar um dicionário aqui chamado cursos. E digamos que temos um curso JavaScript, um curso JS, e é chamado de script java 101. E temos outro curso para Python chamado Python 101. Também temos outro chamado Python 201. Vamos fazer desta uma lista, Python. E há também como HTML 101 e todas essas coisas boas, CSS 101. Este vai ser chamado de HTML 101. E então digamos que queríamos obter JavaScript. Queríamos tirar isto daqui. Agora, nós não necessariamente sabemos o tempo todo, todos os valores que vêm em um dicionário. Normalmente fazemos alguma depuração de impressão onde fazemos cursos de impressão. E então, se o vermos lá dentro, podemos fazer o curso de impressão JS. Poderíamos fazer algo assim, mas nem sempre saberemos e às vezes imprimimos a depuração. Ele. Tudo bem fazer, mas
é meio doloroso fazer ao mesmo tempo. Então há uma maneira melhor de fazermos isso. Então podemos realmente dizer Cursos ponto obter JS e muitas vezes você vai ver isso. Cursos ponto obter JS, nenhum. E isso é o que você vai ver. Dot obter algum nome de propriedade que corresponda ao nosso leão na linha dois ou propriedade na linha dois. Ou um nome de chave às vezes chama a propriedade às vezes como uma chave. São termos intercambiáveis. Ou se não houver um conjunto algum tipo de padrão. E o padrão aqui vai ser N O N E vai ser Nenhum. E então, se nós
imprimirmos isso, nós vamos ver que ele nos dá JavaScript 101. Agora, isso é bom. É exatamente o que queremos. Mas e se quiséssemos obter CSS? Bem, não há nada lá, então isso vai imprimir absolutamente nada, apenas nenhum. nada lá, porque não há nada lá. E nós também podemos dar-lhe um padrão, texto
padrão aqui. E isso vai nos dar o texto padrão aqui, ou melhor ainda, porque estamos seguindo o tipo de padrão de JavaScript, HTML
um-para-um, Python ,
um-para-um, etc. Poderíamos fazer CSS 101. E então, se ele pode obter CSS 101 fora deste dicionário, ótimo, ele vai, caso contrário ele vai para o padrão CS101 para, quando nós imprimir isso, nós vamos ver ele diz CSS 101. E isso porque CSS como uma chave, como uma propriedade dentro deste dicionário simplesmente não existe. Então ele cai de volta para CSS um-para-um ou qualquer coisa que decidimos dar. Agora, onde isso é útil é se eu comentar que fora, podemos dizer se Cursos ponto obter CSS e nós não vamos dar-lhe nenhum porque é isso que o padrão é. Podemos simplesmente dizer “imprimir”. Você está matriculado no beisebol esse direito, matriculado no CSS 101. Agora, veja isso. Isto não vai imprimir nada, não faz absolutamente nada. E se dissermos, se os Cursos ponto obter e deu algum tipo de valor em seu CSS, um-para-um. Isto vai ser executado? E esta é uma boa pergunta para se fazer. Ele diz que você está inscrito no CSS um-para-um, e isso é porque ele não conseguiu obter esse valor CSS. Então ele foi e definiu um padrão. E isso é muito parecido com dizer se uma string é igual a CSS 101, que muitas vezes é por isso que você vai ver isso. E isso é apenas um pouco mais explicitamente escrito. Então isso vai dizer se Cursos ponto obter CSS, se houver um, legal, executar esta instrução if. Caso contrário, nenhum. E sabemos em declarações condicionais com Python que se você disser se nenhum, isso será o mesmo que dizer se falso, não será executado. Então, quando tentarmos isso de novo, não vai imprimir nada. Eu posso fazer isso uma e outra e outra vez. Literalmente não imprime nada. Agora você vai ver isso o tempo todo, sem parar provavelmente todos os dias como um desenvolvedor Python profissional, o que você quer fazer como sua tarefa é o que eu gostaria que você fizesse como sua tarefa é obter um pouco de experiência prática com este . Vá em frente e crie um dicionário. E nesse dicionário eu quero que você vá e, em seguida, use dot get e, em seguida, um dos valores chave e dar-lhe um padrão. E brinca com uma declaração “if”. Basicamente, faça exatamente o que eu fiz neste vídeo, mesmo que leve apenas trinta segundos, você pode pensar, oh, bem, isso não tem sentido. Mas realmente você está acumulando muita memória muscular aqui. E o que é bom sobre a memória muscular é que assim que você a vê, assim que você começa a digitar, eventualmente em algum momento ela se torna uma segunda natureza. Você não tem que pensar nisso. Simplesmente acontece. Você conhece Python. Vá em frente e experimente isso. Na próxima lição, vamos falar sobre algo um pouco mais complicado chamado de ambiente virtual.
20. Crie um ambiente virtual: Certo, vamos falar sobre ambientes virtuais. Um ambiente virtual é uma maneira de compartimentar pacotes. Então, por exemplo, eu posso usar pip para mostrar meus pacotes. Eu posso dizer Pip mostrar Django. E eu tenho o django instalado aqui. Estou usando o Django 2.2.1 três, e isso está no meu computador. Agora, e se eu tiver um projeto que esteja usando uma versão diferente do Django, digamos Django 3.1. E então vamos fazer um passo mais complicado. E se eu tiver cinco sites diferentes usando o Django, mas todos eles estão usando pacotes Django diferentes. Atualmente o que tem que fazer é Pip desinstalar o Django e pip install Django é igual a 3.1, seja o que for, eu teria que fazer isso uma e outra vez e outra vez. E você pode realmente ver quando eu estou usando Pip show jangle aqui que ele mostra exatamente onde Django está, e isso está bem no meu computador. É em estruturas de biblioteca, Python Framework versões 3.8 lib Python 3.8 pacotes de traço site. Isso foi uma boca cheia. Mas e se você tiver, você sabe, um projeto, digamos um site do Django novamente, onde você queira compartilhar isso com todos os outros da sua empresa. E você quer que eles usem o Django também. Bem, em vez de empacotar o Django e enviá-lo com seu site e enviá-lo para todos hits como compactar um arquivo e enviá-lo para todos. Você pode simplesmente dizer a eles para instalar o Django usando uma determinada versão. E fazemos isso e separamos essas versões diferentes onde separamos esses ambientes diferentes são esses projetos usando um ambiente virtual? E isso é uma coisa muito, muito comum no mundo de Python. Então, para entrar em um ambiente virtual requer uma de duas coisas, uma de duas etapas, ou você vai estar em um sistema baseado em Unix como Mac OS ou Linux. Eles são muito, muito parecidos. Ou você vai estar no Windows, eu vou te mostrar como fazer isso em ambos. Então, para criar um novo ambiente virtual, em primeiro lugar, vamos fazer ls dash l a, ou se você estiver no Windows, você pode digitar DIR. E se eu rolar aqui, normalmente você vai ver uma pasta chamada fornecedor de pontos ou apenas vend ou n. Estes são os três mais comuns que eu já vi lá fora. Então, ainda não temos nenhum desses. Vamos em frente e criar isso para que possamos fazer Python, dash m, v e v dot v
e v. E essa é a pasta em que vamos colocá-lo. E vai levar um segundo e pensar um monte de coisas. Vs Code são inteligentes o suficiente. Dizia que notamos que um novo ambiente virtual foi criado. Deseja selecionar para esta pasta do espaço de trabalho? Sim, OK. Poderia muito bem. Você pode ver aqui que eu tenho uma pasta. Se eu fizer ls traço LA ou no Windows DIR, role para cima. Agora tenho uma pasta aqui chamada fornecedor de pontos. Eu também tenho um VS Code, um que é apenas VS código sendo VS código. Não temos que nos preocupar com isso. Mas eu tenho que VS, V0 e pasta Vi aqui, e tem bin lib incluir pi n, v dot CFG. Se você está usando pi n, o que eu estou, você pode não ter isso. Mas é assim que criamos um ambiente virtual. Muito simplesmente, é apenas Python traço m, v dot v NV ou o que quer que você queira chamar essa pasta, eu costumo chamá-lo de ponto v, n v, Então está escondido. E nós tentamos não submeter estes para os nossos repositórios Git. Agora, isso é tudo bem e bom. Mas se eu fizer Pip mostrar Django. Ainda está usando exatamente o mesmo local. Ele ainda está usando exatamente a mesma versão de antes. Na verdade, não estamos usando nosso ambiente virtual. Temos que entrar nisso, então criamos. Mas agora temos que entrar nesse ambiente virtual. Então, se você está no Mac ou se você está no Linux, você pode digitar ponto fonte VN sido ativado. E você pode ver que diz ponto VN aqui. Estou em um ambiente virtual agora. Agora veja isso. Se eu fizer o Pip, mostrar ao Django, nada aparece. Não está instalado no ambiente virtual dela. E o que é legal sobre isso é que eu posso fazer pip install Django. E eu vou dar-lhe instruções do Windows para entrar em seus ambientes virtuais assim que isso for feito. Então isso só vai explodir. Baixe Django, Pip, mostre o Django. E isso agora está usando o Django 3.2.4. Está na minha pasta Python 201, ponto Ven em sua biblioteca, pacotes de site
Python 3.8. Legal. Então vamos sair dessa. Nós saímos dessa com a desativação. E isso acabou de me tirar dos meus ambientes virtuais agora para voltar ao ambiente virtual, se você estiver usando o Windows, este é um pouco mais complicado. Normalmente fazemos algo como barra invertida,
ponto, script de ponto, ponto ativar, ponto bat. Agora, isso depende muito do seu sistema operacional. Se você criar um ambiente virtual inventivo, ele vai ser em dot v Drayton aqui. Caso contrário, o que muitas vezes você vai ver um ponto ou não ponto mas cortar scripts ENV com um S maiúsculo ativar o bat oito pontos ativo. E é assim que você entra em seu ambiente virtual usando
o Windows, será uma dessas duas opções. Então vamos voltar para dentro aqui, eu vou fazer isso e do modo Mac, então fonte dot VN foi ativado. E agora estou dentro dela. Pip mostrar o Django. E isso vai me mostrar jangle com 3.1.4 bem ali. Desative para sair dela. Pip, mostre o Django novamente. E o meu computador está a usar a versão 2.2.1 3. Então meu computador tem acesso a um Django, mas é uma versão mais antiga do Django. Meu ambiente virtual, que é novo, tem uma nova versão do Django nele. E então agora eu posso usar duas versões diferentes do Django ou qualquer pacote
Python e ter certeza de que eles não vão entrar em conflito. Eu posso ter outro ambiente virtual em outro projeto usando uma versão diferente do Django. E então a idéia toda aqui é que se você tem vários projetos em movimento, é realmente, muito fácil apenas atualizar um projeto e não precisa se preocupar em atualizar outro projeto. Porque se você atualizar um projeto e você tem que
atualizar todos os outros, isso vai ser uma droga. Eu tenho mais de 200 sites no meu computador do meu trabalho agora. E eu não poderia imaginar ter que atualizar o Django e 200 sites toda vez que eu queria fazer um pouco de colisão de versão. E assim isso apenas mantém tudo agradável e simples e separado para nós. Então, tipicamente, sempre que você está trabalhando em algum tipo de projeto Python, você vai criar um ambiente virtual. É sempre uma boa ideia, mesmo que tenha apenas um projeto no computador, certifique-se de criar um ambiente virtual. E novamente, isso é apenas Python traço m, v dot v e v. E então ele vai ser fonte ponto VN, sido ativado. Ou se você estiver no Windows, vai ser scripts barra, debate, dot bat. E isso vai te fazer entrar. E então, uma vez que você está dentro, você simplesmente digita desativar para sair dela. Vá em frente e crie um ambiente virtual e, em seguida, entre nele. Faça algo como pip install Django e depois desativado. Depois de ter esse ambiente virtual funcionando, você conseguiu inseri-lo e sair dele. Perfeito. Vamos passar para a próxima lição onde falamos sobre uma maneira melhor de aprender Python usando um novo tipo de Shell Python.
21. Como aprender Python explorando e usando Python: Vamos dar uma olhada em como podemos aprender Python de uma maneira mais interativa. Para que possamos sempre entrar em Python. E nós podemos criar algum tipo de objeto e, em seguida, bater ponto e, em seguida, tabulação. E ele vai nos mostrar todos os tipos de métodos sobre ele. Então, por exemplo, podemos ter uma string chamada nome. Vamos chamar isso de Python 201. E então nós poderíamos fazer o nome dot, bater Tab algumas vezes e nós podemos ver todas as coisas diferentes aqui. Por exemplo, poderíamos capitalizar isso. Já está capitalizada. Isso não vai fazer nada. Nomeado tiro. Termina com a gente poderia fazer 201 e isso vai voltar verdadeiro para mim. E assim nós podemos ver todas essas coisas diferentes e nós não temos que fazer isso com apenas uma corda também. Aconteceu de estarmos fazendo com essa corda. Podemos fazer isso com uma tupla, um dicionário, uma lista, praticamente qualquer tipo de dados que tenha algum tipo de transformação em seus dados, você pode fazer isso com. Então, por exemplo, se eu quisesse colocar isso em palavras, poderíamos fazer o nome Dot e então onde você está? Chama-se “split “, bem ali. Dividir, nomear ponto dividido e queremos dividi-lo em cada espaço. Agora parece que não fez nada além de palavras agora é uma lista. Podemos fazer words.py reverso. E vamos dar uma olhada nessas palavras DOD hit tab algumas vezes, inverte no final. Reverter. É ao contrário. E agora podemos voltar a juntar-nos a isto. E então podemos colocar isso de volta juntos dizendo cursos iguais a um ponto de corda. E nós tivemos aqui em uma junção de cordas. Como queremos juntar estes juntos? O que queremos juntar? Em vez disso, palavras, já que estamos dizendo, usam um espaço para unir todas as palavras. Curso. E agora eu apenas reverti todas as palavras em um curso. Agora, em vez de dizer 201 ou em vez de dizer Python 21, ele diz 201, Python. E esta é uma maneira muito, muito poderosa de aprender a codificar. Então, se eu limpar isso de novo, o que podemos fazer são palavras. Eu tenho 201 e Python em suas palavras ponto. Vamos pop que devolveu a palavra Python. E se eu fizer palavras, só tenho uma palavra que posso fazer pop de novo. Isso me dá a última palavra para um. Palavras agora é uma matriz vazia ou uma lista vazia. Se você tem algum tipo de dicionário, você sempre pode fazer um ponto de dicionário. E, em seguida, pressione tab algumas vezes,
certifique-se de que é um dicionário real, então tenha um valor adequado lá. Mas, em seguida, você poderia fazer o seu dicionário dot tab ou tab algumas vezes, às vezes. E vai mostrar-te tudo o que podes fazer. Então o que eu quero que você faça é que eu quero que você crie uma tupla, hit dot, em seguida, pressione tab. E então eu quero que você veja que tipo de coisas você pode fazer com uma tupla. E então eu quero que você faça a mesma coisa com uma lista, porque listas e tuplas são quase a mesma coisa, mas tuplas não são realmente mutáveis. Não se pode fazer muito com uma tupla. E eu quero que você compare as diferenças. E então apenas explore, sinta-se livre para explorar você, você. O pior que você vai fazer é um pouco de dano à sua variável, não ao seu computador, não aos seus ambientes virtuais. Tudo o resto vai ficar totalmente bem. Você só vai transformar sua variável. Isso é tudo o que você vai fazer. E esta é uma maneira muito, muito poderosa de aprender python. Django, frasco, realmente qualquer coisa Python relacionada como wag até CMS, qualquer coisa realmente. Você vai ser capaz de fazê-lo. Você vai ser capaz de aprender muito mais rápido desta forma. E isso porque simplesmente um curso não deve passar por cima de cada item aqui. Por exemplo, nomeie ponto. Eu não vou ensinar-lhe formato mapa ou é numérico, ou é imprimível ou partição ou qualquer coisa assim porque há muitas opções. O mesmo com uma lista. Há um monte de opções e você está agora isso não soa como um monte de opções, mas imagine o que você pode fazer com um mapeamento de dicionário, o que você pode fazer como uma classe, imagine o que você pode fazer com uma tupla ou um conjunto, e ter que passar por Todos aqueles um por um é honestamente doloroso para você assistir. Também é doloroso para mim ensinar. E francamente, você não vai usar a maioria deles. Então, sempre que você vê algum código na natureza, você, digamos que você está trabalhando com o desenvolvedor sênior e
um desenvolvedor sênior tem algum código realmente chique e você pensa,
whoa, o que o Words dot se estende faz? Bem, agora você sabe que você pode ir e experimentar com words.txt ou list.append em vez disso. Agora esta é uma maneira de usar seu shell e isso é simplesmente digitando Python que
te coloca em sua outra maneira é que você pode usar IPython e eu realmente, realmente gosto IPython, Então eu faço pip instalar IPython clara, e em vez de digitar Python, Simplesmente escrevo IPython. E você pode ver que é um pouco mais agradável em seu nome é igual a k lóbulo, alto, magro. Nomeie o ponto, aperte a aba algumas vezes. E agora nós podemos realmente passar por estes e ele digita para mim. Você também pode copiar e colar muito mais fácil aqui. Você pode fazer várias linhas, você pode fazer todo tipo de coisas. E esta é uma maneira ainda melhor de explorar porque é um pouco mais interativo. É mais fácil ser como, oh, o que é zed fill leva exatamente um argumento, 0 nos é dado, vamos preenchê-lo com um 1. Vamos ver o que acontece. String não pode ser interpretado como um inteiro. Ok? Legal, não faço ideia do que Zed Fill faz. Vou explorar isso depois que este vídeo estiver encerrado. Tão divertido, divertido. É assim que aprendemos. E é assim que você pode aprender por conta própria para que você não precise fazer outro curso Python ou
outro curso de desenvolvimento web de pilha completa ou assistir a outro tutorial de uma hora sobre preenchimento zed. Você pode explorá-lo sozinho e depois descobrir o que você precisa aprender a partir daí. Então você está maximizando seu tempo fazendo sua própria exploração e obtendo sua própria experiência. Na próxima lição, vamos em frente e falar sobre pacotes.
22. Introdução a pacotes Python: Vamos falar sobre pacotes agora. Ok, então nós temos essa idéia de um pacote e nós lidamos com isso um pouco. Nós fizemos pip instalar IPython. Não é assim que se escreve python, IPython. Nós fizemos pip instalar o Django. Nós estivemos na instalação de pip pip de uma ponta ColorRamp, e nós vamos fazer a instalação pip chamada Rama novamente. Mas primeiro vamos entrar em nosso ambiente virtual. Então, se você não tem um Python traço M, ven van Gogh, Coca-Cola, fonte, bin activate. Agora estou dentro do meu ambiente virtual. Agora eu posso fazer pip instalar ColorRamp. E eu sei que a cor Rama é um pacote que podemos usar e ele vai instalá-lo. Legal, legal, legal. Ele diz instalado com sucesso cor Emma, 0.4. ponto. Por enquanto, vamos dar uma olhada em alguns dos documentos, sua cor Rama em pi pi. E aqui é onde você pode encontrar qualquer tipo de pacote pi, pi.org. Você pode procurar por qualquer coisa. Então, por exemplo, se eu quisesse pacotes de cauda, ele poderia encontrar maneiras diferentes de dizer pacotes aqui. Se você queria encontrar Django Packages, você literalmente apenas digita Django e você encontrará todo tipo de pacotes Django para você. E você é, o que eu vou usar é cor Rama, cor M0, 0.4.4. E nos diz como instalá-lo. Isso é ótimo. Agora, como é que realmente o usamos? E ele nos diz em seus aplicativos deve inicializar cor Emma usando cor Rama importação init e, em seguida,
e, em seguida, realmente instanciar que init. Ok, então vamos em frente e fazer isso. Então vamos entrar em uma porca shell Python comum, um shell IPython, apenas um shell Python comum. E, na verdade, o que vou fazer é mudar de ideia sobre isso. Em vez de usar shell Python regular, o que eu vou fazer é usar IPython porque nós o instalamos, poderia muito bem usá-lo a partir de ColorRamp, chamar RAM baixa, importar init. E então queríamos executar o init. Está bem, fixe. Parece que não fez nada além de seguir as instruções até agora. Como obter saída colorida? Então vamos em frente e fazer, vamos honestamente copiar e colar isso. Copie essa coisa toda. Cole a coisa toda ali, e olha para aquilo. Temos um texto vermelho. Nós temos texto com o que presumivelmente fora de IPython teria sido um fundo verde, alguns textos dimmer e texto normal aqui. Então tudo o que fizemos aqui foi dizer importação. Para o estilo de back-end. Dissemos que o primeiro plano vai ser lido. O fundo aqui vai ser verde com algum texto verde. Em seguida, estilo Dim, Dim esse texto. Estilo, redefina tudo e volta ao normal. Foi tudo o que fizemos. E então, para usar um pacote, nós realmente simplesmente pip instalar o nome do pacote a partir desse nome do pacote, importar algo. Agora não sabemos exatamente o que podemos importar. E é por isso que é tão importante ler a documentação. E isso nos diz todo tipo de coisas que podemos fazer aqui. Agora, este é um exemplo meio feio. Então vamos em frente e executar isso em nosso shell Python comum. Vamos fazer Python traço v. Estou usando Python 3.8. Você também pode experimentá-lo apenas em seu shell Python comum. Provavelmente vai ficar melhor no seu shell Python. Mas o que podemos fazer aqui é fazer para fazer, fazer, importar isso. Vamos fazer da cor Emma, colo Rama, importação init. Então precisamos instanciar mentiras nele. E vamos em frente e salvar isso como pacotes dot py. E eu vou fazer isso um pouco mais curto aqui. E o que eu vou fazer é mover todas as minhas importações para o topo do script aqui. E nós podemos até mesclar esses juntos. E podemos dizer a partir do ColorRamp ele importar init para estilo backend. Vamos em frente e executar isso agora para salvar, e vamos executar isso em Python. E lá vamos nós. Diz um texto vermelho. E com um fundo verde, isso é realmente um fundo verde super claro. Talvez o IPython estivesse certo e eu não consigo ver que é super fraco. Estamos mantendo o texto vermelho escuro com um fundo verde. Então vamos repô-lo de volta ao normal. E nós estamos executando tudo isso dentro de nossos pacotes dot py script. E então isso é realmente tudo o que há para um pacote. Lembre-se que tudo o que você tem a fazer é pip instalar o nome do pacote. E então fazemos a partir do nome do pacote, importação, coisa um, coisa, duas coisas. E nós apenas seguimos a documentação. E a chave aqui é realmente seguir a documentação. Mesmo no pi-pi aqui, eu normalmente nem sigo documentação de pi pi pi. Eu normalmente vou direto para github, github, github, git hub. E isso vai me dizer, eu acho que isso é exatamente o mesmo, tão bom. Mas também me diz que outras coisas como constantes de formatação
disponíveis são para primeiro plano. Preto, vermelho, verde, amarelo, azul, magenta, peso ciano, reset, fundo, a mesma coisa. Estilo. Podemos escurecer, normal brilhante ou podemos redefinir tudo. Então o que eu gostaria que você fizesse é pip instalar ColorRamp. Vá para esta página do ColorRamp GitHub. Leia a documentação, certifique-se de importar cor Emma e importar init da cor Emma. Execute o init e, em seguida, basicamente, apenas copie e cole isto. Foi o que eu fiz. E divirta-se um pouco com ele. Porque agora você pode fazer o seu terminal olhar próximo n colorido, o que é incrível porque os terminais são notoriamente chato. Agora você vai estar usando pacotes o tempo todo, sem parar. Todos os dias. Você vai importar coisas todos os dias. Portanto, é importante que você saiba como usar pacotes. Vá em frente e experimente isso e quando estiver pronto, vamos passar para a próxima lição, onde fazemos uma pequena atualização de solicitações de API antes do nosso projeto final.
23. Uma API curta solicitação de atualização: Muito bem, bem-vindo à lição de atualização de solicitações de API. O que vamos fazer aqui é apenas uma pequena atualização rápida em solicitações de API. Então, se eu abrir fazendo JSON API request dot pi, vamos em frente e dar uma olhada no que originalmente escrevemos. E então não vamos fazer nenhuma codificação neste vídeo. Vamos simplesmente rever como isto funciona. Assim, solicitações como um pacote, nós importamos e assim como no último vídeo onde
importamos ColorRamp, importamos solicitações. E com isso veio um objeto ou um método chamado get até fazermos nosso EQ, isso pode ser qualquer coisa é igual a solicitar ponto get, e então algum tipo de URL. E isso só vai buscar esses dados para nós. Então, se esses dados são JSON, vamos simplesmente dizer que o ponto do objeto de solicitação ler o JSON. E o que isso faz é transformar esse JSON em um dicionário Python, que podemos usar mais tarde. Então, neste exemplo que estávamos usando, eu acredito que este era C3PO, e este é agora um dicionário e podemos imprimir o nome da pessoa porque o nome é uma propriedade ou uma chave no dicionário da pessoa, ano de
nascimento também estava disponível. Então nós colocamos o ano de nascimento da pessoa assim como um dicionário padrão termina porque isso está chegando como JSON, que tecnicamente é apenas uma string, mas é formatado de uma certa maneira e Python reconheceu isso e transformá-lo em um dicionário. Nós também dissemos para cada filme que esta pessoa estava em, para cada filme C3PO foi ele fazer um novo pedido para esse filme. Então esta era uma lista de filmes. E assim isso vai passar por cada um deles. Acho que eram sete deles ou algo assim. Então os dados ainda não foram completamente preenchidos. Mas então dissemos, para cada filme, vá em frente e pegue esse preenchimento. Então dissemos sobrescrever isso em cada iteração, então superestimar o filme. E porque sabemos que vai ser JSON, transforme esse JSON em um dicionário chamado filme. E depois dissemos que o filme é e depois o título. E conseguimos tudo isso da troca de ponto dev. Agora, no nosso projeto final não
vamos usar pontos de troca. Vamos usar pokey api dot co. Então é muito, muito semelhante, mas em vez disso vamos usar algo com um pouco mais de informação. E assim você pode ver que isso é como um monte de dicionários diferentes aqui. Então habilidade é um dicionário, mas isso tem uma lista de habilidades aqui. Então esta é uma lista e este é apenas um par de valores de chave padrão. Então vamos trabalhar com um pouco mais, eu acho que uma API avançada. Mas vamos usar as coisas de uma maneira simples,
simples porque o Python mantém as coisas simples. Então, para este vídeo, em vez de fazer qualquer codificação, o que eu gostaria que você fizesse é ir para pokey api dot SEO e apenas ler através dele, experimentar com ele, clicar em torno. Tentou quebrar as coisas, mesmo se você não está familiarizado com Pokemon, está totalmente bem. Podemos usar alguns exemplos básicos do que eles nos fornecem. Porque em seu projeto final, o que vamos fazer é usar essa API e vamos buscar um monte de informações diferentes. Então vá em frente e fique um pouco familiarizado com a API pokey. Não sinta que tem que escrever nenhum código. Vamos fazer isso como nosso projeto final. A parte do código será nosso projeto final. Quando estiver pronto para o projeto final e talvez reserve meia hora para assistir ao vídeo e trabalhar no projeto. Mas uma vez que você tenha esse tempo reservado, vamos para a próxima lição,
a lição final, onde criamos um aplicativo de personagem Pokemon.
24. SEU PROJETO: Vamos dar uma olhada no nosso projeto final, ou projeto final vai ser a criação de um aplicativo personagem Pokemon. Então, neste, o que eu gostaria que você fizesse é, vamos escrever algumas instruções aqui. O que eu quero que você peça para a entrada do usuário. Então, por exemplo, pedir um Pokemon, que Pokemon ou vamos falar sobre isso poderia ser como idem, por exemplo. Em seguida, você vai precisar criar uma string API em ABI URL. Muito assim onde diz, podemos ir direto aqui e nos dar toda a informação. Nós só vamos pegar esse URL, mas nós vamos
mudar idem para qualquer entrada do usuário. Então o passo dois vai ser criado um URL dinâmico com base no passo um. número três é que precisamos, em seguida, buscar esses dados usando solicitações. Então, o passo três é buscar os dados da URL. No passo dois, passo quatro será imprimir o JSON e os dados. Mas porque é JSON, não
podemos imprimir. Precisamos convertê-lo. Então o passo quatro vai ser convertido JSON para um dicionário. Passo cinco, então, vai ser imprimir alguns dados Pokemon. Então imprima dados Pokemon. E esses dados vão vir, por exemplo aqui. Então ele tem habilidades, ele tem formas como base índices de jogo experientes, uma altura realizada itens, movimentos ID tem todos os tipos de coisas aqui. Então eu vou deixar isso com você para o que você quiser exibir. Então eu tenho agora guiado você através basicamente os passos exatos que você precisa para criar alguma forma de programa Python que pode aceitar um Pokemon como uma string. E então você pode ir buscar esses dados de uma API e exibi-los em seu terminal. O que vou fazer aqui é guardar isto como o Projecto Dot Py. Comente isso. E eu vou então mostrar a vocês como eu faço esse projeto exato. Mas eu quero que você dê uma chance, justo,
então, por favor, me faça um favor aqui e pare o vídeo e experimente isso por conta própria. Sinta-se livre para consultar essas instruções novamente, mas tente isso por conta própria. Tente fazer seu cérebro suar. Tentou aproveitar o que você já aprendeu
neste curso sem ter que assistir o resto deste vídeo. Agora, nossas soluções garantidas serão muito diferentes. E está tudo bem. Há um milhão de maneiras diferentes de fazer a mesma coisa na programação. Se eu escrever isto contra o meu mentor a escrever isto, vamos conseguir códigos diferentes de qualquer maneira. E seu código vai parecer diferente do meu, mas não é essa a questão. A questão é, você dá uma chance para experimentar o melhor de suas habilidades. Agora, se você ficar preso, tudo bem. Se você ficar preso, você pode simplesmente retomar o vídeo e você pode ver exatamente como eu faço isso. Então eu vou desvanecer-me e desvanecer-me e desvanecer-me. Quero que pause o vídeo e tente isso. Boa sorte. Não se esqueça de se divertir com isso. Este é um caso de uso muito bom de Python e APIs. Você vai precisar disso em desenvolvimento
web e todo tipo de coisas Pythonic na estrada. Tudo bem, vamos em frente e terminar este projeto, ou eu acho que começar o projeto e então nós vamos terminá-lo. Então, primeiro as coisas, primeiro passo, temos que pedir ao usuário a entrada. Então nós vamos dizer o Pokemon, Pokemon é igual a entrada. Qual Pokemon você quer encontrar? E então nós vamos dizer Pokemon é igual a Pokemon dot menor. E sabemos que temos que fazer ponto mais baixo e reatribuir isso porque strings não são mutáveis. Nós temos que basicamente tomar esse valor de Pokemon, qualquer que seja a taxa de usuário, baixá-lo,
e, em seguida, jogá-lo de volta em outro pedaço de memória chamado Pokemon apenas acontece para ser o mesmo nome aqui. Então é aí que entra a mutabilidade versus a imutabilidade. Em seguida, precisamos criar uma URL dinâmica com base no passo um para que URL vai ser este URL aqui mesmo. Copie, jogue isso em uma string, mas nem sempre serão dados. Precisamos mudar isso. Então vamos mudar isso para Pokemon. E vamos fazer disso uma corda F. Então esse é o segundo passo. Etapa três é buscar os dados da URL na etapa dois. Então, podemos dizer REQ é igual a ponto de solicitação obter a URL. E o que usamos solicitação,
temos que, em seguida, importar solicitações, solicitação. E isso é, na verdade, plural. É suposto ser pedidos, por isso usamos requisições dot get, em seguida, o URL. E esse é o passo três. Passo quatro é converter os dados para um dicionário. Então podemos descer aqui e dizer que os dados vão ser qualquer que seja o pedido. Json, sabemos que está vindo em forma JSON, então podemos usar o ponto JSON nele. Esse é o passo quatro. O quinto passo é imprimir dados Pokemon. Então, o que queremos imprimir? Vamos imprimir o nome que encontramos. Então, podemos dizer que o nome da impressão é tab, tab. E, em seguida, qualquer que seja esse nome vai ser nome de dados. E se você está se perguntando de onde eu consegui o nome, dados agora é um dicionário. Ou pelo menos em teoria, é um dicionário. E o nome está vindo desse amiguinho ali. Vamos fazer isso maior bem ali. E vamos ver que tipo de habilidades ele tem. Então esta é uma lista. Podemos ver que é uma lista e tem uma lista de dicionários nela. Então vamos em frente e olhar para as habilidades. Então podemos dizer que as habilidades de impressão serão algo que ainda não sabemos. E vamos fazer um loop através dessas quatro habilidades nos dados. Habilidades, podemos percorrer isto porque sabemos que isto é uma lista. E assim esta primeira habilidade vai ser flexível e a segunda habilidade vai ser impostora. Então podemos dizer capacidade de impressão. E este é um dicionário também. Então, para cada item nesta lista vai ser um dicionário. E então temos uma chamada habilidade, que também é uma habilidade de dicionário. E depois queremos esse nome. E vamos em frente e dar uma chance a isso. Vamos ver o que acontece quando executamos projeto python. Nem sei se tenho erros de digitação. Eu nem sequer procurei por erros de digitação. Qual Pokemon eu quero encontrar? Vamos procurar idem. Tem ágil e impostor neles. Legal, calma, legal. Está bem. Que outro Pokemon realmente saber? E Char é ARD. Suas habilidades são, e vamos apenas mover isso para cima. Encontrei arte chars, suas habilidades são blase e energia solar. Legal. Se quiséssemos obter mais informações, poderíamos realmente obter esse URL e fazer uma solicitação lá também. E podemos ver que tipo de habilidade ele tem. E tem configurações de idioma diferentes. Quão legal é isso? Tivemos uma língua inglesa. O primeiro é um idioma alemão entradas de texto sabor. Eu nem sei o que é isso. Isso está além do meu conhecimento de Pokemon. Mas de qualquer forma, podemos, se quisermos pegar esse URL para mais detalhes sobre o que essa habilidade em particular vai realmente fazer. Então, neste momento, estamos praticamente acabados. É tudo o que temos que fazer. Mas o que acontece se você digitar um Pokemon que não existe? Como, como, como, como, como, como. Oh, não, temos um problema. E isso é interessante porque onde estamos aqui? Decodificador Json, decodificação JSON ou erro esperado valor linha uma coluna carrega. Está basicamente dizendo que o JSON não está formatado corretamente. Então o que podemos fazer aqui é embrulhar tudo isso em uma declaração se. Se o código de status do ponto req for igual a 200, isso significa que estamos recebendo um código de status saudável. Podemos pegar todas essas coisas, fazer que apenas um minúsculo estão lá e fora amassar isso. Caso contrário. Não conseguimos imprimir Pokemon não encontrado. E agora estamos lidando com códigos de status apropriados aqui. Vamos tentar de novo. Enfie um monte de lixo lá dentro. Diz que Pokemon não foi encontrado. E então ele disparou e foi para onde quer que seja. Parece que não é um Pokemon. E então Pokemon não foi encontrado. Vamos nos certificar de que o código de status é realmente suposto ser 200 porque às vezes é para, para um. Quem sabe qual Pokemon eu quero encontrar? Bullosa dolorido? E olha para aquilo, que voltou muito rápido. Nome é bulboso ou habilidades supercrescimento e clorofila. Legal, legal. Agora isso é realmente tudo o que há para este projeto. Agora, se você quiser dar um passo adiante, o que você pode fazer é que você pode fazer isso sempre pedir mais entrada do usuário. Então, vamos, de fato, fazer isso. Vamos sempre pedir mais UserInput. Então o que vamos fazer aqui é embrulhar isso em um loop. Vamos dizer que enquanto algo é verdade, coloque tudo isso dentro deste laço selvagem. E sempre vai pedir um Pokemon. Sempre vai fazer um pedido. E então quando terminar, ele vai pedir outro Pokemon. E isso é literalmente tudo o que temos que fazer para tornar este um permanente ou uma ferramenta adequada de pesquisa Pokemon. Então vamos em frente e digite projeto python em pi. Vamos olhar para cima idem. Certo, achei idem. E quanto à Char? O Melian? Legal. Que tal um que não existe, não existe para falar meu não encontrado. E continua perguntando uma e outra vez. E se eu quiser desistir, eu sempre posso fazer o controle C. e isso me tira desse loop de tempo. Então agora temos um programa que vai perguntar constantemente qual Pokemon Você quer encontrar? Esta é uma ótima maneira se você sempre quis construir um aplicativo na estrada como um aplicativo Pokemon encontrar ou aplicativo de informações Pokemon. Isso é exatamente o que você faria usando Python. Então essa foi a minha solução para este projeto em particular. Sua solução pode ser um pouco diferente. Sua solução pode ser um pouco mais simples ou um pouco mais complexa. Isso é completamente com você. O que eu quero que você faça se você não fez isso é que eu quero que você experimente isso agora por conta própria. Não faça referência ao meu código para experimentá-lo sozinho e veja até onde você pode chegar. Faça seu cérebro suar é importante para fazer seu cérebro suar. É suposto sentir-me um pouco de luta. E se você ficar realmente preso em anos, como eu simplesmente não sei o que fazer ou consultar o Google porque honestamente metade da programação hoje em dia é apenas coisas no Google. E se a sua própria pesquisa não te levar a lado nenhum, então faça referência a este código. E isso vai te afastar de ser dependente do tutorial Lake. Este vídeo é, este vídeo é muito estilo tutorial e ele vai tipo de mover você
para o reino de descobrir como resolver seus próprios problemas. O que é muito,
muito importante, porque codificar é tudo sobre resolver problemas por conta própria. E você nem sempre vai ter um professor, então você precisa ser capaz de fazer isso sozinho. Espero que tenha sido agradável para você. Espero que este tenha sido um pequeno projeto divertido usando APIs
e, e todas essas coisas boas que usamos muito aqui. Usamos um loop while, usamos um pacote. Usamos entrada mais baixa assim mutabilidade versus imutabilidade. E F String, usamos uma solicitação API. Verificamos o código de status, então é condicional. Transformamos código num dicionário da JSON. Em seguida, imprimimos com abas usando mais F Cordas. Depois analisamos todas as habilidades e temos o nome da habilidade. Meio legal. Então isso foi bom e curto. Na verdade, foi um pequeno projeto muito divertido. Vá em frente e tente isso se não tiver feito. Por último, mas não menos importante, gostaria de agradecer por fazer este curso comigo, seu professor, Caleb Tolling. Isto tem sido muito divertido. Estou muito orgulhoso de quão longe você chegou. Não se esqueça. Escrever código é tudo sobre prática. Apenas pratique, pratique, pratique, apenas escrevendo código, resolvendo mais problemas, escrevendo código resolvendo mais problemas. Isso é tudo o que é. e outra e outra vez. Mais uma vez, eu sei que há um monte de diferentes cursos Python lá fora, mas você escolheu o meu. E eu realmente, realmente aprecio isso. Então, obrigado por me dar um pouco de tempo da sua vida. Eu realmente aprecio isso e espero que você consiga construir algumas coisas realmente legais em Python no futuro.
25. Python 201: resumo: Ok, você terminou todo este curso. Isso é incrível. Primeiro de tudo, dê um tapinha nas costas. Você fez um ótimo trabalho. Estou super, super orgulhoso de você. Eu tenho sido Caleb italiano. Você pode me encontrar no Twitter em Caleb Tolkien, ou se você quiser pequenas dicas de codificação e truques ou atualiza todos os meus cursos, você sempre pode ir para Instagram.com barra codificação ponto para ponto todos. Muitas dicas de codificação lá, muitas atualizações de curso, se você gosta, a maneira que eu ensino, que geralmente é onde eu agora seus novos cursos e coisas assim. Se em algum momento você é como, oh, você sabe que é uma comunidade de codificação, seria bom porque francamente, codificar pode ser um pouco solitário. Você sempre pode entrar em você aprendendo a codificar no Facebook. Há 62 ou 65 mil membros lá no momento da gravação. E está crescendo por centenas de membros todos os dias. E você pode fazer literalmente qualquer tipo de pergunta de desenvolvimento web. É um grupo bem preparado. Nós nos certificamos de que não há spam lá. Nós tomamos muito cuidado nesse grupo. Eu e um moderador. Passamos várias horas todos os dias certificando-se de que o grupo é bem cuidado e tem o valor mais alto para você. Assim, você sempre pode se juntar ao aprendizado de código no facebook.com gratuitamente. Obrigado novamente por fazer este curso. Uma última vez meu nome foi Caleb dizendo que estou muito orgulhoso de você. E espero ver você aprendendo a programar o Grupo em outro curso meu, ou talvez um dia eu possa trabalhar com você. Feliz codificação.