Python para iniciantes absolutos - Aprenda Python em uma semana | Andreas Exadaktylos | Skillshare

Velocidade de reprodução


1.0x


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

Python para iniciantes absolutos - Aprenda Python em uma semana

teacher avatar Andreas Exadaktylos, Teacher | Expert Computer Scientist | Entrepreneur

Assista a este curso e milhares de outros

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

Assista a este curso e milhares de outros

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

Aulas neste curso

    • 1.

      Apresentação

      1:27

    • 2.

      Por que aprender Python?

      2:02

    • 3.

      Cinco (5) dicas para iniciantes aprenderem programação em Python

      6:55

    • 4.

      INTRODUÇÃO — baixe e instale o Python 3 (2024)

      1:25

    • 5.

      Baixe e instale o Python 3 (Windows)

      6:55

    • 6.

      Usando o Shell Python

      2:19

    • 7.

      Configurando o Python (resumo)

      1:11

    • 8.

      Editores de código

      2:15

    • 9.

      Seu primeiro programa em Python — introdução

      1:09

    • 10.

      Escrevendo nosso primeiro programa em Python

      9:12

    • 11.

      Vamos cometer alguns erros

      6:31

    • 12.

      Criando uma variável

      13:45

    • 13.

      Adicionando comentários

      4:06

    • 14.

      DESAFIO: interagir com o IDLE (Shell Python)

      4:44

    • 15.

      Como encontrar ajuda

      3:06

    • 16.

      Escrevendo seu primeiro programa em Python (Resumo)

      1:06

    • 17.

      Cordas e métodos de cordas (introdução)

      1:23

    • 18.

      O que é uma corda

      5:47

    • 19.

      EXERCÍCIO: o que é uma corda

      2:18

    • 20.

      SOLUÇÃO: o que é uma corda

      5:38

    • 21.

      Como manipular cordas com métodos

      11:55

    • 22.

      EXERCÍCIO: mude o caso

      1:09

    • 23.

      SOLUÇÃO: mude o caso

      3:20

    • 24.

      EXERCÍCIO: remover espaços em branco

      1:08

    • 25.

      SOLUÇÃO: remova espaços em branco

      2:17

    • 26.

      Indexação de cordas

      2:36

    • 27.

      Corte de cordas

      3:30

    • 28.

      EXERCÍCIO: fatiar cordas

      0:28

    • 29.

      SOLUÇÃO: fatiamento de cordas

      2:40

    • 30.

      Concatenação de cordas

      2:18

    • 31.

      EXERCÍCIO: concatenação de cordas

      0:38

    • 32.

      SOLUÇÃO: concatenação de cordas

      2:38

    • 33.

      Formatação de cadeia

      3:50

    • 34.

      F-Strings: uma sintaxe melhorada de formatação de strings

      7:04

    • 35.

      EXERCÍCIO: simplifique suas impressões

      1:06

    • 36.

      SOLUÇÃO: simplifique suas impressões

      4:39

    • 37.

      Interagir com a entrada do usuário()

      4:53

    • 38.

      EXERCÍCIO: interagir com a entrada do usuário

      0:46

    • 39.

      SOLUÇÃO: interagir com a entrada do usuário

      4:57

    • 40.

      Trabalhando com cordas e números

      13:55

    • 41.

      EXERCÍCIO: trabalhar com cordas e números

      1:07

    • 42.

      SOLUÇÃO: trabalhe com cordas e números

      6:58

    • 43.

      Métodos de formatação Print()

      7:43

    • 44.

      Encontrando uma corda em outra corda

      9:18

    • 45.

      EXERCÍCIO: encontre uma letra em uma corda

      0:47

    • 46.

      SOLUÇÃO: encontre uma letra em uma corda

      4:10

    • 47.

      Cordas e métodos de corda (RESUMO)

      0:57

    • 48.

      PROJETO: crie um programa de impressão de recibos

      12:21

    • 49.

      Números e matemática (visão geral)

      1:26

    • 50.

      Tipos numéricos em Python

      4:50

    • 51.

      Inteiros

      6:50

    • 52.

      EXERCÍCIO: defina literais inteiros

      1:17

    • 53.

      SOLUÇÃO: defina literais inteiros

      4:07

    • 54.

      Números de ponto flutuante

      7:38

    • 55.

      Operadores aritméticos e de comparação

      5:15

    • 56.

      Operadores de comparação lógicos (booleanos) e em cadeia

      2:46

    • 57.

      Erro de representação de ponto flutuante

      6:02

    • 58.

      Funções matemáticas e métodos numéricos

      9:32

    • 59.

      Números formatados como strings

      4:15

    • 60.

      EXERCÍCIO: mostre uma porcentagem

      0:19

    • 61.

      SOLUÇÃO: mostre uma porcentagem

      1:04

    • 62.

      Números complexos

      4:40

    • 63.

      O operador Restante (% módulo)

      6:25

    • 64.

      Como ler números com a função de entrada

      8:11

    • 65.

      Números e matemática (RESUMO)

      1:24

    • 66.

      DESAFIO: calcular uma porcentagem

      3:21

    • 67.

      DESAFIO: calcular uma média

      5:15

    • 68.

      DESAFIO: convertendo uma fórmula matemática em uma declaração de programação

      5:47

    • 69.

      Datas e horários

      4:18

    • 70.

      O que é uma lista

      5:50

    • 71.

      Trabalhando com listas

      3:44

    • 72.

      Fazendo listas numéricas

      1:41

    • 73.

      Listas de impressão

      2:07

    • 74.

      Tupulas

      4:00

    • 75.

      Tarefa de tuplas: como embalar e desembalar

      4:00

    • 76.

      Trabalhando com dicionários

      4:07

    • 77.

      Conjuntos

      4:25

    • 78.

      Declarações “if”

      3:38

    • 79.

      EXEMPLOS de usar a declaração if em um aplicativo

      10:19

    • 80.

      For Loops

      2:09

    • 81.

      EXEMPLOS de usar o for statement

      6:12

    • 82.

      Loops While

      3:35

    • 83.

      Pare e continue

      2:25

    • 84.

      PROJETO: jogo de adivinhação

      6:27

    • 85.

      Usando declarações if com listas

      1:42

    • 86.

      Usando para loops com listas

      2:02

    • 87.

      Usando um loop de tempo com listas e dicionários

      3:03

    • 88.

      Criando pilhas usando listas

      4:04

    • 89.

      Pesquisando e classificando listas

      4:34

    • 90.

      Percorrendo um dicionário

      2:14

    • 91.

      Substituindo a declaração switch por um dicionário

      3:33

    • 92.

      Trabalhando com o contra-objeto

      2:25

    • 93.

      O que são funções

      2:13

    • 94.

      Funções construídas

      2:09

    • 95.

      Definindo sua função

      2:57

    • 96.

      Mais construídas em funções

      9:37

    • 97.

      Escopos globais e locais

      4:54

    • 98.

      PROJETO: jogo de adivinhação melhorado (versão 2) — PARTE 1

      7:14

    • 99.

      PROJETO: jogo de adivinhação melhorado (versão 2) — PARTE 2

      4:29

    • 100.

      PROJETO: jogo de adivinhação melhorado 3 (versão 2) — PARTE 3

      9:16

    • 101.

      Como lidar com erros

      3:22

    • 102.

      Problemas comuns de sintaxe

      8:40

    • 103.

      Torne-se um caçador de recompensa de insetos

      9:10

    • 104.

      Manipulação básica de exceção

      5:57

    • 105.

      Como lidar com várias exceções

      7:26

    • 106.

      Criando exceções

      2:28

    • 107.

      Como fazer depuração no IDLE 2021

      3:27

    • 108.

      VISÃO GERAL DE ROCHAS, PAPEL, TESoura

      1:49

    • 109.

      Pedra, papel, tesoura com entradas e loops em Python

      7:46

    • 110.

      Pedra, papel e tesoura com Python — como determinar um vencedor

      13:24

    • 111.

      O que é programação orientada a objetos (POO)

      3:16

    • 112.

      Cursos de Python

      2:50

    • 113.

      Atributos de classe e instância

      5:18

    • 114.

      Adicionando atributos a um curso de Python

      6:44

    • 115.

      Adicionando métodos a um curso de Python

      6:00

    • 116.

      Introdução à herança de OOP

      3:52

    • 117.

      Exemplo de herança

      9:15

    • 118.

      Scripts, módulos, pacotes e bibliotecas 2022

      4:18

    • 119.

      Escrevendo um módulo

      2:44

    • 120.

      O caminho de pesquisa do módulo

      4:42

    • 121.

      A declaração de importação

      6:08

    • 122.

      A função dir()

      3:52

    • 123.

      Execução de um módulo

      5:41

    • 124.

      Recarregando um módulo

      3:16

    • 125.

      Como instalar um pacote em Python usando PIP

      3:18

    • 126.

      Pacotes de Python

      4:33

    • 127.

      Crie gráficos e formas usando o módulo Turtle em Python

      5:56

    • 128.

      Python abre, lê e escreve em um arquivo

      5:49

    • 129.

      Obtendo uma lista de diretório e atributos de arquivo

      7:56

    • 130.

      Como criar e excluir diretórios

      10:28

    • 131.

      Excluir, copiar, mover e renomear arquivos

      7:37

    • 132.

      Projeto de marco Crie um jogo matemático interativo

      1:30

    • 133.

      Parte 1 - Importando módulos e obtendo a pontuação do usuário

      3:44

    • 134.

      Parte 1: tratamento de exceções e atualização da pontuação do usuário

      7:15

    • 135.

      Parte 1 - Gerando as perguntas e a matemática

      6:16

    • 136.

      Parte 1: gerando uma expressão matemática e avaliando o resultado

      6:03

    • 137.

      Parte 2 Escrevendo o programa principal

      5:48

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

Gerado pela comunidade

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

1.153

Estudantes

5

Projetos

Sobre este curso

Um curso prático de programação em Python 3 para iniciantes absolutos — aprenda a programar em Python (+ projetos em Python)

Comece a programar em Python imediatamente!   

Se você for iniciante em programação, este curso vai ajudar você a aprender rapidamente a programar em Python.

Python é uma linguagem incrivelmente eficiente: seus programas vão fazer mais em menos linhas de código do que muitas outras linguagens exigiriam. Ele também é usado em campos científicos para pesquisa acadêmica e trabalho aplicado.   

Meu objetivo era criar um curso para pessoas de qualquer idade que nunca programaram em Python antes ou nunca programaram, para que você possa criar programas que funcionem.   

O curso está cheio de exemplos e projetos cuidadosamente escolhidos para demonstrar cada conceito para que você possa obter uma compreensão mais profunda da linguagem. Ele foi projetado para servir como um recurso de aprendizagem único e completo para todos os recém-chegados a Python, quer estejam usando Python 2.X, Python 3.X ou ambos   

A programação em Python para iniciantes também é perfeita para professores do ensino médio e médio que querem oferecer aos seus estudantes uma introdução à programação baseada em projetos.  

Você está procurando aprender programação prática em Python que possa colocar em prática imediatamente? Se a sua resposta for sim, então este é o curso certo para você. Ele é totalmente baseado em projetos e está repleto de exemplos que são totalmente explicados e fáceis de entender. Ele gravou em full HD 1080p.

 Python é uma ótima linguagem para aprender. Inscreva-se neste curso e vamos começar!

Conheça seu professor

Teacher Profile Image

Andreas Exadaktylos

Teacher | Expert Computer Scientist | Entrepreneur

Professor

LinkedIn: https://www.linkedin.com/in/andreasexadaktylos

Hi, I am Andreas and I'm a teacher. I really love learning and teaching whenever i can.

I have over 16 years of experience in teaching as an instructor. I have my own computer learning school, called Futurekids, from 2001 to now. I am the founder of Mellon Training, an online video tutorials learning school.

I have a Masters Degree in Computer Science and a Degree in Electronic Engineering.

I always wanted to create my own business. Being your own boss is an incredibly liberating experience but difficult as well.

I have a passion for software products that make people's lives easier. I love to create websites and optimizing them with Search Engine optimization techniques. I created my online e-sh... Visualizar o perfil completo

Level: Beginner

Nota do curso

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

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

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

Transcrições

1. Apresentação: Olá e bem-vindo. Meu nome é Andreas e eu serei seu instrutor neste curso de Python Sou engenheiro da computação e professor há mais de 20 anos. Tenho minha escola de aprendizado de informática e ensino programação em Python para dezenas de milhares de estudantes felizes como você E estou muito animada por ser sua instrutora neste curso. Python é absolutamente a linguagem de programação que mais cresce chegando às três principais linguagens para aprender Python é uma das linguagens de programação mais versáteis Você pode usá-lo para qualquer coisa, como aprendizado de máquina, desenvolvimento web , aplicativos, automação, desenvolvimento de jogos e muito mais. Neste curso, você receberá uma explicação detalhada e completa dos conceitos fundamentais de programação em Python E vou tornar o processo de aprendizado tão fácil e memorável que você nem precisará fazer anotações. Você aprenderá fazendo e construindo muitos projetos. Ao longo do caminho, você também tem projetos marcantes que ajudam a criar programas e jogos totalmente funcionais que você pode mostrar aos seus colegas Temos mais de 100 palestras de dez ADP, vídeos explicativos de alta qualidade e slides totalmente detalhados que acompanham Então, se você é completamente novo programação ou na linguagem Python, você veio ao lugar perfeito Então, com tudo isso em mente, o que você está esperando? Vá em frente e clique no botão de assinatura, e te vejo do outro lado. 2. Por que aprender Python?: Olá, bem-vindo ao empolgante mundo da programação. Nesta palestra, faremos uma breve visão geral do que é Python , por que escolher o Python para programação e o que você pode fazer com o Python para programação e o que você pode fazer com o O Python foi criado em 1990 por Guido Van Rosam. Ele foi projetado especificamente como uma linguagem de programação fácil de usar. A linguagem de programação Python tem o nome do grupo de comédia chamado Monty Python Quando dizemos programação, queremos dizer que inserimos instruções para o computador executar. Python é uma linguagem de programação de alto nível amplamente usada. Obviamente, muitas linguagens de programação de alto nível estão disponíveis, como C, C plus plus e Java. Mas se você é novato em programação, Python é um ótimo lugar para começar Vamos ver alguns motivos para aprender Python. Em primeiro lugar, o Python é mais simples do que outras linguagens de programação e A maioria dos programas requer consideravelmente menos linhas de código para realizar a mesma tarefa em comparação com outras linguagens Segundo, o Python é uma linguagem eficiente. sintaxe do Python ajuda você a escrever um código limpo, fácil de ler, fácil de depurar e fácil de estender e desenvolver Três, o Python tem uma ampla gama de usos. Você pode criar jogos, criar aplicativos web e resolver problemas de negócios. O Python também é muito usado nos campos científicos para pesquisas acadêmicas Quatro, o Python tem um grande número de ferramentas de terceiros, como o Pinstaller, que nos permite empacotar nosso código Python em programas executáveis independentes para sistemas operacionais Cinco, o Python tem uma ótima comunidade. Ter uma comunidade solidária é fundamental para resolver problemas, especialmente nas primeiras etapas da programação Esses são os cinco motivos mais importantes pelos quais escolhemos e aprendemos Python Se eu te convenci, é hora de começar. Obrigado por assistir. 3. Cinco (5) dicas iniciantes para aprender programação python: Bem-vindo de volta a todos. Neste vídeo, darei cinco dicas para iniciantes para aprender programação Python. Você vai ver como codificar todos os dias, como escrever isso pode ajudar a interativo, falar intervalos e fazer boas perguntas. Vamos começar analisando a codificação todos os dias. Pouco muitas vezes é melhor do que um pedaço grande por semana. Se você tivesse apenas uma hora por semana, desespero, seria muito melhor passar dez minutos em seis dias da semana e ter um dia folga do que fazer uma hora um dia da semana e ter seis dias de folga. Deixar muito tempo antes praticar qualquer nova habilidade pode significar que ela será perdida para você e você acabará tendo que recuperar o mesmo terreno repetidas vezes. Ao passo que cobri-lo todos os dias durante uma semana ajudará você a mantê-lo muito melhor e, em seguida, lacunas mais longas depois não serão um grande problema. Também sendo realista sobre o tempo que você tem para isso, Todos são diferentes. Algumas pessoas podem passar muito tempo e poderemos progredir mais do que alguém que tem apenas uma ou duas horas de sobra por semana. Então, sendo realista sobre isso, lembre-se, não se trata se comparar com outras pessoas. Trata-se de se comparar com onde você começou. Comece resolvendo pequenos problemas quando você começar a programar, então você ganhará habilidades e aprenderá novas áreas do Python que você não conhecia antes. E isso pode lhe dar grande confiança em ser capaz abordar problemas mais difíceis mais adiante. Escreva isso. Escrever notas ajuda você a reter informações melhor do que qualquer outro método. Sim, as notas manuscritas realmente ajudam quando a informação passa por você enquanto você lê e depois a reescreve em suas próprias palavras, seu cérebro a leva em um método que você entende, e isso é a parte mais importante do aprendizado. Haverá diferentes áreas nas quais você precisa se concentrar, fazer anotações em comparação com alguém ao seu lado. Também o planejamento de programas com notas escritas pode ajudar a tornar a solução mais clara. Novamente, aqui, descobri que escrever coisas à mão é muito mais útil e muito mais imediato do que fazê-lo em um computador. Para os problemas complicados e maiores, que precisariam de muita documentação. Você gostaria de fazer isso online em um método que pode ser atualizado posteriormente. Quando você está planejando isso inicialmente, escrever o tipo de dados e variáveis que você vai precisar pode ser muito, muito importante e instrutivo. Muitas vezes, é mais fácil criar representações visuais ao trabalhar com papel e lápis. E para muitos problemas, essa é uma maneira útil de abordá-los. Vá interativo. O shell Python é uma ótima maneira de examinar e criar código instantaneamente. É rápido e fácil desenvolver código no shell Python, mas você também pode usá-lo para descobrir e explorar os métodos disponíveis para você. Abra o shell Python e agora você pode usar isso em ação. Faça pausas. Fazer pausas como uma parte incrivelmente importante do aprendizado. Uma das técnicas mais comumente estudadas usadas por pessoas que estão aprendendo na Internet é a Técnica Pomodoro. Agora, isso só é nomeado após o temporizador de forma de tomate que a pessoa que o inventou usou. Mas consiste em apenas definir um temporizador de 25 minutos para funcionar e depois fazer uma pausa de cinco minutos e depois repetir. Há muitas evidências para ilustrar que nosso cérebro só tem um tempo finito de Lauren e precisa de pausas. Seu cérebro precisa de tempo para receber informações e também precisa de um descanso. Eu sugiro fortemente que você faça uma pausa real. Isso dará ao seu cérebro uma chance de redefinir. E muitas vezes você descobrirá que as idéias virão até você quando você estiver no estado de repouso. O sono também é muito importante para a formação da memória. Muitas pesquisas mostraram que uma boa noite de sono após um dia de aprendizado realmente ajuda a cimentar essas informações e bloqueá-las em memória de longo prazo. Seu cérebro funcionará nisso e ele será atualizado durante esse intervalo. Quando você voltar a ele, muitos serão o momento em que você verá algo que você simplesmente não tinha pensado e vai embora. Faça boas perguntas. Em muitos pontos da sua carreira de programação, você precisará pedir ajuda. E muitas vezes isso pode vir na forma de fazer perguntas em sites como Stack Overflow. Ao fazer isso, é muito importante que você faça perguntas da maneira certa para que as pessoas possam ajudá-lo sem duplicar o tipo de teste que você já fez, que pode dar a elas uma boa ideia do que você já fez e o que pretende que o programa faça. Em primeiro lugar, o g do bem, dê contexto ao que você está tentando fazer. Descrevendo claramente o problema. Aqui à esquerda, podemos ver um mau exemplo. Ele só diz que não é possível imprimir corretamente. Enquanto à direita temos um bom exemplo. Estou tentando usar uma string f com formato e combinado com variável para dar seis dígitos totais e uma casa decimal. Mas não consigo encontrar a sintaxe certa. O da esquerda pode ser qualquer coisa, desde a impressão em uma impressora até o uso da instrução de impressão. Enquanto o da direita é muito claro. Sabemos exatamente onde estamos e qual é o problema. Descreva as coisas que você já fez para tentar corrigir o problema. Mais uma vez, você vê isso com bastante frequência. Tentei tudo à esquerda. Isso não é realmente útil. É improvável que você tenha realmente tentado todas as possibilidades. À direita, você pode ver que o usuário experimentou as diferentes variações, incluindo um formato de ponto de estilo ímpar, mas nada funcionou para eles. Em seguida, oferecendo o melhor palpite sobre qual pode ser o problema. Isso ajuda a pessoa que está ajudando você não apenas a saber o que está pensando, mas também a saber que você pensou sozinho. Você não caiu apenas no primeiro obstáculo e jogando o problema para outra pessoa fazer. À esquerda, temos um mau exemplo. Não faço ideia do que está errado. E à direita, posso fazer a formatação funcionar usando formatação de estilo antigo, mas não consigo ver onde inserir a nova variável em um novo estilo. Isso é claro e conciso e espero apontar qualquer pessoa que esteja tentando responder à pergunta na direção certa para encontrar alguém que saiba muito bem como usar strings f. D significa demo. Demo é o que está acontecendo. Inclua a mensagem de erro de traceback de código ou uma explicação das boas etapas que você tentou executar que resultaram no erro. Dessa forma, a pessoa que ajuda não precisa tentar recriar o problema, incluindo todo o código relevante é realmente importante. Você vê com bastante frequência onde as pessoas podem ajudar porque elas não querem passar meia hora tentando descobrir o que alguém fez. Eles querem poder copiar o código, tentar executá-lo sozinhos ou talvez apenas tentar olhar para o código. Haverá capacidade de dizer à pessoa certa O que está errado. Aqui à esquerda, o mau exemplo, nenhum código. À direita. Um bom exemplo. A variável foi definida. Eles estão usando formatação de estilo antigo e diz que isso funciona, mas não é uma string f. Isso deve dar uma boa resposta com bastante rapidez. Muitas vezes, quando você coloca todas as informações juntas para fazer a pergunta a outra pessoa, a resposta se tornará aparente para você porque você coloca todas as informações de uma maneira que você não viu antes, novas ideias podem vir até você. Como resultado disso, você pode perceber que há algo que você não tentou ou pode haver algo que você não tentou imediatamente. Obrigado por assistir, e te vejo na seguinte palestra. 4. INTRODUÇÃO: baixe e instale o Python 3 (2024): Olá, pessoal, e bem-vindos à seção de configuração do Python Meu nome é Andreas e eu serei seu guia. Nesta seção, você aprenderá como baixar e instalar o Python em três dos sistemas operacionais mais populares Windows, macOS e Você também aprenderá a operar o idle, integrado de desenvolvimento e aprendizado do Python Configurar um Python é o primeiro passo para se tornar um programador de Python Muitos sistemas operacionais, incluindo macOS e Linux, vêm com o Python pré-instalado A versão do Python que vem com seu sistema operacional é chamada de System Python O sistema Python é usado pelo seu sistema operacional e geralmente está desatualizado É essencial que você tenha a versão mais recente do Python para poder acompanhar com sucesso todos os exemplos deste curso. Importante. Não tente desinstalar o sistema Python. Os três sistemas operacionais abordados neste curso são alguns dos sistemas operacionais mais populares para computadores pessoais. Mas se você só tiver acesso a algo como um Android. Então, vamos começar configurando o Python no seu computador Te vejo na próxima aula. 5. Baixe e instale o Python 3 (Windows): Neste vídeo, você aprenderá a configurar o Python no Windows Você aprenderá onde baixar o Python, como instalar o Python e como abrir o ambiente integrado de desenvolvimento e aprendizado, também conhecido como ambiente integrado de desenvolvimento e aprendizado também Há duas maneiras de baixar o Python no Windows. Uma delas é por meio da distribuição oficial do Python publicada no site python.org A segunda é por meio da Windows Appstore. A versão do Python na Windows App Store é excelente para estudantes e para fins educacionais, mas tem algumas limitações que a distribuição python.org Neste curso, você baixará distribuição oficial do Python em python.org Tudo bem Vamos começar abrindo seu navegador de Internet preferido. Em seguida, navegue até python.org. Na parte superior do site, na barra de navegação principal, há o botão Downloads. Se você passar o mouse sobre ele, verá um botão para baixar a versão mais recente do Python No momento desta gravação, essa versão era Python 3.12 Clique no botão para baixar o Python. Quando o Python terminar o download, você pode clicar no arquivo EXE na parte inferior do seu navegador ou usar o Explorador de Arquivos para navegar até a pasta Downloads e abri-lo a partir daí Na primeira tela do instalador, você pode ver que está instalando o Python 3.12 0.5 ou qualquer versão baixada Há um botão Instalar agora que instalará o Python, bem como Idle PIP e a documentação do Python Há um botão de instalação personalizado. Você pode escolher o local da instalação e selecionar ou desmarcar recursos diferentes Há uma opção para instalar o inicializador para todos os usuários, o que é recomendado E continuaremos verificados nesta seção, bem como a opção de adicionar o Python 3.12 0.5 ao Vamos falar um pouco sobre o que isso significa. Antes de determinarmos se você deve ou não adicionar Python ao Path, vamos falar sobre o que é path Path é uma variável de ambiente no Windows que informa à linha de comando onde procurar arquivos e pastas. Agora, se você não sabe o que uma variável de ambiente ou é uma variável de ambiente ou a linha de comando, tudo bem. A principal conclusão é que o Path informa ao sistema operacional onde procurar coisas quando você emite comandos Adicionar Python ao seu caminho permite que você use o comando Python em um terminal para executar programas em Novamente, se isso não faz sentido para você, tudo bem. Portanto, você deve adicionar Python aos Paths. Se você tiver apenas uma versão do Python instalada, poderá adicionar Python ao Path com segurança nos dois Se você precisar de várias versões do Python instaladas no mesmo computador , é melhor não adicionar o Python ao Em ambos os casos, você pode usar o lançador Python para Windows para executar programas em Python em vez do comando Python do Neste curso, usaremos o ambiente integrado de desenvolvimento e aprendizado ou idol em vez do comando Python Neste curso, presume-se que você esteja instalando o Python pela primeira vez e que só temos uma versão do Python instalada no Embora não usemos o comando Python neste curso, será útil disponibilizá-lo posteriormente Então, você verá o Python instalado com a opção adicionar Python ao Vamos voltar para a instalação. Se você estiver instalando o Python pela primeira vez e planeja ter apenas uma versão do Python instalada, vá em frente e selecione Adicionar Python vá em frente e selecione Adicionar Python Em seguida, clique em Instalar agora. Se você precisar dar permissão ao seu computador para fazer alterações no seu dispositivo, vá em frente e faça isso. Em seguida, clique em. Na maioria dos computadores, instalação do Python leva apenas alguns minutos Quando o Python terminar a instalação, você verá uma tela informando que a configuração Essa tela inclui links para o tutorial online oficial e a documentação do Python Vá em frente e clique no botão Fechar. Tudo bem Agora você tem o Python instalado, mas como acessá-lo? Neste curso, usaremos ambiente integrado de desenvolvimento e aprendizado do Python ou o Idle para interagir com o Há duas maneiras de abrir o Idle. Uma delas é por meio do menu Iniciar. A outra é por meio da barra de pesquisa do Windows. Para abrir o Idle no menu Iniciar, clique no ícone do Menu Iniciar e, em seguida, role para baixo. Ou clique em todos os aplicativos até encontrar a pasta Python 3.12 0.5 Eu tenho a versão do Windows 11 instalada. Dentro da pasta, há um aplicativo chamado Idle. Clique nele para abrir o Idle. Isso abre o shell Idle. Na parte superior da janela, você pode ver a versão do Python em execução, bem como algumas informações sobre seu sistema operacional Abaixo dessas informações estão três colchetes angulares vermelhos. Eles são chamados de prompt. Sempre que você vê isso, significa que Python está esperando que você dê algumas instruções Agora, vá em frente e feche o Idle. Para abrir o Idle na barra de pesquisa do Windows, comece digitando Idle na Na seção de aplicativos, você verá uma opção para Idle que diz Python 3.12 Pode dizer 32 bits se você baixou uma versão de 32 bits do Python para o seu sistema Clique nele para abrir o Idle. Então aí está. Agora você sabe onde baixar o Python, como instalá-lo e como abrir o ambiente integrado de desenvolvimento e aprendizado do Python integrado de desenvolvimento e aprendizado do Python Se você quiser ver como instalar o Python em outros sistemas operacionais, como macOS e Linux, fique à vontade para conferir as próximas duas lições deste curso 6. Como usar o Shell Python 2024: Oi, todo mundo. Este é Andreas, e é um dia empolgante, pois vamos escrever nosso primeiro comando em Python Nesta palestra, aprenderemos como usar o programa Idle que vem junto com nosso interpretador Python Vamos escrever nosso código usando o programa Idle, então vamos primeiro iniciá-lo Você pode procurá-lo digitando Idle na caixa de pesquisa. Depois de encontrado, clique no ídolo ou na GUI do Python para iniciá-lo GUI do Python O shell do Python aparece em nossa tela. Um shell é um programa que permite digitar instruções no computador, assim como o terminal ou o prompt de comando no OSX e no Windows , respectivamente. Podemos inserir um comando por vez. O shell espera que um comando seja executado pelo usuário e, em seguida, retorna o resultado da execução Depois disso, o shell aguarda o próximo comando. As linhas começam com três símbolos maiores que. Vamos fazer alguns exemplos. Digite cinco mais dez, Enter. A concha retorna à resposta 15. Agora digite cinco maiores que um. Você está perguntando à concha se cinco é maior que um. A resposta da concha é verdadeira. Portanto, o shell é adequado para executar um comando por vez. É uma ferramenta muito conveniente para enviar mensagens de texto para comandos em Python , especialmente quando estamos começando a usar a No entanto, se você sair do shell do Python e inseri-lo novamente, todos os comandos digitados desaparecerão Além disso, você não pode usar o shell do Python para criar um programa real, mas se quiser escrever um programa inteiro, a resposta é o editor de arquivos Para codificar um programa simples, você precisa escrever o código em um arquivo de texto e salvá-lo com uma extensão PY de pontos. Esse arquivo é conhecido como script Python. Você pode entrar no editor de arquivos Arquivo e depois em novo arquivo. É semelhante a um editor de texto e permite digitar instruções manuais, salvar o arquivo e executar o programa. Lembre-se de que a janela interativa do shell sempre será aquela com o prompt três maiores que o símbolo. Em vez disso, a janela do editor de arquivos não terá esse prompt. Na próxima palestra, aprenderemos mais sobre seu ambiente de codificação. 7. Como configurar o Python (resumo) 2024: Parabéns. Agora você tem Python instalado no seu Vamos fazer uma rápida recomposição de tudo o que você aprendeu. Nesta seção, você aprendeu onde baixar o Python no Windows e no macOS Como instalar o Python usando os instaladores oficiais no Windows e no macOS ou o gerenciador AppedPackage no Ubuntu Você também aprendeu a abrir o Idle, integrado de desenvolvimento e aprendizado do Python Então, para onde você vai a partir daqui? Bem, você está pronto para começar a programar em Python. Você usará o Idle para interagir com o Python e para escrever e executar programas em Python Mas Idle não é sua única opção. Talvez você queira configurar um editor diferente. Para ajudá-lo com isso, na próxima lição, mostrarei um editor Python alternativo, código VS ou o código do Visual Studio Portanto, é uma ótima alternativa ao Python Idol original. Quero desejar a você tudo bom em sua jornada com o Python e nos vemos por aí 8. Editores de código 2024: Quando se trata de digitar código Python , você tem Você pode usar um editor de código ou um IDE, que é a abreviação de ambiente de desenvolvimento integrado. Um IDE é basicamente um editor de código com alguns recursos sofisticados, como preenchimento automático, ou seja , conforme você digita o código Esse recurso ajuda você a completar seu código, para que você não precise digitar todos os caracteres manualmente. É um recurso que aumenta a produtividade. Ele também oferece recursos adicionais, como depuração, o que significa encontrar e corrigir bugs em seus programas, testes e assim por diante Tanto para editores de código quanto para IDEs, existem muitas opções disponíveis Os editores de código mais populares são VS code, Adam e Sublime Você pode usar o editor de código de sua preferência. Em termos de IDEs, novamente, existem muitas opções disponíveis. O mais popular é o Pi harm. Neste curso, vou usar a distribuição oficial do Python ou Idol, conforme discutimos nas lições anteriores Mas em alguns exercícios, também vou usar o código VS ou o código do Visual Studio porque esse é meu editor de código favorito. Posteriormente no curso, mostrarei como instalar um plug-in ou uma extensão que converterá o código VS em um IDE poderoso. Portanto, antes de prosseguir, acesse code.visualstudio.com e baixe a versão mais e baixe 9. Escrevendo seu primeiro programa Python - Introdução 2024: Olá, pessoal, e bem-vindos a esta nova seção. A primeira seção foi sobre como instalar o Python em seu computador E agora que você o instalou, é hora de começar a programar. Nesta seção, você escreverá seu primeiro script em Python. Você aprenderá o que acontece quando executa scripts com um erro e aprenderá como declarar variáveis e inspecionar seu valor. Você também aprenderá muito sobre como escrever comentários. Ao longo do caminho, você também aprenderá as diferenças entre o que é chamado de janela interativa e a janela de script dentro do Idol. Você aprenderá sobre o loop de impressão Red evaluate, REPL. E você não apenas criará scripts, mas também aprenderá a executá-los. Você aprenderá sobre um operador muito importante chamado operador de atribuição. Quais são as regras para criar nomes de variáveis e o que é considerado válido ou inválido Além disso, você aprenderá alguns dos padrões descritos no PEP oito. Então é hora de você começar a escrever seu primeiro script em Python 10. Escrevendo nosso primeiro programa Python 2024: Ok, é hora de começar a escrever seu script Python Você usará um programa que vem com a instalação do Python É chamado de Idle, que significa desenvolvimento integrado no ambiente de aprendizagem. Tem duas janelas principais e você passará algum tempo em ambas. A primeira é chamada de janela interativa, e vou compartilhá-la em apenas um segundo. Em seguida, a janela do editor , onde você realmente escreve scripts e programas que serão salvos e executados posteriormente. Você pode digitar o código na janela interativa e na janela do editor. A diferença entre as duas janelas está na forma como elas executam o código. Tudo bem. Vamos dar uma olhada na janela interativa. Se você ainda não tem o Idle aberto, vá em frente e abra-o Você pode encontrá-lo na pasta em que o aplicativo foi instalado. No meu caso, vou escolher o Python 3.12 e clicar no A janela interativa Idls contém o Python Shell. Você pode ver esse nome aqui, Idle Shell. É uma interface de usuário textural usada para interagir com a linguagem Python Você pode digitar um pouco do código Python na janela interativa e pressionar Enter para ver imediatamente o resultado Daí o nome interativo. Quando a janela abrir, ela exibirá o mesmo texto no início. O texto mostra a versão do Python que o Idle está executando e alguns dos comandos que você pode usar para ajudar ou visualizar informações sobre Esse lugar aqui, é chamado de prompt, e é onde você poderá digitar o código. Então, bem na frente desse prompt do cursor, vá em frente e digite um mais um e pressione Enter. E você pode ver que ele produz dois. Python avalia a expressão de um mais um e exibe dois e, em seguida, exibe outro prompt logo abaixo disso Toda vez que você executa o código em uma janela interativa, um novo prompt aparecerá diretamente abaixo do resultado. Ao usar a janela interativa, ela funciona como um loop e inclui essas três etapas diferentes. Primeiro, o Python lê o código que você inseriu no prompt Novamente, essa é a coisa com três símbolos diferentes, um pouco maiores do que. Segundo, ele avalia o código. Três, o Python imprimirá o resultado e aguardará mais entradas Isso é conhecido como loop de impressão de avaliação vermelha. Geralmente somos abreviados como REPL. REPL, os programadores de Python geralmente se referem a isso como Python Shell como Python REPL ou simplesmente repelem Ok, vamos tentar algo um pouco mais interessante do que apenas adicionar números. O rito de passagem de todo programador é escrever o programa que imprime a frase “ olá, mundo” na tela No prompt, vá em frente e digite print, e então você pode criar um conjunto de parênteses aqui Então, estou abrindo parênteses, e você pode ver que ele está me dando algumas instruções adicionais aqui, o que é muito bom E aprenderemos tudo sobre essas coisas à medida que avançamos no curso. Nesse caso, vamos imprimir algum texto. Então, queremos olá mundo. E se eu pressionar Enter, você pode ver que ele gera Hello world. Esse trecho de código que você digitou aqui, print é uma função Uma função é um código que executa algumas tarefas e pode ser invocado pelo nome O código acima invoca ou chama a função de impressão com o texto hello world dentro dela e o gera Os parênteses dizem ao Python que chame a função de impressão. Se eu simplesmente digitar print sozinho, ele não saberá como eu quero chamá-lo. Só vai me contar sobre isso. Isso me diz que é uma função embutida chamada print. Para chamar essa função, preciso colocar os parênteses e depois dizer algo de valor Como você vê, está me levando aqui para colocá-lo lá. E da última vez, digitamos a mesma coisa, então vou fazer isso de novo. E ótimo. Esses parênteses também incluem tudo o que é enviado para a função entra nela como entrada E as aspas indicam que Hello world é verdade, texto e não outra coisa que talvez queiramos imprimir Dentro do Idol, você pode ver alguns destaques intrigantes acontecendo acontecendo Com a configuração atual que eu tenho, você pode ver que uma função é diferente da saída, e você pode ver que algo que está dentro das aspas parece diferente, digamos, desses números aqui em cima Por padrão, as funções são destacadas em roxo e o texto é destacado em verde. Essa janela interativa é muito útil para testar pequenos exemplos de código e explorar a linguagem Python, mas tem uma grande Você precisa inserir o código uma linha por vez. Então, como alternativa, você pode salvar o código Python no arquivo de texto e executar todo esse código para executar um programa inteiro É para isso que vamos mudar usando a janela do editor. Você escreverá seus próprios arquivos Python usando o Idols Você pode abrir a janela do Editor selecionando arquivo e novo arquivo no menu na parte superior da janela interativa. Deixe-me te mostrar isso. A janela interativa permanecerá aberta quando você abrir a janela do editor. Ele exibe a saída gerada pelo código na janela do editor. Portanto, você deve organizar as duas janelas para poder vê-las ao mesmo tempo. Dentro da janela do editor, digite o mesmo código que você usa para imprimir Hello World na janela interativa. Observe que o Idle destaca o código digitado na janela do Editor , assim como na janela interativa Você não precisa adicionar o prompt como estava na janela interativa. Não é obrigatório. Antes de executar o programa, você precisa salvá-lo. Então, selecione Arquivo e Salvar no menu e salve o arquivo como helloworld dot PY Em alguns sistemas, ele usará um diretório padrão onde o Python está instalado O mesmo lugar em que Idle está. Certifique-se de não salvar seus arquivos nesse diretório. Em vez disso, salve-os em sua área de trabalho ou em uma pasta no diretório inicial do usuário. Eu criei uma pasta chamada Python na minha área de trabalho e vou salvar o arquivo A extensão dot PY indica que o arquivo contém código Python Na verdade, salvar seu arquivo com qualquer outra extensão removerá o destaque do código IDL só destacará código Python quando armazenado em um arquivo PY de pontos Para executar o programa, você pode selecionar Executar no menu suspenso e executar o módulo. Você também pode notar alguns dos principais comandos sendo destacados aqui. Nesse caso, é a tecla de função cinco. Então, o programa vai sair para a janela interativa. Você verá restart e , em seguida, o diretório e o mesmo nome do arquivo que está sendo executado e sua saída. O Idle reinicia sempre o interpretador Python, que é o programa de computador que realmente executa seu código quando você executa Isso garante que os programas sejam executados sempre da mesma forma. Se você quiser abrir um arquivo, acesse Arquivo e Abrir. E no meu caso, estou reabrindo o arquivo que acabamos de salvar minha pasta Python e helloworld Você também pode abrir um arquivo do gerenciador de arquivos, como o Windows Explorer ou o Mac OS Finder clicando com o botão direito do mouse sobre eles e dizendo abrir com Tudo bem. Você fez seu primeiro programa. Em seguida, é hora de cometer alguns erros. 11. Vamos cometer alguns erros 2024: Ok, é hora de cometer alguns erros. É muito difícil não cometer erros durante a programação. E caso você não tenha chegado até agora, vou fazer com que você pratique a criação de alguns deles apenas para ter uma ideia do que está acontecendo. O primeiro tipo que você enfrentará é chamado de erro de sintaxe E o erro de sintaxe ocorre quando você escreve um código que não é permitido na linguagem Python O idioma não entende o que você está tentando fazer. Vou fazer com que você crie um erro no código que você já escreveu. É uma prática criar esse erro de sintaxe. Quero que você reabra seu arquivo hello underscorworld dot py E no final, vá em frente e remova a segunda aspa. Então, começa com uma aspa e depois olá mundo, mas não há uma que feche a citação Se você salvar isso e, em seguida, executar ou pressionar a tecla F cinco, obterá algo novo aqui onde diz literal de string indeterminado detectado na linha Dependendo da versão do Python que você tem, essa mensagem pode mudar O Python 3.12 adicionou muitas outras explicações explícitas de erros, que é E você verá mais deles ao longo do curso à medida que continuamos. Mas o que você pode ver em uma versão anterior disso é uma declaração que diz EOL, e EOL significa fim da linha Nesse caso, ele foi reformatado e diz algo um pouco melhor Então, o que é uma string literal? Bem, uma string literal é o que você criou aqui. Mas, nesse caso, você não o fechou nem o encerrou com aspas adicionais Para criar uma string literal, você precisa colocar o texto desejado entre aspas Pode ser uma aspa dupla ou uma citação simples, e você passará muito tempo nisso em um próximo curso sobre sequências de caracteres Para corrigir esse erro de sintaxe, você precisaria adicionar essa outra peça e salvar E então ele pode ser executado e impresso. Então, isso é considerado um erro de sintaxe. O outro tipo de erro que você experimentará na programação é chamado de erro de tempo de execução. O Idle detecta erros de sintaxe antes mesmo de o programa começar a ser executado Mas, por outro lado, os erros de tempo de execução só ocorrem enquanto um programa está em execução. Quando ocorre um erro, Python para de executar o programa e, em seguida, exibe várias linhas de texto, conhecidas como rastreamento, e mostra várias informações úteis sobre O que é muito interessante sobre isso, é melhor lê-los de baixo para cima. Vou fazer com que você volte ao seu arquivo e, desta vez, você criará um erro de tempo de execução e poderá ver a diferença entre os dois. Para criar um erro de tempo de execução, tente isso em vez disso. Remova as duas aspas. Você notou como a cor do texto muda para preto quando você remove as aspas O Idle não reconhece mais hello world como texto. Então, o que vai acontecer aqui é que esse é um código válido. Ele entende sua sintaxe, mas algo diferente vai acontecer Vá em frente e salve isso e, ao executá-lo, você verá isso acontecer. Portanto, isso é chamado de erro de tempo de execução. E, novamente, para ler o rastreamento, isso está acontecendo aqui. É melhor lê-lo de baixo para cima. Então, diz imediatamente que isso é um erro de nome. Há um nome ou algo que você está pedindo para ser impresso. É chamado Hello e não está definido. Não sabe, você sabe, o que é olá ou a que está se referindo É válido no que diz respeito à sintaxe, à forma como está escrito, mas o hello não existe Portanto, ainda não foi definido. E isso é algo que você vai fazer na próxima lição: aprender a definir variáveis. E se continuasse, na verdade teria o mesmo problema com o mundo. Novamente, você pode ler de baixo para cima. Portanto, é um erro de nome. O nome hello não está definido e, em seguida, mostra a declaração em que isso acontece. E então, na verdade vai um pouco mais longe aqui. Esse é o arquivo do qual ele está lendo. Às vezes, projetos em Python têm vários arquivos, e o rastreamento pode levar a outro Então, neste caso, diz: Ok, onde você tem isso salvo no nome do arquivo, e isso realmente diz qual linha é. Novamente, você não vai ter programas tão simples surgindo. Esta é apenas uma linha. Portanto, é bem simples onde está o problema. Mas é assim que o traceback funciona, e você pode praticá-lo muito mais à medida que avança. Então, você entende a diferença entre um erro de tempo de execução e um erro de sintaxe Ótimo. No caso de um erro de sintaxe, ele nem mesmo permitirá que você o execute porque não parece um código Python normal Ele não segue a sintaxe correta. Nesse caso, esse é um erro completamente diferente em que ele leu tudo, mas quando foi executado, não conseguiu encontrar a definição de hello em nenhum lugar. Ok, é hora de praticar um pouco sozinho. Como uma pequena revisão, tente escrever um programa que o Idle não execute porque tem um erro de sintaxe Em seguida, escreva um programa diferente que trava somente quando está em execução porque tem um erro de tempo de execução Você pode encontrar o arquivo de soluções nesta lição em seus recursos. OK. Em seguida, você aprenderá tudo sobre a criação de variáveis. 12. Como criar uma variável 2024: Agora que você viu brevemente as variáveis na última lição, é hora de se aprofundar em falar sobre elas. Em variáveis ou nomes do Python, ele pode ser atribuído a um valor e depois usado para se referir a eles posteriormente em todo o código E essa é a ideia realmente crucial de uma variável: você pode atribuí-la e atribuir um valor a ela. Mas se você quiser referenciar esse valor a qualquer momento no programa, poderá chamar o nome da variável e usá-la novamente ou, potencialmente, atribuir a ela um valor diferente As variáveis são realmente fundamentais para a programação, e há dois motivos principais. Primeiro, ele mantém acessíveis os valores que você está tentando inserir em seu programa. Por exemplo, você pode atribuir o resultado de alguma operação ou expressão demorada a uma variável para que seu programa não execute a operação toda vez que você precisar usar o resultado. Ele pode simplesmente acessar o valor diretamente da variável. O outro motivo é que as variáveis podem fornecer contexto. Quando você tem o número 20, isso pode significar várias coisas diferentes. Isso pode significar o número de alunos em sala de aula. Pode ser a quantidade de vezes que alguém acessou um site ou foi a algum lugar e assim por diante. Dar ao valor 20 um nome como o número de alunos deixa claro o significado desse valor. Nesta lição, você aprenderá como usar variáveis em seu código e algumas das regras e diretrizes de estilo por trás disso. Para chegar lá, porém, para criar uma variável, você precisa aprender sobre algo chamado operador de atribuição. Então, vamos começar com o operador da segunda palavra. Um operador é um símbolo , como mais ou menos que executa uma operação em um ou mais valores Você usou um anterior de dois mais dois, e ele executa a adição nesse caso. Se fosse dois menos dois, ele realizaria a subtração No caso da atribuição, os valores são atribuídos aos nomes das variáveis usando um símbolo especial chamado operador de atribuição, que é um único sinal de igual E isso pode ser um pouco confuso. Você aprenderá mais sobre como esse operador de atribuição funciona e como ele não está necessariamente comparando duas coisas e dizendo que elas são iguais uma à outra Na verdade, está fornecendo o valor e atribuindo-o ao nome dessa variável O operador pega o valor que está no lado direito do operador e o atribui ao nome à esquerda Deixe-me dar uma olhada na janela interativa. Digite isso. Se você vai criar uma variável, nome dela é saudação Para atribuir um valor a ele, use o sinal de igual, o operador de atribuição. Você vai dar a ele a string literal de Hello world. Se você digitar print, então, como valor, escolha usar o nome da variável saudação Você obteria a mesma saída como se tivesse que imprimir o próprio literal hello world Agora, se você digitasse saudação sozinha, veria que ela seria atribuída à string literal E se você cometesse um erro de digitação ao imprimir e escolhesse a saudação em maiúscula Esse é um código válido novamente. Isso mostra que, no que diz respeito à sintaxe, isso funciona Mas quando pressiono Enter, você pode ver que recebi um erro de tempo de execução ou um erro de nome. O nome saudação não está definido. E, novamente, essa é uma vantagem do Python, pois na verdade dá uma ideia um pouco melhor contexto do que está acontecendo E diz: Você quis dizer saudação? Porque há uma variável chamada saudação aqui, o que é muito bom Isso é uma atualização. Talvez você não veja isso em uma versão anterior do Python. Ah, sim. O caso que você está usando no nome de uma variável é importante e eles são completamente diferentes. Você pode ter aprendido em outros contextos de programação que talvez a capitalização não importasse, mas no caso do Python Agora, existem regras de variáveis e nomes válidos dentro do Python Novamente, para evitar coisas como erros de sintaxe. Os nomes das variáveis podem conter maiúsculas e minúsculas Qualquer um desses está bem. Pode incluir dígitos. Pode incluir sublinhados. E o único truque, porém, é que não pode começar com um número, não pode começar com um dígito Então, deixe-me dar alguns exemplos. Portanto, um nome Python válido pode ser uma string um ou um sublinhado A um S quatro, ou uma lista de sublinhados de cidades sublinhadas Algumas das coisas que não seriam válidas seriam começar com um número. Então, cinco cabos ou 65 horas. Então, tenha isso em mente. Você não pode começar com um número, pode começar com um dígito Está bem? Ótimo. Além dos caracteres alfabéticos sobre os quais acabamos de falar e dos dígitos no sublinhado, os nomes das variáveis do Python podem conter Unicode, se você não estiver familiarizado com ele, é um padrão para representar caracteres digitalmente e é usado na maioria dos sistemas de escrita do mundo Então, deixe-me dar alguns exemplos de coisas que você pode ter visto. Então, letras decoradas em francês, espanhol ou alemão, onde você tem como E com um sotaque ou com um umlat, você sabe, coisas diferentes como essas que Você pode usar esses caracteres em símbolos chineses, japoneses ou árabes, mas nem todo sistema em que você executa seu código pode exibir esses caracteres. Portanto, é algo com que se deve ter cuidado, e talvez seja melhor usar os que especificamos um pouco antes. Você aprenderá muito mais sobre Unicode em uma seção muito posterior, mas também incluirei alguns recursos se quiser avançar Escolher um bom nome para uma variável é difícil. Existem alguns memes que mostram alguém pensando muito sobre, como faço para criar um nome E há algumas diretrizes que você pode querer seguir. A primeira que quero compartilhar com você é que manter as coisas descritivas pode ser muito melhor do que mantê-las super curtas É meio difícil saber qual é a intenção de uma variável chamada S difícil saber qual é a intenção , especialmente se for algo como segundos. Isso pode ser muito mais útil ou ainda mais explícito e descritivo seria segundos por hora. Isso pode parecer que você gosta muito de digitar. O que você aprenderá é que existem muitas ferramentas ao trabalhar com um editor que podem ajudá-lo a completar os nomes das coisas, para que você não precise se preocupar muito em manter as coisas muito restritas e curtas. No futuro, pode ser muito mais útil ter um nome descritivo do que apenas um nome curto simples A boa regra é talvez limitar o nome da variável a três ou quatro palavras no máximo Tudo bem. Então eu disse que você poderia usar letras maiúsculas ou minúsculas Bem, onde você deve usá-los? O estojo que você deve usar pode variar dependendo do que você deseja fazer, mas existem algumas diretrizes. Vamos falar sobre maneiras diferentes de fazer isso. Um termo usado é mistura de maiúsculas e minúsculas, em que você começa com, digamos, letras minúsculas e, em seguida, cada palavra individual que você está adicionando dentro do nome dessa variável é colocada em maiúscula na primeira Então, aqui estão alguns exemplos. Assim, vários estudantes poderiam ser estudantes maiúsculas ou uma lista de nomes maiúsculos e assim por diante. Então, isso é chamado de caso misto. A outra maneira de fazer isso é usar sublinhados, mantendo tudo em minúsculas e, em seguida, usando um sublinhado entre cada um deles Isso também é conhecido como estojo de cobra. Essa é a aparência dessas variáveis em maiúsculas ou minúsculas com sublinhados Em Python, é mais comum escrever nomes de variáveis nesse estilo Não é proibido usar maiúsculas e minúsculas, mas normalmente é mais parecido com o Python usar esse estilo Python usar esse Na verdade, há todo um tópico sobre isso, chamado de PEP oito PEP eight é amplamente considerado como o guia de estilo oficial para escrever Python , como as coisas são nomeadas, como as coisas devem ser formatadas , como E você pode aprender muito mais sobre isso acessando este site, pepight.org Alguém criou este site para oferecer a você um tour por todos os recursos de uma forma bem formatada Há mais informações. Vou incluir um link na descrição. Seguindo os padrões descritos e o PEP oito, garantirá que código Python seja legível para a maioria dos programadores de Python, ele terá a aparência Quanto ao nome PEP, significa Python Enhancement Protocol Um PEP é um documento de design. Ele é usado pela comunidade Python para propor novos recursos ou mudanças na Ao trabalhar com variáveis, é bom poder inspecionar os valores, e você pode fazer isso dentro da janela interativa Para inspecionar o valor que uma variável contém agora, você pode digitar o nome da variável sozinha no prompt Apenas digitar o nome sozinho no prompt geralmente exibirá algo diferente do que é exibido em comparação com o uso de impressão Você também pode aprender sobre qual é o tipo de variável colocando o nome da variável no tipo. Deixe-me mostrar como eles se parecem. Digamos que você criou uma variável de X e X receberá o valor de dois. Se eu digitar X e inspecionar a variável, você verá que seu valor é dois E se eu fosse imprimir, obteria a mesma saída. Agora, poderia parecer um pouco diferente se eu dissesse atribua Y ao valor da string literal dois Portanto, isso é texto em vez de um valor numérico real. Então, nesse caso, se eu digitar Y, você verá que ele gera algo um pouco diferente do que se eu fosse imprimi-lo Então isso pode ser um pouco confuso. E o que você aprenderá é que esses são tipos diferentes e são interpretados de forma diferente dentro do Python E esse é um grande assunto que você abordará em seções muito posteriores. Uma coisa que você pode verificar é que você pode dizer tipo. Você pode ver aqui que ele solicitará o objeto ou nome e, em seguida, retornará. É isso que a seta indica o tipo do objeto. E isso é só uma prévia. Então experimente com X. Diz que é uma classe de números inteiros Agora, versus o tipo de Y. Y é a classe de uma string, e elas são representadas de forma diferente quando você simplesmente insere o nome da variável E lembre-se de que uma inspeção de variáveis como essa só funciona nessa janela interativa dentro de um REPL. Por exemplo, tente executar o programa a seguir na janela do editor. Então, digamos que começamos definindo saudação e ela diz que é igual a olá , E então, na próxima linha, basta digitar saudação. O que ele produzirá quando você executar este programa? Como você pode ver quando ele foi executado, ele não gerou nada. Esse tipo de inspeção de uma variável só funciona aqui na janela interativa. Como revisão, aqui estão alguns exercícios que você pode fazer usando a janela interativa. Exiba algum texto usando a impressão. Em seguida, usando a janela interativa, atribua uma string literal a uma variável Em seguida, imprima o conteúdo da variável usando a função de impressão. Repita esses dois primeiros exercícios usando a janela Editor agora com um arquivo. Você pode encontrar o arquivo da solução na lição dentro de seus recursos. Tudo bem. seguir, como você pode deixar anotações dentro do seu código? Obrigado por assistir. 13. Como adicionar comentários 2024: Nesta lição, você aprenderá como fazer anotações úteis para si mesmo. Eles são chamados de comentários. Às vezes, os programadores leem códigos que escreveram há algum tempo e se perguntam: o que isso faz? Quando você não lê um código há algum tempo, pode ser difícil lembrar por que você o escreveu dessa maneira. Para ajudar a evitar esse problema, você pode deixar comentários em seu código. Comentários são linhas de texto que não afetam a forma como o programa é executado. Eles documentam o que o código faz e por que você, o programador, tomou certas decisões Vamos abrir um arquivo anterior, hello world, e vamos editar o código. Tudo terminou na primeira linha do código. Saudação é igual a olá mundo. Imprima a saudação. Para começar um comentário, você usa o símbolo de hash, às vezes chamado de sinal numérico É assim que eu gosto de me referir a ela. Às vezes, também é chamado de sinal de libra nos EUA. O Reino Unido pode discordar disso. O nome técnico é Octothorp. Você já deve ter ouvido falar disso. Comece com esse símbolo de hash e, em seguida, qualquer coisa que você escrever depois disso será ignorada quando o programa for executado Então, se eu salvar e executar esse código, você pode ver que ele foi executado normalmente. Isso não mudou nada sobre como esse código específico é executado. Há duas maneiras de você comentar sobre seu código. O primeiro começa com um símbolo de hash em uma nova linha e é chamado de comentário em bloco O outro estilo é chamado de comentário embutido. Ele continua na mesma linha com um símbolo de hash logo após o código Você ainda pode usar esse sinal de libra, o símbolo de hash dentro de uma string Por exemplo, o Python não confundirá o seguinte com uma string Deixe-me voltar para a janela interativa. Se eu fosse imprimir uma string dizendo o número um , não teria problema com isso. Ainda será impresso porque faz parte de uma string. Em geral, é uma boa ideia manter seus comentários o mais curtos possível. Mas às vezes você precisa escrever mais do que cabe razoavelmente em uma única linha Nesse caso, você pode continuar seu comentário em uma nova linha e também começar com um símbolo de hash Você também pode comentar linhas do seu código. Para fazer isso, você coloca esse sinal de número de hash no início da linha de um código É uma forma não destrutiva de testar o comportamento do seu programa sem que ele execute linhas específicas do código E há algumas recomendações sobre como você deve formatar seus comentários. Novamente, de acordo com o PEP oito, comentários devem sempre ser escritos em frases completas Eles devem ter um único espaço entre o símbolo de hash e a primeira palavra do comentário comentário embutido deve começar com dois espaços após o código O PEP oito também recomenda que seus comentários sejam usados com moderação Comentários que realmente descrevam o que já é óbvio são desnecessários e podem irritar muitos programadores Os comentários são melhor usados para esclarecer códigos que podem ser difíceis de entender ou para explicar por que algo é codificado de determinadas maneiras . Obrigado por assistir. 14. Interagir com o IDLE 2024: Ao longo deste curso, envolveremos você em muitos desses exercícios interativos de codificação A ideia é que você não esteja apenas sentado me vendo falar, que esteja realmente colocando em prática tudo o que está aprendendo. Dessa forma, ele realmente se torna seu. Esses exercícios de codificação são ótimos porque podemos dar instruções e mostrar o que deve acontecer se você escrever o código correto, o que ele precisa fazer e o que você poderá fazer com seu código, além de vê-lo ser executado no console É por meio de muitos desses exercícios que você poderá subir de nível e se tornar um programador melhor Então, para ter certeza de que você pode interagir com o idol, tente as seguintes etapas no seu computador Pause o vídeo agora e conclua este desafio. Tudo bem. Como você se saiu? Eu realmente espero que você tenha tentado isso. Porque é nesses momentos que você aprenderá a programar. Claro, isso é o começo. Agora, este é um exercício muito simples, projetado para garantir que você possa localizar o software ocioso em seu programa, iniciá-lo e, em seguida, fazer algo muito simples nele Então, basta digitar uma declaração impressa. Primeiro, vamos localizar o modo inativo em seu sistema. Então, vou clicar aqui para pesquisar por Idle. Aqui está. Como alternativa, clique no botão Estrela. Localize a pasta Python. E então você verá um item inativo nesse grupo. Então, basta clicar nisso. E isso deve fazer o ídolo rodar em nosso sistema. Um Idol é executado nessa janela de shell do Python. Aqui temos o interpretador de modo interativo em execução e temos o prompt, os três sinais maiores que Esse é o prompt que está esperando por nós para digitar uma instrução Python e, em seguida, ela executará essa Portanto, o exercício solicita que você digite uma declaração impressa. Vamos digitar isso. Imprimir. E então temos um parêntese de abertura e, em seguida, digitamos os caracteres que queremos imprimir dentro de um conjunto de aspas Isso é um teste de ídolo. E então colocamos uma aspa de fechamento e um parêntese de fechamento Agora vou pressionar a tecla enter e devemos ver o resultado dessa declaração. Então, quando eu pressiono a tecla enter, o interpretador do Python executou essa instrução, e aqui vemos Então, se você digitou tudo corretamente, sua tela deve ficar assim É possível que você tenha cometido um erro de digitação. Por exemplo, um erro comum é omitir as aspas Então, se você fez algo assim, deixe-me seguir em frente e cometer esse erro de propósito Então você pode ver que eu digitei a declaração, mas omiti as aspas. E nesse caso, recebo uma mensagem de erro informando que tenho um erro de sintaxe, sintaxe inválida Então, se você disser algo assim, veja como a declaração aparece em seu livro e certifique-se de digitá-la exatamente da maneira que Agora, outro erro comum é omitir o número correto de parênteses, Então, aqui eu digito a declaração de impressão corretamente, exceto que eu não digitei o parêntese de fechamento Agora, se eu pressionar a tecla enter, você notará que não recebo uma mensagem de erro, mas o intérprete do Python está realmente esperando que eu conclua a declaração O cursor simplesmente desce para a próxima linha, e toda vez que eu pressiono a tecla enter, ele simplesmente desce para a próxima linha, mas não me dá nenhuma saída. Ele está esperando que eu digite o parêntese de fechamento e, em seguida, ele me dá a saída Então, se você observar esse comportamento, provavelmente é uma indicação que você omitiu um parêntese Você se acostumará a todas essas coisas à medida que trabalhar cada vez mais no ambiente ocioso Agora, quando terminar de usar o Idol, você pode ir ao menu Arquivo e selecionar Sair, ou simplesmente digitar Control plus Q com um teclado, e isso o fechará Obrigado por assistir. 15. Como encontrar ajuda 20224: Yo. E aí, pessoal. Nesta palestra, abordaremos como encontrar ajuda quando você estiver preso Além disso, você aprenderá as melhores páginas da web e recursos para perguntas e respostas em Python Então, vamos começar. Quando você estiver aprendendo a programar em algum momento, você ficará preso. Isso é absolutamente normal para iniciantes e também para usuários experientes em programação. Quando você está preso e antes conseguir ajuda de outra pessoa, o primeiro passo deve ser avaliar sua situação. Quero dizer, questionar a si mesmo , o que você está tentando fazer e o resultado que está obtendo. Resolver problemas de programação não é tão difícil quanto você imagina. Vamos dar um exemplo. Digite A mais B. E, em seguida, pressione Enter. Uma seta ocorre na cor vermelha. O Python imprime um rastreamento quando uma exceção é gerada Um rastreamento é um relatório contendo as chamadas de função feitas em seu código em um ponto específico. Não se preocupe. uma seção inteira explicando os erros e como lidar com eles. Não é necessário entender o que a mensagem de erro significa no momento, mas darei uma breve explicação. Esse é um erro de nome, um dos tipos mais comuns de erros do Python Um erro de nome significa que você tentou usar uma variável que ainda não existe. Um erro de nome é gerado quando você tenta usar um nome de variável ou função que não é válido. Em Python, o código é executado de cima para baixo. Isso significa que você não pode declarar uma variável depois de tentar usá-la em seu código O Python não saberia o que você queria que a variável fizesse. Em nosso exemplo, não declaramos uma variável chamada A e uma variável chamada B. Para resolver esse problema, precisamos declarar A e B antes de usá-las em nosso código Há dois tipos principais de erros. Um erro de sintaxe basicamente significa que você cometeu um erro de pontuação Esses são os erros mais comuns. Acostume-se a ler que você digitou bem de perto e compará-lo com muito cuidado com o que deveria ter digitado Erros lógicos ocorrem quando você não entendeu o que está tentando fazer ou o que pediu que o Python fizesse Esses erros podem ser difíceis detectar e mais difíceis de rastrear. A maneira mais fácil de obter ajuda é copiando a mensagem de erro na pesquisa do Google, e você verá vários links explicando o que a mensagem de erro significa e o que a causa. Você também pode tentar perguntar às pessoas diretamente em um formulário da web, como o stack overflow Aqui está o endereço da web. O Stack Overflow é um dos sites de perguntas e respostas mais populares para É muito confiável porque os usuários podem votar nas respostas que considerarem mais úteis. Portanto, as melhores respostas geralmente são as primeiras que você encontrará. Outra forma de encontrar ajuda é por meio da documentação oficial do Python Aqui está o endereço da web. É útil e contém muita documentação. Finalmente, uma ótima página da web é pythontutor.com. Ele tem uma ferramenta para escrever ou colar programas Python e visualizar o que o computador está fazendo passo a passo enquanto executa 16. Escrevendo seu primeiro programa Python – resumo: Nesta lição, vou resumir a seção e compartilhar alguns recursos adicionais para você continuar aprendendo Ao longo desta seção, você conheceu vários conceitos novos. Você aprende como as variáveis dão nomes aos valores em seu código. Você aprende a usar o operador de atribuição para atribuir valores às variáveis Saiba mais sobre erros de sintaxe e como eles ocorrem quando você escreve código que não é permitido na linguagem Python E você também aprendeu sobre erros de tempo de execução e como eles ocorrem durante a execução de um programa. Os erros de tempo de execução também fornecem um rastreamento que pode mostrar informações úteis sobre o erro e é melhor lê-las de baixo para cima. Como os comentários são linhas de código que não executadas e servem principalmente como documentação. Para testar seus conhecimentos, há um questionário que você pode conferir nesta seção Parabéns por escrever seu primeiro programa e espero vê-lo em breve na próxima seção. 17. Cordas e métodos de cordas - INTRODUÇÃO 2024: Olá, pessoal, e bem-vindos às strings e aos métodos de string Os programadores de Python lidam com texto diariamente, seja exibindo texto em uma página da web ou em uma interface gráfica de usuário, ou até mesmo aceitando uma entrada que um usuário digitou Existem até segmentos inteiros da ciência de dados que lidam com extração de informações do texto, como a análise de sentimentos. Coleções de texto em Python são chamadas de strings, e há funções especiais chamadas métodos de string usadas para manipular strings, como alterar uma string de maiúsculas para minúsculas, remover espaços em branco ou substituir partes da Nesta seção, você aprenderá como fazer algumas das manipulações de strings usando métodos de string Você trabalhará com a entrada do usuário. Você aprenderá como lidar com sequências de números e transformar números em sequências, como formatar cadeias de caracteres para impressão. E ao longo do caminho, você aprenderá sobre cadeias F, sequências várias linhas e como fazer indexação e fatiamento de strings fazer indexação O que é imutabilidade de strings e como descobrir métodos adicionais usando o próprio Idle Tudo bem, é hora de descobrir o que é uma corda. 18. O que é uma corda 2024: Olá, pessoal. Este é Andreas, e eu gostaria de lhe dar as boas-vindas a esta nova seção Nas palestras a seguir, você aprenderá sobre os diferentes tipos de dados que podem ser trabalhados em seus programas em Python Temos muito o que fazer, então inicie seu shell Python e vamos começar Uma string é uma série de caracteres, um texto, se você preferir. Qualquer coisa entre aspas é considerada uma string. Em Python, você pode usar aspas simples ou duplas em suas Por exemplo, se eu digitar Python com aspas duplas e Python com aspas simples, o resultado não será o É essencial entender o que fazemos quando usamos aspas e quando não. Se eu digitar vendas iguais a 1.000 entre aspas, vendas serão uma sequência de caracteres, não um número. Mas se eu digitar vendas iguais a 1.000 sem aspas , as vendas serão um número inteiro Mas como você pode usar uma citação dentro de uma string? Digite e pressione Enter. Essa é uma sintaxe inválida, como você vê, existem soluções para Uma maneira é começar com a string e aspas duplas como essa. Como a string começa com aspas duplas, Python sabe que aspas simples fazem parte da string e não marcam o final da string Mas se você precisar usar aspas simples e aspas duplas na string, precisará usar um caractere de escape ou sequências de escape Um caractere de escape consiste em uma barra invertida seguida pelo caractere que você deseja adicionar à string Então, o caractere de escape para aspas simples é esse. Vamos digitar a string acima usando agora o caractere de escape e evitando aspas duplas. Eu estou ótimo. Há outro uso dos caracteres de escape, que são os significados especiais, como novas linhas, e veremos isso em ação a seguir. Então, aqui, D está sendo definido com um texto. Esta é a linha um seguida por uma barra invertida N, que significa que estamos nos referindo a uma nova Agora vamos continuar digitando. Essa é a linha dois. E as citações de terminado no final. Então, aqui temos o caractere N de barra invertida, o que significa uma nova linha Se usarmos a impressão D, você verá que essa é a linha um e, em uma linha separada, essa é a linha dois. Agora, isso é algo que usamos muito, especialmente se trabalharmos com arquivos de texto, e muitas vezes você descobrirá que precisa inserir ou remover uma nova linha de caracteres dos textos. Também é possível fazer abas com barra invertida T. Então, aqui você pode ver variáveis definidas com alguns E mais uma vez, imprimindo isso. Essas são as guias que foram inseridas entre as palavras É essencial estar ciente dos diferentes caracteres de escape que você pode inserir no texto. Você pode ver uma seleção de caracteres de escape, como barra invertida, aspas duplas, nova linha com N, retorno de carro com R, tabulação com T e a capacidade de definir caracteres usando valores octais Tudo bem. Vamos falar sobre cordas brutas. Em uma string bruta, os caracteres da sequência de escape , como você viu antes, não são interpretados. Vamos ver como definir um personagem bruto. Vamos definir uma variável chamada A usando o novo caractere de linha. Para criar uma string bruta, uma string é prefixada com um R, conforme visto aqui Caso contrário, o contexto é exatamente o mesmo. A impressão mostra a string bruta, o que significa que o caractere da nova linha não é interpretado pela impressão à esquerda intacta Isso é útil em aplicativos em que os caracteres da sequência de escape não devem ser interpretados normalmente, como expressões regulares Às vezes, você precisa inserir uma string de várias linhas. Uma sequência de várias linhas começa e termina com três aspas simples ou três aspas duplas Quaisquer aspas, guias ou linhas de notícias entre as aspas triplas são consideradas parte da string Vamos digitar o seguinte. O resultado aparece na casca. Além disso, uma string de várias linhas é frequentemente usada para comentários. Ótimo. Espero que você tenha entendido o que são strings e como você pode criá-las e usá-las. Lembre-se de que as strings são um dos tipos de dados fundamentais em Python. Obrigado por assistir. 19. O que é uma corda (exercício) 2024: Bem-vindos de volta, pessoal, ao primeiro exercício desta seção. Nossas aulas de exercícios têm tudo a ver com treinamento. Você treinará no processo de escrever código resolvendo exercícios cuidadosamente selecionados. Você também treinará lendo código de outras pessoas e comunicando seu processo de pensamento Fazendo tudo isso, você praticará os conceitos que aprendeu na aula anterior e ajudará a mantê-los firmes. Nas próximas aulas de exercícios, apresentarei as tarefas. Dê a você a oportunidade de resolvê-los sozinho e, em seguida, mostre passo a passo como resolvi cada um deles. Siga três etapas para cada tarefa, aprenda sobre o exercício, codifique sua própria solução e, em seguida, compare sua solução e o processo que levou você até a minha. Quando eu orientar você em uma tarefa, explicarei o que faço e também por que faço dessa forma. Isso lhe dará a chance de comparar não apenas nossas soluções finais, mas também como chegamos lá. Idealmente, isso pode ajudá-lo a obter alguns insights sobre os processos de passar de uma descrição de tarefa para uma solução funcional em código. Ok, chega de falar. Aqui está seu primeiro exercício. O que é uma string? uma questão muito filosófica, mas vamos abordá-la com um pouco mais de praticidade Sua tarefa será imprimir quatro sequências individuais que atendam a determinadas condições A primeira é que deve haver aspas duplas dentro da string O segundo deve ter um apóstrofo dentro da corda O terceiro deve ter várias linhas com espaço em branco preservado, e o quarto deve ser codificado em várias linhas, mas depois é impresso somente em uma única linha Essas são maneiras diferentes de construir strings, e é apenas uma forma de se lembrar de como você pode criar strings que atendam a Vá em frente Faça isso agora e, depois de concluir sua solução, vá para a próxima lição, onde também resolverei vá para a próxima lição, onde também resolverei as quatro tarefas e, em seguida, você poderá comparar com a minha solução. 20. O que é uma solução de cordas 2024: Aqui estou eu na concha ociosa interativa. Vou seguir em frente e fazer anotações rápidas das diferentes tarefas que tenho que fazer aqui. Havia quatro tarefas. Sempre gosto de começar fazendo anotações sobre o que devo fazer, que me ajuda a me organizar e lembrar qual é realmente a tarefa. Então, a primeira foi imprimir uma string com aspas duplas. Então, eu quero aspas duplas na string. Essa é a primeira tarefa. Em seguida, a segunda era ter um apóstrofo na corda A terceira era ter uma sequência de várias linhas que também fosse impressa em várias linhas E a quarta era escrever uma string em várias linhas, mas impressa em uma única linha Então, fiz algumas anotações curtas para me lembrar das tarefas e vou começar. A primeira é imprimir aspas duplas na string, e eu posso fazer isso usando aspas simples para delimitar a E então eu posso usar aspas duplas dentro. Eu abro uma string colocando uma aspa simples. Então eu posso escrever algo aqui. Então, eu direi que há aspas duplas nessa string. E eu coloquei as palavras entre aspas duplas com as aspas duplas reais. E deve imprimir bem porque não estou misturando as aspas Estou usando aspas simples para delimitar minha string. E então as aspas duplas no interior. Eles não são considerados delimitadores de seqüências de caracteres, mas são apenas aspas duplas do caractere Então, agora eu pressiono Enter, e minha chamada de impressão é executada, e eu recebo como saída a string Ótimo. O segundo, um apóstrofo na corda Faça outra chamada de impressão e agora usarei aspas duplas para delimitar Então, estou abrindo com aspas duplas. Então eu posso escrever alguma coisa. Eu direi: Esta corda tem um apóstrofo, e eu uso um apóstrofo depois da palavra corda Então, essa corda tem um apóstrofo. Esta não é uma aula de inglês, e eu não seria a melhor pessoa para ensinar isso de qualquer maneira. Mas eu tenho uma aspa simples ou um apóstrofo E agora eu pressiono Enter, e isso será executado e funcionará bem. O terceiro exercício foi escrever uma sequência de várias linhas que também imprime em várias linhas Então, eu posso fazer isso usando aspas triplas. Assim, por exemplo, aspas duplas ou aspas simples triplas funcionam da E agora posso dizer que essa string foi escrita em várias linhas. Bem, ainda não. Deixe-me pressionar Enter. E então eu continuo com a string e digo, ela é exibida em várias linhas. E eu preciso fechar a corda. Então, vou fechá-lo novamente com aspas duplas triplas Um, dois, três e depois feche os parênteses da função de impressão E agora estou pronto para pressionar Enter, e isso é executado. E, como você pode ver, o novo caractere de linha. Então, o enter que eu pressionei aqui, esse novo caractere de linha também faz parte da string. Portanto, a saída o inclui e é por isso que ele é exibido em duas linhas. E, finalmente, a última tarefa, escrever uma string de várias linhas que seja impressa em uma única linha, e você pode fazer isso escapando do caractere da nova linha Agora, vou usar apenas uma aspa dupla e vou dizer que essa string de uma linha foi escrita E então vou usar o caractere de barra invertida, que É um caractere especial que escapa do caractere a seguir, que, neste caso, será uma nova linha porque depois de colocar o caractere de barra invertida, pressionarei Enter e continuarei digitando na Mas o Python considera que isso ainda faz parte da linha anterior Então continue escrevendo minhas frases, dizendo usando várias linhas E depois feche a corda. Com uma string como essa delimitada com apenas uma aspa. Espalhar uma string em várias linhas, como eu faço aqui, só funciona quando você usa o caractere de barra invertida Caso contrário, o Python geraria um erro de sintaxe e agora pressionaria sintaxe e agora E, como você pode ver, ele é exibido em apenas uma única linha porque eu escapo do novo caractere de linha que usei aqui. Tudo bem. Então, essa foi uma rápida recapitulação das diferentes maneiras misturar e combinar aspas ao escrever seus literais de string 21. Manipulando cordas com métodos de corda 2024: As cordas vêm com funções especiais. Eles são chamados de métodos de string que você pode usar para trabalhar e manipular strings Há vários métodos de string disponíveis, como você verá. Primeiro, você pode se concentrar em alguns dos mais usados. Nesta lição, você aprenderá como converter uma string em maiúsculas ou minúsculas, como remover espaços em branco de uma string e como determinar se uma string começa ou termina Ok, hora de aprender seu primeiro método. O primeiro vai trabalhar na conversão do caso da string Esse método é um ponto abaixo. Ele converterá a string em todas as letras minúsculas, pegando qualquer letra maiúscula e transformando-a em minúscula e transformando-a em minúscula Parece algo assim. Se você adicionar a sequência de caracteres de Albert Einstein e, em seguida, adicionar ponto abaixo como método, ela retornará todos os caracteres minúsculos O ponto diz ao Python o que se segue é o nome de um método e, nesse caso, o método inferior Você ouvirá isso frequentemente se referir a métodos de string usando um ponto no início de seus nomes, por exemplo, ponto abaixo ou, como você aprenderá aqui em um segundo, ponto superior. Isso torna um pouco mais fácil diferenciar funções que são métodos de string de funções integradas como imprimir ou digitar, que você aprendeu anteriormente Os métodos funcionarão sozinhos em uma string adicionando o ponto e abaixando. Não se esqueça de chamar o método com parênteses. Eles também funcionam se você os atribuiu a uma variável. Então, neste caso, vamos digitar name e colocar o.in e queremos retornar a versão minúscula do OK. Agora que você jogou com o ponto abaixo, o próximo que você aprenderá é o ponto superior. Portanto, dot upper converte a sequência de todas as letras maiúsculas Portanto, se você pegar o mesmo nome de variável e aplicar o método dot upper, verá que ele retorna todas as letras maiúsculas. Então, apenas mais uma comparação entre métodos e funções que você viu anteriormente. Os métodos de string começarão com um ponto no início de seus nomes, e é assim que você se referirá a eles com o ponto inicial. Então pontilhe para baixo ou para cima. Isso tornará muito mais fácil diferenciar funções que são métodos de string de funções incorporadas, como print ou n. Quando você as compara além dos diferentes resultados dessas funções, a distinção importante é como elas são usadas Essas funções integradas são chamadas apenas por si mesmas. Então, se você quiser encontrar o comprimento de uma string de nome, chame Ln e coloque o nome dentro dela. Ou se você quiser um nome para impressão, você pode simplesmente fazer a mesma coisa , por outro lado , usar maiúsculas e minúsculas, elas precisam ser usadas em conjunto com a string Eles não existem de forma independente. Espaço em branco é qualquer caractere impresso como um espaço em branco. Isso inclui coisas como espaços, guias e até mesmo feeds de linha, que são caracteres especiais que movem a saída para uma nova Às vezes, você precisa remover espaço em branco do início ou do final de uma string. Isso é especialmente útil ao trabalhar com cadeias de caracteres provenientes da entrada do usuário, algo que alguém digitou, o que às vezes pode incluir caracteres extras em que às vezes pode incluir branco por Há três métodos de string que você pode usar para remover esse espaço em branco de uma string. faixa Dot R remove os espaços à direita da corda faixa de pontos remove os espaços anteriores do lado esquerdo da string E a faixa de pontos remove os espaços em branco dos lados esquerdo e direito, para que qualquer coisa no início ou no final da sequência seja removida. Curiosamente, ele não remove espaços do meio. Vamos experimentar um pouco disso na janela interativa. Primeiro, precisamos criar algum espaço em branco. Então, vou criar um novo nome, colocar alguns espaços e uma aba, e vou colocar meu próprio nome novamente. Você pode usar seu próprio nome. Nesse caso, adicionarei alguns espaços e uma guia e, em seguida, adicionarei uma barra na qual há uma alimentação de linha Na verdade, vou adicionar dois desses feeds de linha com alguns espaços entre Portanto, há muitos espaços em branco diferentes lá. Na verdade, se você tentar imprimir com o nome, verá todo o espaço em branco, incluindo os feeds de linha adicionais, os dois Está bem? Então, o que acontece se você usar a faixa de pontos R? Ele removeu todos os caracteres de espaço em branco do lado direito, incluindo os incluindo os Novamente, o nome ainda é o mesmo. Então, se eu fizer um nome e uma faixa de pontos, isso eliminará o espaço em branco na frente E se usarmos a faixa de pontos, ela eliminará os espaços dos dois lados, todo o espaço em branco. Sejam guias, espaços ou feeds de linha. Quando você trabalha com texto, às vezes você precisa determinar se uma determinada string começa ou termina com um determinado caractere. Você pode usar dois métodos de string para resolver esse problema. O primeiro é o ponto começa com e o outro é o ponto termina com. Vamos experimentá-lo na janela interativa. Digamos que temos uma corda bioelétrica. Criaremos uma variável chamada potência e capitalizaremos a bioelétrica Se você usar o método que começa com e, nesse caso, precisa, verá que ele começa a solicitar o que você gostaria que fosse o prefixo E se eu colocar uma biografia em minúsculas? Isso vai funcionar? Isso retorna falso. Você pode ter descoberto o porquê porque começa com B. O fato de começar com o método faz , na verdade, distinção entre maiúsculas e minúsculas Para que isso seja verdade, você teria que digitar a mesma coisa, mas começar com um Bo maiúsculo, que retornaria verdadeiro. Da mesma forma, se você quiser experimentar outro que termine com, neste caso, digamos que você diga: termina com elétrico? Você se tornaria verdade. Isso também diferencia maiúsculas de minúsculas. Os valores verdadeiro e falso não são cadeias de caracteres. Há um tipo especial de dados chamado valor de booling. Você aprenderá mais sobre os valores de Boleing na próxima lição. Agora, as cordas são imutáveis. A maioria dos métodos de string altera uma string como superior e inferior, mas na verdade eles retornam cópias da string original com essas modificações. Portanto, se você não tomar cuidado, talvez não reconheça isso e isso pode introduzir bugs sutis em seu programa. Experimente este. Então coloque um nome desta vez Wells Virginia. OK. Então, novamente, se você digitar o nome e colocar o ponto do método em cima, você obterá todas em maiúsculas Mas você deve ter notado que eu também mostrei isso um pouco antes, como o original não é modificado. Agora, para fazer com que ela altere o nome da variável, você precisaria reatribuí-la Então, ficaria assim. O nome é igual ao nome superior. Agora, o nome foi alterado. Isso substituirá a string original que você atribuiu ao nome ao reatribuí-la Você deve ter notado que há muitos métodos associados a strings. Os métodos que eu estou mostrando nesta lição mal chegam à superfície. O Idle pode ajudá-lo a encontrar esses novos métodos de string. Deixe-me mostrar como você pode descobrir alguns deles. Vamos voltar ao nosso exemplo elétrico. Se você começar com um nome de variável e depois adicionar o ponto, uma pequena caixa aparecerá e começará a mostrar algumas das diferentes que estão disponíveis. Se você digitar uma carta, também receberá algumas delas. Isso reduzirá os resultados. Na verdade, se eu começar a soletrar em alto, você o verá destacado lá Você pode concluir isso pressionando tab e, em seguida, pode finalizar chamando o método. Essa é uma boa maneira de descobrir métodos adicionais disponíveis. OK. Agora que você praticou um pouco tentando encontrar alguns desses métodos adicionais, aqui está uma análise rápida Usando o IDL, você pode digitar o nome de uma variável atribuída a uma string e, em seguida, adicionar um ponto, geralmente falado como ponto, e esperar Digitar uma letra reduzirá alguns dos resultados e pressionar Tab preencherá automaticamente nome do método, caso você tenha começado a nomeá-lo E uma observação: isso funciona até mesmo com nomes de variáveis. Tente digitar as primeiras letras da letra elétrica e pressionar Tab Se você não definiu nenhum outro nome que compartilhe essas primeiras letras, Idle completa o nome elétrico para Portanto, a guia é um bom tipo de preenchimento automático que você pode usar no Idol OK. É hora de revisar o que você aprendeu. Hora de praticar. Exercício um. Escreva um programa que converta as seguintes strings Em seguida, imprima cada string minúscula em uma linha separada. Exercício dois. Tente repetir o primeiro exercício, mas converta cada sequência maiúsculas em vez de minúsculas Exercício três, escreva um programa que remova o espaço em branco das seguintes sequências. Em seguida, imprima as sequências com todo o espaço em branco removido Exercício quatro. Escreva um programa que imprima os resultados de inícios com B em cada uma das sequências a seguir. Exercício cinco. Usando as mesmas quatro sequências do exercício quatro, escreva um programa que use métodos de string para alterar cada string forma que o início com B retorne verdadeiro para todas elas. Então, novamente, escreva um programa que use outros métodos de string para alterar as strings de forma que começar com B retorne verdadeiro para todas elas. Você pode encontrar soluções para esses exercícios e o código nos arquivos de recursos desta lição. Tudo bem. A seguir, como fazer indexação e fatiamento de strings . Obrigado por assistir. 22. Mude o caso (exercício) 2024: Aqui está seu próximo exercício. É sobre uma mudança de caso. Neste exercício, sua tarefa é mudar as maiúsculas e minúsculas das cordas Apenas experimente e pratique um pouco com os diferentes métodos de string que você pode usar, trocando maiúsculas e minúsculas em strings. E a tarefa é escrever um programa que converta primeiro as seguintes strings em minúsculas E então você tem quatro cordas aqui. O primeiro são os animais. O segundo é texugo. O terceiro é o espaço de mel B e o quarto é o espaço de mel Badger E depois de converter todos eles em minúsculas, você deve converter cada um deles strings e E você deve imprimir cada uma das sequências em uma linha separada Portanto, o resultado da resolução dessa tarefa basicamente será um monte de linhas de chamadas de impressão nas quais você aplica alguns métodos de string nela. Experimente e depois vá para a próxima lição e compare sua solução com a minha. 23. Mude o caso (solução) 2024: A tarefa é criar quatro cadeias de caracteres, convertê-las todas em minúsculas e depois convertê-las em maiúsculas, cada uma em uma Vou começar definindo as strings e atribuindo-as às variáveis. A primeira corda eram animais na caixa do título. A segunda sequência era Badger. Amarre três abelhas. E quatro cordas, Honey Badger, o mais perigoso de todos. Tudo bem. E agora vou escrever chamadas para imprimir. Imprima, abra parênteses, coloque um ponto abaixo. Feche-o, Enter. E eu recebo animais como saída. Imprima a sequência dois pontos abaixo. Então, isso é meio que um exercício de digitação, como você pode ver, porque na verdade você está apenas refazendo a mesma coisa para cada uma das cordas E mais tarde no curso, você também aprenderá como fazer isso de forma um pouco mais automatizada para não precisar digitar muito. Mas, por enquanto, não custa nada fazer um pouco de exercício de digitação e apenas praticar o uso desses métodos de string e como aplicá-los a uma string , ou seja, primeiro escrevendo a string, depois um ponto e depois o método string E você usa esses parênteses aqui, nesse caso, eles estão vazios para chamar Portanto, é semelhante à função de impressão, como você pode ver aqui, onde você também precisa dos parênteses Ótimo. Nós convertemos todos eles em letras minúsculas Como você pode ver, a saída está em todas as letras minúsculas. E agora queremos fazer o mesmo, mas convertê-los em maiúsculas Então, vamos dizer printString um ponto acima. Entrar. E você pode ver que os animais são devolvidos em letras maiúsculas Vamos continuar o exercício de digitação. PrintString com dois pontos na parte superior. Prince, corda três, não cabe. E, finalmente, amarre quatro pontos na parte superior. Bom. E esse é o fim do exercício. 24. Remover espaços em branco (exercício) 2024: Neste exercício, sua tarefa é escrever um programa que remova espaço em branco das sequências a seguir Em seguida, imprima as sequências com o espaço em branco removido. A primeira corda é filé mignon. Acho que são alguns alimentos, mas parece que a pessoa que escreveu o menu teve alguns problemas em colocar muito espaço em branco em lugares diferentes. Então, estou inventando a história em torno da tarefa de que você é o programador do restaurante e deveria limpar o menu on-line, algo assim Veja, a primeira bebida tem algum espaço em branco à esquerda. O segundo tem algum espaço em branco à direita e o terceiro tem espaço em branco à esquerda e à direita Então, é um hambúrguer de queijo com um pouco de pão branco. Porém, uma coisa que é útil para você antes de iniciar esta tarefa suponha que eu tenha digitado cinco espaços no front-end de cada uma dessas palavras, pois isso facilitará para mim do que digitar esses espaços em branco, mesmo que não importe quantos Vamos remover alguns espaços em branco. 25. Remover espaço em branco (solução) 2024: Portanto, a tarefa é remover o espaço em branco e limpar o menu. Vamos digitar essas três cordas. Agora, eu tenho acesso a todas as três seqüências um, seqüência dois e seqüência três. E você pode ver que eles têm esse espaço em branco do qual você deve se livrar. Agora, o método de string para fazer isso é a faixa de pontos. Então, você pode dizer, por exemplo, uma sequência de três pontos, e isso removerá o espaço em branco tanto no início quanto no final. que significa que você pode usar strip para cada uma dessas cordas e ela fará o que você deve fazer Mas o Python tem mais dois métodos específicos aqui, nos quais você pode simplesmente remover o espaço do lado direito ou esquerdo, que aplicarei aos que estão aqui Seqüência dois, eu posso usar a faixa de pontos R. Ele apenas remove do lado direito, mas não do esquerdo. Para a corda um, posso dizer faixa de pontos. O que removerá espaço em branco do lado esquerdo, mas não fará nada do lado direito. Você pode usar strip para todos eles, e isso funcionará, ou você pode usar as faixas L e R mais específicas para a string um ou string dois, respectivamente. 26. Indexação de cadeias 2024: Muitas vezes, em linguagens de programação, itens individuais em um conjunto ordenado de dados podem ser acessados diretamente usando um índice numérico ou valor chave Esse processo está se referindo à indexação. strings são sequências ordenadas de dados de caracteres e os caracteres individuais da string podem ser acessados diretamente usando um índice numérico A indexação de strings em Python é baseada em zero. Portanto, o primeiro caractere na string teria um índice zero, e o próximo seria um e assim por diante. O índice do último caractere será o comprimento da string menos um Vamos dar uma olhada em um exemplo. Então, para a maçã, o primeiro índice, índice zero, terá uma letra A, e a última letra, que é índice quatro, é E. Vamos tentar isso interativamente Aqui está uma corda A que seria maçã. Para acessar o primeiro item da minha string, eu uso colchetes. Nesse caso, com o índice zero, ele extrairá a primeira letra da minha string e assim por diante. Portanto, o índice um será o segundo caractere, P, e o último caractere E será o índice quatro. Outra maneira de fazer isso seria usar o comprimento da função len embutida. Portanto, o comprimento da string A menos um também obterá o último caractere Se eu for para um índice que está além do comprimento da string, obterei um erro de índice, índice de string fora do intervalo. indexação de strings também pode ser específica com números negativos A indexação negativa também está disponível. Nesse caso, você retrocede. Menos um virá para trás, então E será menos um e menos cinco será A, sua primeira letra Deixe-me experimentar isso. Portanto, A, menos um entre colchetes fornecerá a última letra e assim por diante Novamente, você pode usar a função n dessa forma. Essa será sua primeira carta. Com o Index, você pode acessar caracteres individuais e também obter faixas deles. É chamado de corte de cordas e vem em seguida. Obrigado por assistir. 27. Corte de cordas 2024: O Python também permite uma forma de sintaxe de indexação que extrai É conhecido como corte de cordas. A sintaxe que você usa é muito semelhante à indexação Em vez de colocar apenas um valor entre colchetes, você coloca dois com dois pontos entre os Portanto, neste exemplo, D é uma string, e M e N são dois valores que retornam uma parte de D, começando com a posição M e até a posição N. Vamos definir a string D para abacate Se você selecionar o índice um a dois, mas não incluir quatro, o que obterá? VOC. Novamente, zero é A, um é V, dois é O, três é C e quatro é A, também, mas não incluindo quatro. Então, o que acontece se você omitir o primeiro N ou o último índice? Se você omitir o primeiro índice, neste caso, A, dois pontos e depois N, ele começará a fatiar no início da string e subirá até o valor do índice não calculado N. Omitir o último índice não estenderá essa fatia do primeiro índice M até a M Omitindo os dois índices, ele retornará toda a string original Não é uma cópia. É uma referência à string original. Vamos ver isso na prática. Digite D, dois pontos, e ele retornará AV Até cinco, retornaremos A VOCA. Até o fim, você pode fazer isso digitando. Outra maneira de fazer isso seria colocar o valor do seu índice inicial e, em seguida, usar a função de comprimento como seu índice final. Se você tentar as strings sem valores, elas começarão do início até o fim É uma referência à string original. A indexação negativa também funciona. Você também pode fazer uma combinação de índices positivos e negativos Vou começar com um índice menos cinco e subir para o índice menos um. O que você ganha? Você recebe OCAD. Ao fatiar, você pode especificar uma string em uma string de fatia É adicionar mais dois pontos e um terceiro índice designa qual seria o passo Também é chamado de etapa. Então, nesse caso, se nossa fatia viesse do início, seguida pela etapa dois, ela começaria com o primeiro item, que é zero e a letra A, e depois pularia duas etapas para pegar a letra O e, em seguida, pularia para pegar o índice quatro e depois ir E se digitarmos cólon e cólon com a etapa dois? Ele pegará essas letras AO AO. Você também pode usar um passo negativo. É isso por hoje. Espero que você entenda o que é cortar cordas. Obrigado por assistir. 28. EXERCÍCIO: corte de cordas: Este exercício trata de fatiar uma string, e sua tarefa é imprimir a string usando a notação de fatia para especificar o intervalo correto de caracteres na caixa de Então você começa com a caixa de cordas e depois corta essa corda para retirar apenas a parte que diz Rata ta, vamos. 29. SOLUÇÃO: corte de cordas: Tudo bem, eu abri meu Python ocioso. Minha tarefa é cortar a caixa para pegar um rato. Então, vou começar atribuindo a caixa de string a uma variável Então, nesse caso, vou chamá-la de palavra. Ok, aqui temos a caixa, e então vou usar a notação de fatias para tirar a parte do rato dela E para usar a notação de fatia, você usa colchetes Dentro dos colchetes, você deve inserir os índices que deseja usar A indexação de strings começa com zero. Então C está no índice zero, e então eu tenho R no índice um. Então eu posso começar com um. E então, neste caso, quero obter tudo o que começa com um e vai até a letra T, que está no índice três. Isso também é chamado de índice de parada. Então, eu posso fazer isso colocando dois pontos lá. Eu quero colocar um grande aviso aqui. Você precisa especificar um mais o último caractere que deseja obter. Então eu quero ir para quatro, que é o índice de E, e isso significa que vou colocar tudo até E. Então, a palavra um e dois pontos quatro deve me dar a sequência real que eu estou procurando, que é Rato Então, digitando a palavra um e dois pontos quatro, eu deveria pegar apenas a string E vamos confirmar pressionando Enter. Aqui está. Eu cortei um rato da caixa. Aí está. No entanto, se você tem uma sequência de caracteres mais longa e quer que tudo chegue, talvez até o caractere final , talvez até o caractere final, contar assim pode ser bem difícil. Então, em vez disso, você pode retroceder. E você também pode contar índices começando com menos. Então, o primeiro vai ser menos um, e então T vai ser menos dois, etc. Então, em vez disso, posso especificar palavras começando de um e depois indo até menos um, o que fará o mesmo que dizer de um a quatro Então essa é outra maneira de pegar um rato. E agora eu encontrei duas maneiras de sobreviver sem o personagem final E. 30. Concatenação de cordas: Alguns operadores podem ser usados em operandos numéricos e também podem ser aplicados a cadeias Nesse caso, o operador que se parece com um sinal de adição é considerado o operador de concatenação e o operador de sinal de multiplicação, que em strings cria várias Então, para começar, o operador plus concatena cadeias de caracteres. Ele retorna uma string que consiste nos operandos unidos Primeiro, vou definir algumas sequências de caracteres. Um igual à maçã. O próximo objetivo de string que criaremos é B igual a banana. E, finalmente, C igual a cereja. Então, o que acontece se eu usar o sinal de mais, o operador de concatenação, A mais B Vamos combinar as três coisas. Ele concatenará os três. Também podemos concatenar strings em funções de impressão M. Então esse é o operador de concatenação. Vejamos o operador de multiplicação, que é um asterisco, que cria várias cópias de uma string para retornar uma string que consiste em cópias concatenadas de uma Deixe-me mostrar como é. Vou criar um objeto, D, que é um número inteiro igual a cinco O que acontece se você multiplicar A, multiplicar D? Assim, o operador replica o objeto string cinco vezes e os concatena Portanto, o multiplicador precisa ser um número inteiro. Você não pode multiplicar por um número flutuante, por exemplo. E se for um número negativo? Isso retornará uma string vazia. 31. EXERCÍCIO: concatenação de cordas: Aqui está seu segundo exercício sobre a lição de concatenação. Crie duas cadeias de caracteres, concatene-as e imprima a e imprima E depois há a pergunta. Você também pode adicionar um espaço entre eles usando apenas a concatenação Portanto, escolha duas palavras que você sempre quis concatenar Vou escolher as palavras morcego e homem. Acesse seu Editor Python e faça isso acontecer. Depois disso, passe para a próxima lição e me veja fazer isso. 32. SOLUÇÃO: concatenação de cordas: A tarefa era criar duas strings e atribuí-las a variáveis Concatene-os sem espaço e concatene-os com espaço e concatene-os Vamos começar criando duas variáveis que apontam para cadeias de caracteres. Vou começar com a string underscore left, que vou apontar para uma string chamada assim E então eu vou fazer outro sublinhado de uma string, certo. Isso eu vou apontar para o homem. E agora eu posso usar uma chamada para imprimir para unir esses dois. Então, vou abrir os parênteses depois de escrever print e depois vou digitar String underscore left plus string underscore right Feche os parênteses. Então, como você pode ver aqui, estou usando o operador plus, que se você o usa com strings, ele as concatena Então, literalmente, unirá o morcego e o homem sem nenhum espaço entre eles. Eu pressiono Enter para confirmar, e obtemos a string Batman grudada Agora, a última tarefa era concatená-los com um espaço. Então, vou copiar minha chamada para imprimir e pular para o meio ao lado da operadora plus. E aqui vou adicionar mais uma string, um caractere de espaço em branco Então, estou abrindo as aspas, colocando um caractere de espaço em branco e fechando as aspas novamente Essa é uma string perfeitamente válida. É apenas uma string que consiste apenas em um caractere, que é um espaço nesse caso. Novamente, estou usando operadores positivos à esquerda e à direita para unir essas três sequências. Então, agora no iBressenter, vou pegar uma corda do Batman em uma, e esse 33. Formatação de cadeias: Agora, mostrarei como formatar caracteres usando o operador de porcentagem Isso também é chamado de formatação percentual de string ou estilo C. A sintaxe para usar o operador de porcentagem é a seguinte sintaxe tem três partes: a string entre aspas, o operador de porcentagem e os valores ou variáveis a serem inseridos em uma string separada por vírgulas O primeiro carimbo é escrever a string a ser formatada Depois disso, escrevemos o símbolo percentual. E, finalmente, escrevemos as variáveis ou valores entre colchetes. O formato percentual é usado para representar uma string, Andreas neste caso Enquanto o formato percentual D representa um número inteiro, 75 kg nesse caso Python Prince, meu nome é Andreas e meu peso é Você pode baixar um PDF que eu criei, que é uma lista de conjuntos completos de símbolos que podem ser usados junto com a porcentagem. Você pode encontrá-lo em seus arquivos de recursos. Em vez de usar o operador percentual para formatar strings, Python também nos fornece um método de formatação para formatar A sintaxe é o formato de ponto de string, valores ou variáveis a serem inseridos em uma string separada por vírgulas Quando usamos o método de formatação, não usamos a porcentagem S ou a porcentagem D como espaços reservados Em vez disso, usamos colchetes como esse. Primeiro, escrevemos a posição dos parâmetros a serem usados dentro do colchete, seguido por dois pontos, e depois dos dois pontos, escrevemos o formato sem espaços dentro dos colchetes escrevemos o formato sem espaços dentro Quando escrevemos zero e dois pontos S, pedimos ao intérprete que substitua zero e dois pontos S por um parâmetro na posição zero que seja uma string porque o formatador é S. Quando escrevemos dois pontos D, nos referimos ao parâmetro na posição um, que é o posição um, O símbolo do formato é D. Observe que as posições sempre começam do zero. O resultado é o mesmo acima. Se você não quiser formatar a string, basta escrever. R O intérprete substituirá os colchetes com base na ordem dos parâmetros fornecidos Abordamos os conceitos básicos dos métodos de formatação de strings, que aprenderemos na próxima lição mais detalhes. Obrigado por assistir. 34. F-Strings: uma sintaxe de formatação de strings melhorada: Tudo bem, vamos falar sobre cordas F. Então, por que eu uso três strings F do Python? Eles são mais legíveis. Eles são mais concisos, menos propensos a erros e mais rápidos Mas vou começar com string da velha escola, a formatação percentual, o formato de pontos de string Deixe-me começar com alguns exemplos. Abra o Python Shell. Vamos configurar uma variável e dar um nome a ela. Por exemplo, Alan. Use essa variável em uma string. Usando a porcentagem a em sua string e no final dela. A porcentagem e, em seguida, o nome da variável, Enter. Suponha que tenhamos outra variável. Agora temos duas variáveis. Gostaríamos de adicionar à nossa string. É o mesmo com o nome. E então colocamos a idade, a porcentagem e S. Então, neste caso, temos duas variáveis que vamos inserir. Para fazer isso, digite porcentagem e, em seguida, o nome e a idade entre parênteses E se você tiver muito mais variáveis? Vamos configurar algumas variáveis. Colocar tudo isso em uma única string, começa a ficar um pouco confuso. Teremos que contar o número de por cento S para ter certeza de que os temos na ordem correta N quais você está substituindo. No final, precisamos colocar todas as variáveis entre parênteses Tudo bem Parece certo. Pressione Enter. Felizmente, existem maneiras melhores de fazer isso. Vamos falar sobre o formato de string dot. Podemos colocar espaços reservados em nossa string entre colchetes. E no final da string, diríamos formato de ponto, e então poderíamos colocar argumentos em nome e idade. Também podemos referenciar as variáveis dentro de seu índice. Digamos que este seja o índice um e este seja o índice zero. E invertemos a ordem, o nome e a idade. Então, obtemos o mesmo resultado. Agora vamos falar sobre uma maneira nova e aprimorada de formatar strings em Python, strings F também são conhecidas como literais de string formatadas e na versão 3.6 do Python Eles têm uma sintaxe simples. Eles são avaliados em tempo de execução e formatados usando o protocolo de formatação Deixe-me mostrar alguns exemplos. Vamos configurar três variáveis. Nome, idade e profissão para construir uma corda dentro de nossos colchetes Colocamos nossas expressões. E se quiser, você pode usar F no início da sua string. Agradável e simples. Agora que mostrei a sintaxe simples das strings F, vamos falar sobre expressões arbitrárias Você pode fazer uma massa simples dentro de colchetes encaracolados. Você também pode fazer algo assim. Também posso chamar funções e métodos, mas esses são conceitos que farei isso mais tarde. Agora também podemos criar sequências de várias linhas. Esta é uma mensagem de várias linhas aqui. Qual é a aparência dessa mensagem? Digite a mensagem. Lembre-se de que você precisa colocar o F em cada uma delas para inserir cada uma dessas expressões na string. E quanto à velocidade? sequências F são mais rápidas do que formatação percentual e o formato de pontos STR. Então, vou fazer uma revisão de tudo o que você abordou e aprendeu nesta lição. Começamos com a formatação de string mais antiga, a formatação percentual de string, também chamada de Estilo C. Depois disso, começamos a falar sobre o método de formato string dot, que começou na versão 2.6 do Python E, finalmente, abordamos o mais novo método de formatação de strings, a string F, que começou na versão 3.6 do Python É isso por hoje. Então, obrigado novamente por se juntar a mim nesta lição. E espero que agora você possa ver o quanto as cordas F podem ser mais concisas, legíveis, convenientes e rápidas. 35. EXERCÍCIO: agilize suas impressões: Neste exercício, você poderá simplificar suas impressões. Como você viu antes, apenas concatená-los pode ficar um Então, aqui você tem um exercício em que pode tentar três tipos diferentes de exibir a mesma string usando maneiras diferentes de montar a concatenação de strings, o formato de pontos da string e também usando A tarefa é criar um objeto flutuante chamado weight com o valor de 0,2 e, em seguida, criar um objeto de string chamado animal com o valor Anim e, em seguida, usar esses objetos para imprimir a sequência de caracteres a seguir Então, primeiro, usando apenas a concatenação, a string deve dizer que 0,2 kg é o peso Em seguida, você deve exibir a mesma string usando o método de formato de pontos e espaços vazios entre colchetes . E, finalmente, eu também faço a mesma coisa usando uma string F. Vá em frente e resolva esse desafio por si mesmo, e nos vemos na próxima lição. 36. SOLUÇÃO: agilize suas impressões: Aqui estou novamente no shell interativo, e a tarefa era começar definindo duas variáveis. Um era peso igual a 0,2 ponto flutuante. E então o animal era a corda que deveria apontar para a corda Nim. Ok, vamos começar com a concatenação. Vou imprimi-lo, embora aqui no console também obtivéssemos um resultado se ele não o imprimisse. Mas vamos continuar com isso. E aqui, novamente, terei que converter o primeiro uma string porque atualmente é um float Se eu tentar adicionar um float e uma string usando o operador plus, isso me causaria um erro como você viu anteriormente Então, vou dizer peso da string, convertê-la em uma string explicitamente e, em seguida, mais Abra aspas duplas e digite. quilograma espacial é o peso do espaço novamente, aspas duplas novamente. E então vou concatenar isso novamente com animal. Então, diz que 0,2 kg é o peso de um NM. E então eu acho que deveria haver um ponto no final para torná-la uma frase adequada. Se eu pressionar Enter aqui, você pode ver que diz que 0,2 kg é o peso do NM Então essa é uma solução que funciona usando apenas strnkencnation e Agora vamos tentar usar o método de formato de ponto na string. Então, novamente, eu abro a função de impressão. E agora eu posso usar os colchetes encaracolados como espaço reservado. Este é um lugar onde eu quero inserir algo. Em primeiro lugar, quero inserir o peso. Então, novamente, vem a parte central da corda. Quilograma é o peso do, e agora vou usar outro par de encaracolados onde vou inserir Isso deveria dizer Nim, e então eu posso colocar um ponto final lá E agora esse é o meu modelo de string, mais ou menos, onde eu quero inserir essas duas variáveis que eu tenho que encontrar mais cedo. E eu posso fazer isso usando o formato de pontos. Então, nessa corda, quilograma dos colchetes encaracolados é o peso dos colchetes encaracolados Estou ligando para o formato de pontos. E agora vou passar as duas variáveis que quero inserir nos dois espaços reservados aqui No primeiro, quero inserir peso e depois animal. E ele pegará o primeiro argumento e o inserirá no primeiro espaço reservado e seguida, o segundo argumento e inserirá no segundo espaço reservado Portanto, se eu fechar os parênteses da chamada de impressão e pressionar Enter, você verá que obtenho a mesma saída Então é assim que você pode fazer isso usando o método de formato de pontos. Você pode ver que isso já o torna mais legível do que apenas usar a concatenação de strings pura e poupa o esforço de ter que fazer uma conversão explícita de tipos em objetos E agora, na minha opinião, ainda mais legível será a string F. Então, novamente, estou abrindo uma chamada para imprimir. E aqui, vou começar digitando F e depois abrindo a string fazendo apenas duas aspas. E vou usar novamente o espaço reservado para colchetes encaracolados. Mas agora, em vez de mantê-lo vazio, vou colocar o nome da variável diretamente. Então eu vou dizer peso, e então a parte central do quilograma da corda é o peso do Abra outro conjunto de colchetes encaracolados e insira o animal diretamente nos colchetes e, em seguida, um ponto final no final E isso é tudo que você precisa fazer para a string F. Se eu pressionar Enter agora, você pode ver que, novamente, você obtém a mesma saída das duas outras variantes. Então, essas são três maneiras diferentes de montar essa string final que fornece as informações que contêm uma string, a string NEM, bem como a representação em string de um número de ponto flutuante Tudo bem, é assim que você pode fazer isso. Deixe-me saber qual é o seu favorito. 37. Interagir com entrada do usuário(): Para ser útil, o programa geralmente precisa se comunicar com o mundo externo obtendo dados de entrada do usuário e exibindo os dados do resultado de volta para o usuário. Este tutorial apresentará a entrada e a saída do Python entrada pode vir diretamente do usuário por meio do teclado ou de alguma fonte externa, como um arquivo ou banco de dados. saída pode ser exibida diretamente no console ou no IDE na tela por meio de uma interface gráfica do usuário ou novamente em uma fonte externa. Os programas geralmente precisam obter dados do usuário, geralmente por meio de entrada do teclado. A maneira mais simples de fazer isso em Python é com entrada A entrada é uma função excelente em Python e é frequentemente usada em Ele pausa o programa e espera que o usuário insira algum texto Depois que o Python recebe a entrada do usuário, ele a armazena em uma variável Vamos dar alguns exemplos. Tipo. Depois que o usuário pressiona a tecla enter, todos os tipos de caracteres são lidos e retornados como uma string Observe que a nova linha gerada quando o usuário pressiona a tecla enter não está incluída como parte da string de retorno Se você incluir o argumento opcional do prompt, entrada o exibirá como um aviso para o usuário antes de pausar a entrada vermelha A função de entrada usa um argumento. As instruções que você deseja exibir para o usuário. Em seguida, o usuário vê a solicitação, qual é o seu nome, espera enquanto insere a resposta e continua depois que pressiona A resposta é armazenada na mensagem variável. Em seguida, a mensagem exibe a entrada do usuário. É melhor adicionar um espaço no final das solicitações após o ponto de interrogação em nosso exemplo para separar a solicitação da resposta do usuário Além disso, uso aspas duplas porque já as citei dentro do texto Agora vamos tentar algo diferente. Queremos escrever um prompt com mais de uma linha. O primeiro slide armazena a primeira parte da mensagem com o prompt variável. Na segunda linha, o operador mais a string armazenada em um prompt e adiciona a nova string ao final. A barra invertida N muda a linha. O prompt é então armazenado em um nome de variável e passa essa variável para a função de entrada. Por fim, imprimimos o texto no alto, o nome da variável e a frase, meu nome é robô. Se você observar cuidadosamente a linha de código, o erro de sintaxe é devido às aspas Abri com aspas duplas e fechei com aspas simples. Deixe-me consertar isso. Ótimo. A entrada sempre retorna uma string. Se você quiser um tipo numérico, precisará converter a string para o tipo apropriado com as funções incorporadas NT, float ou complex Essa linha converte N em um número inteiro para que a instrução de impressão seja Acho que você está pronto para explorar as informações do usuário um pouco mais a fundo por conta própria. Aqui estão alguns exercícios de revisão para você. Tente escrever um programa que receba a entrada do usuário e depois a exiba de volta, mais ou menos como o que você já fez, mas mude um pouco. Tente escrever um programa que receba a entrada do usuário e exiba essa entrada em minúsculas Tente escrever um programa que receba informações do usuário e exiba o número de caracteres, contando os caracteres da entrada digitada Como sempre, você pode encontrar as soluções para esses exercícios e o código nos arquivos de recursos desta lição. Tudo bem A seguir, você começará a trabalhar com sequências e números 38. EXERCÍCIO: interaja com entradas do usuário: Neste exercício, você está se aventurando no mundo da interação com seus usuários E nesse caso, você deve escrever um programa que receba a entrada do usuário exiba essa entrada de volta, mas primeiro a converta em minúsculas Portanto, se o usuário escrever olá em maiúsculas ou em maiúsculas, deve sempre recuperá-lo em minúsculas, independentemente do que Depois, há uma pequena tarefa adicional na qual você também pode exibir o número de caracteres que o usuário inseriu. OK. Pense sobre isso. Reserve um momento, escreva em seu editor ou no REPL e, em seguida, passe para a próxima lição e compare-a com minha solução 39. SOLUÇÃO: interaja com a entrada do usuário: Para resolver esse exercício, você precisará usar a função de entrada em Python para coletar a entrada do usuário e seguida, alguns métodos de string para convertê-la E também há uma função chamada n que pode ajudá-lo a obter o comprimento das strings. Eu poderia fazer isso aqui em Idle agora, e provavelmente vou experimentar um pouco Mas também abri um arquivo em que vou escrever o código para poder executá-lo várias vezes mais facilidade, sem precisar digitá-lo todas as vezes. Isso me dá a chance de também testar e ver se meu script funciona, não apenas para uma entrada, mas para as diferentes entradas repetidas Então, vou escrever o código no script, mas você também pode escrevê-lo no REPL, se quiser Essas são as três tarefas que meu script deve realizar. Vou começar com o número um, onde usarei a entrada com um pequeno aviso aqui. O prompt dirá: digite alguma coisa. E estou adicionando esse espaço aqui para formatá-lo um pouco melhor. Então eu preciso coletar o resultado disso. Então, se eu apenas executar uma entrada assim, vamos experimentar aqui no REPL. Receberei o aviso que diz digitar alguma coisa. E eu posso dizer olá, e ele será devolvido. Mas no meu roteiro, atualmente não o estou coletando em nenhum lugar ou também aqui no shell do Idol. Eu não o estava coletando em lugar nenhum, então preciso atribuí-lo a uma variável para que eu possa fazer algo com ele, como colocá-lo em letras minúsculas, exibi-lo e obter seu comprimento, etc Então, de volta ao meu editor na primeira linha, vou dizer que entradas de sublinhado do usuário são iguais ao retorno da entrada de chamada e tudo o que o usuário digita lá E então eu quero convertê-lo em minúsculas e exibi-lo. Então, vamos começar com isso. Usarei a função de impressão digitando print, abrindo os parênteses e colocando o ponto de entrada sublinhado do usuário abaixo Portanto, esse é apenas o método de sequência de pontos inferiores que você já usou algumas vezes e o exibe volta ao usuário usando a função de impressão. Vou testar esse script executando-o em modo inativo. Você pode pressionar F cinco para executá-lo, salvá-lo e executá-lo. Então, faremos isso. Podemos ver aqui, recebo a solicitação para digitar algo. Vou tentar novamente dizer olá em letras maiúsculas, você pode ver que meu script funciona. Eu recebo a mesma string, mas em todas as letras minúsculas, outra vantagem de ter um script aqui é que eu posso simplesmente executá-lo novamente sem precisar digitar Eu recebo outro aviso e posso experimentar o Mixed Case. Olá. E, novamente, eu só o recupero em minúsculas Então isso está funcionando. Agora vou resolver a tarefa na linha três, imprimir também o comprimento da entrada. Para isso, posso simplesmente usar a função len. A função len funciona recebendo uma coleção, por exemplo, uma string e, em seguida, retorna apenas o número de itens dessa coleção. Então, se eu colocar uma string aqui e disser, olá, eu recebo cinco, que é o número de caracteres. Um, dois, três, quatro, cinco. Então é exatamente isso que eu quero. E de volta ao meu roteiro, vou dizer impresso. Abra os parênteses, e então eu direi Len porque é isso que eu quero imprimir N como argumento, vou passar a entrada do usuário. Observe que a entrada do usuário que estou passando aqui é, na verdade, a original. Portanto, não é a letra minúscula, mas não importa porque o ponto mais baixo não mudará o número de caracteres Na verdade, só vai colocá-lo em minúsculas. Portanto, tanto a versão em minúsculas quanto qualquer versão maiúsculas de entrada do usuário terão a mesma quantidade de caracteres E agora vou testar o script novamente, executando-o. Salve e execute. Digite alguma coisa. Eu já sei que hello tem cinco, então vamos usar isso e o tipo de hello em maiúsculas e minúsculas. Pressione Enter. E como saída, obtenho a versão minúscula dessa string e o número de caracteres nessa Ótimo. Isso resolve todas as três tarefas aqui. 40. Trabalhando com cadeias e números: Agora que você trabalhou um pouco com a entrada do usuário, vamos falar sobre como trabalhar com cadeias de caracteres e números Quando você recebe a entrada do usuário usando a função de entrada incorporada, o resultado é sempre uma string. Há muitas outras situações em que entrada é fornecida a um programa como uma string. Às vezes, essas sequências contêm números e precisam ser inseridas nos cálculos Nesta lição, você aprenderá a lidar com sequências de números E você também verá como as operações aritméticas funcionam em cadeias de caracteres e como elas geralmente levam Em seguida, você aprenderá a converter entre cadeias de caracteres e tipos de números Vamos começar na janela interativa. Experimente isso. Vou fazer com que você crie uma variável chamada Num. Em seguida, atribuirei a sequência com o número dois nela. Então, isso é Num com uma string literal com dois nela. E se você usar a operação plus e disser num plus num? O que isso faz? Você já deve ter pensado nisso: isso vai concatená-los. Não é igual a quatro, mas dois e dois, que é 22. Bem, a sequência 22, não o número. Se você pegou NUM e usa o asterisco, que é o operador de multiplicação, e diz: Ok, multiplique Bem, isso deve ser igual a dez, certo? Bem, nesse caso, ele criará uma string com o número dois sendo repetido cinco vezes. Então você obtém uma sequência de cinco pares, concatenando-os concatenando-os Usando as cadeias de caracteres com operadores aritméticos, agora você pode dizer que ela se comporta de maneira um pouco diferente O operador positivo pode unir duas cordas como você já praticou antes, e o asterisco, ou o operador de multiplicação por estrelas, cria várias cópias de uma corda. E não importa se o número está no lado direito ou esquerdo da expressão. Digamos que você tenha sete vezes numb, ele ainda vê NUM como uma string, e sete será apenas o número de vezes que o número que está dentro de Num, a string, está concatenado Você realmente faz isso com outras coisas, certo? Você poderia dizer olá cinco vezes. Uma coisa que você pode fazer é, digamos que você disse a sequência de 12 multiplicada pela sequência de três Em seguida, forneceremos um erro de tipo. Você não pode multiplicar esses dois porque diz que você não pode multiplicar uma sequência do tipo string Então, a sequência da qual ele está falando é a string um, dois, que é uma sequência de dois caracteres, e depois tentar multiplicá-la por três, que é uma string não inteira Então isso não funciona. Está gerando um erro de tipo. E da mesma forma, e se você pegasse a sequência de três e tentasse adicioná-la ao número três sozinha? Fornece outro tipo de erro de tipo. Diz que você só pode concatenar uma string, não um int em uma Se um objeto em cada lado do sinal positivo for uma string, o Python tentará realizar a concatenação de strings Ele só funcionará em adição se os dois objetos forem números. Você teria que primeiro converter essa string três em um número antes de adicioná-la a três. Vamos ver como fazer isso. Então, o que você faz com todas essas sequências que você preferiria que fossem números Você vai usar algumas funções integradas para isso. A função INT converte objetos em números inteiros ou também é conhecida como números inteiros Às vezes, você vai querer que objetos sejam transformados em números que realmente tenham pontos decimais Nesse caso, você vai querer usar a função flutuante incorporada Vamos experimentá-los. Para testar isso, volte para Idle e você criará um novo arquivo Você pode usar o menu suspenso de Arquivo e Novo ou pode usar o comando da tecla Command plus N ou Control plus N no Windows para abrir uma janela de edição. Aqui na janela de edição, criamos um objeto Num. E ele aceitará a entrada de um usuário. E esse é o aviso. Você está dizendo que insira um número para ser duplicado. Feche isso. Então, a função de entrada embutida solicitará isso e, em seguida, qualquer valor digitado será atribuído à variável NUM Então, para criar NUM duplicado, você dirá que NUM é multiplicado por dois Em seguida, a saída de impressão. Ótimo. Vá em frente e guarde isso. Vou chamá-lo de pi de ponto duplo ou duplo. E, novamente, basta salvá-lo na minha área de trabalho. Nesse caso, se você pressionar F cinco para passar por aqui, ele está solicitando que um número seja dobrado E eu vou dizer, Oh, seis, por favor. Oh, você vê meu erro? Eu criei uma variável com o nome errado aqui. Não usei o nome correto novamente, então preciso alterá-lo aqui ou ali. Então, vou alterá-lo aqui ou alterá-lo ali e salvar. Então, um pequeno problema de erro de nome. Tudo bem Agora que eu o salvei, podemos executá-lo novamente. Ok. Desta vez, agora eu posso digitar seis. Em vez de obter seis vezes dois de 12, recebo 66. Então, seis e seis porque está fazendo isso com duas cordas. Então, temos que descobrir como mudar isso. Abra uma nova janela de shell aqui para limpar um pouco as coisas. Você pode continuar na sua. Eu só quero não ter tanta digitação na parte inferior. Então, como você pode trabalhar com isso? Bem, estávamos lidando com o número seis mais cedo. O que você pode fazer, novamente, em vez de apenas trabalhar com o número seis sozinho como uma string, é converter uma string como seis em um inteiro E você pode ver que o INT converterá isso em um valor numérico real de seis aqui. Ele não tem aspas ao redor como uma string literal INT significa inteiro e converte objetos em números inteiros, enquanto float vai convertê-lo um número com um Então, se eu fosse usar float para seis, você veria 6.0. Ok, então o que precisamos fazer? Bem, o que podemos fazer é convertê-lo aqui e dizer INT para o número. Essa é uma solução. Vamos experimentá-lo. Então eu acabei de salvá-lo novamente. Se eu pressionar F cinco para executá-lo, Oh, desta vez, digamos 12. Ótimo. Lá, 12 multiplicado por dois é 24. Mas e se eu quisesse digitar, sei lá, 2.5. Bem, então precisaríamos que estivesse flutuando. E não seria ruim se fossem 12 pontos, oh. Então, talvez seja mais seguro dependendo do que queremos digitar. Em vez disso, é um pouco mais flexível usar float. Então, eu vou fazer isso e vamos executá-lo depois de salvar. Agora, se eu fosse, como eu disse, digitar 2.5, Opa. Esqueci de mudar o INT para flutuar aqui. Você notou meu erro? Agora, vamos executar novamente no tipo 2.5. Eu vou dizer 5.0. Ou mesmo se eu o executasse novamente e digitasse 12 pontos oh ou até 12 sozinho, ele retornaria como um ponto flutuante. Por que usamos float em vez de INT? Se você deu à função INT embutida algo que não está na base dez, como se você dissesse 2,5, ela fica um pouco irritada. Diz que é um literal inválido para INT com esse requisito de base dez Então, mesmo se você disser 12 pontos, oh, você obtém o mesmo tipo de erro. Portanto, o float oferece muito mais flexibilidade, dependendo da string que você está colocando nele Às vezes, você precisa converter um número em uma string. Para fazer isso ao contrário, também existe uma função para isso. Deixe-me dar um exemplo. Digamos que faremos alguma concatenação novamente. Digamos que temos uma variável chamada número de maçãs e atualmente é quatro. Você está com muita fome e diz, eu vou comer. Em seguida, concatene o número de maçãs em outra corda com maçãs nela Imprima isso automaticamente e insira o número. Bem, você só pode concatenar uma string, não um inteiro em uma Como a variável num apples é um número, o Python não pode concatená-la Você precisa converter o inteiro Num apples em uma string, e é aí que usamos a função STR embutida Assim como INT e float, há uma função integrada STR que retorna uma versão em string de um objeto E aqui você pode adicionar a função STR embutida que pega um objeto e o coloca em uma string Ótimo. Vamos ver se isso funciona. Sim. Isso funciona muito bem. O que é meio legal é que a função STR embutida pode realmente lidar com expressões aritméticas diretamente dentro realmente lidar com expressões aritméticas diretamente Então, digamos que você tenha um total de maçãs de quatro. E esses são quantos você comeu até agora, ou seja, dois. Então, atribuímos duas variáveis, total de maçãs ao inteiro quatro e as maçãs comidas ao inteiro E você quer criar uma string que diga que somente o espaço pode catenar E desta vez, você está convertendo em uma string. E você vai dizer o total de maçãs menos as maçãs que foram comidas e concatenar isso para mostrar o número de maçãs que I Então ele pode fazer essa subtração ali mesmo. Vamos dar uma olhada em alguns exercícios adicionais para você praticar com eles. Exercício um. Crie uma string contendo um inteiro converta essa string em um inteiro real usando a função INT incorporada Teste seu novo objeto como um número multiplicando-o por outro número e exibindo o resultado Exercício dois. Experimente o exercício anterior novamente, mas use um número de ponto flutuante e a função flutuante incorporada Exercício três. Tente criar um objeto string e um objeto inteiro. Em seguida, exiba-os lado a lado com uma única impressão usando a função string. Exercício quatro. Ok. Neste, você usará a entrada duas vezes para obter dois números diferentes de um usuário, depois multiplicará os números e exibirá o resultado A impressão deve ter uma aparência semelhante a esta. Você pode encontrar as soluções para esses exercícios e o código nos arquivos de recursos desta lição. seguir, você aprenderá como otimizar sua função de impressão 41. EXERCÍCIO: trabalhe com cadeias e números: E você continuará com mais alguns exercícios de entrada. Esse é chamado de Trabalhar com sequências e números. Escreva um programa que use função de entrada duas vezes para obter dois números do usuário, multiplique os números e exiba o resultado Se o usuário digitar dois e quatro, por exemplo, a nova entrada deverá imprimir o texto a seguir. O produto de dois e quatro é oito ponto zero. O que você pode ver aqui é que o resultado deve ser exibido como um número de ponto flutuante. E lembre-se de que a função de entrada sempre cria uma string na qual você pode converter certas strings em números reais usando as funções int e float, e que você pode converter números em strings usando a função string Então, o que você precisará fazer é coletar as entradas do usuário, depois converter o tipo e, seguida, também fazer um pouco de matemática e exibi-las de volta para o usuário. Experimente você mesmo e, se quiser, pode assistir à próxima lição, onde resolverei a tarefa. 42. SOLUÇÃO: trabalhe com cadeias e números: Eu abri um novo arquivo e anotei algumas notas para as instruções. Quero obter dois números do usuário, multiplicá-los e exibir o resultado Essas são as coisas que eu quero fazer nessa multiplicação. Na verdade, há outra etapa. Também vou querer convertê-los em números. Então, eu posso fazer isso em algum momento, mas preciso fazer isso antes de multiplicá-los. E isso é porque você não pode realmente multiplicar duas cordas. Isso só vai ser um erro. Então, eu vou até o REPL só para mostrar isso para você. Se eu tiver duas strings e tentar multiplicá-las, receberei um erro de tipo informando que o Python não pode multiplicar sequências por não int sequências por Esta é uma mensagem bem descritiva que apenas me diz que isso não funciona Mas se você coletar a entrada do usuário, sempre será uma string, mesmo que o usuário digite um número. Experimente isso também. Então, atribuirei o valor de retorno da entrada a A. Vou apenas dar um prompt vazio aqui. Então, o prompt me pede agora para inserir algo Se eu inserir aqui quatro. Então, estou pensando que estou inserindo um número. O que eu obtenho como resultado ainda é uma string. Como você pode ver, é uma classe STR. Parece que sim. Então, se você estiver coletando informações do usuário, elas sempre chegarão como uma string. E então, se você estiver tentando multiplicar duas sequências de caracteres, você encontrará um erro Mas há um pouco de diversão paralela. Se você tivesse um programa diferente que tivesse um número inteiro fixo com o qual você está multiplicando a entrada do usuário , digamos que, se você não fizer uma conversão de tipo aqui, poderá encontrar uma saída inesperada Temos um, que aponta para quatro, certo? E digamos que o programa multiplique a entrada de um usuário por 20, certo? Então, o que você obtém nesse caso é uma concatenação de strings. O Python concatena a string de entrada 20 vezes. Então você obtém 20 quatros como saída, o que seria um resultado de cálculo estranho para fazer quatro vezes 20 Então, para evitar isso, você precisa convertê-lo explicitamente. Você poderia, por exemplo, converter A em um inteiro e depois fazer a multiplicação, e isso funciona, certo Isso funciona corretamente e a matemática faz sentido novamente. Isso é só para ter em mente que você precisará converter esses números. Com isso, vamos começar coletando os dois números do usuário. Vamos voltar ao nosso editor e ir para a linha dois. A letra A é inserida. Agora abra parênteses entre aspas duplas e digite. Insira um número. Avise-os para torná-lo um pouco mais legível e, em seguida, faça a mesma coisa novamente para outro número Eu direi que B é entrada. Em seguida, digite, insira outro número. Então eu quero convertê-los em números para que eu possa multiplicá-los. Eu vou fazer isso em uma etapa. Então, vou converter em floats porque, na saída, eu quero ter floats Então, dizendo converter explicitamente A e B em números de ponto flutuante e, em seguida, atribuir isso a uma variável Aqui estou fazendo a conversão e a multiplicação em uma única etapa E, finalmente, preciso exibir o resultado. Vou fazer isso usando apenas a concatenação de strings, que, como você verá, vai ficar bem longa Você provavelmente já encontrou uma maneira melhor de fazer isso. Mas, por enquanto, vamos continuar com concatenação de strings, porque eu também quero mostrar algo semelhante à multiplicação que não funciona Você não pode fazer concatenação se as duas não forem strings. Então, para poder exibir essa mensagem, o produto daqui, você pode simplesmente usar a variável que eu coletei porque A é uma string, certo? Estou apenas convertendo isso na multiplicação em um número de ponto flutuante Então, A ainda aponta para a string original inserida. Então, posso dizer que o produto de A e B é E agora, se eu simplesmente adicionar o produto aqui sem nenhuma conversão, eu me depararia com um erro novamente. Vamos experimentar isso no console. Então, aqui o que estou tentando fazer é concatenar uma string e um número de ponto flutuante Então está marcado aqui. Eu vou dizer, A, esta é minha string mais um número de ponto flutuante, 0,2. E você pode ver que o Python novamente apresenta um erro de tipo, informando que ele só pode concatenar strings em strings e não um float strings e Portanto, para poder colocar o produto na string que você está concatenando aqui, você precisará convertê-lo explicitamente em uma string usando a função STR e passando Com isso, vai funcionar. E você também pode continuar adicionando outra string, que, nesse caso, é apenas um ponto final. Tudo bem. Então, essa é uma maneira muito, muito longa de montar essa mensagem, basicamente usando apenas a concatenação de strings Mas vamos tentar e ver se funciona. Eu o salvo e o executo. Digite o número dois, insira outro número quatro e o produto de dois e quatro é 8,0 Então, estou obtendo a saída esperada. O resultado da entrada parece um número de ponto flutuante. Mas aqui na chamada de impressão, você a converte em uma string antes concatená-la com outras partes da string que está montando da string que Se você usou o formato de ponto ou uma string F para a mensagem final, essa também é uma ótima opção. Portanto, se você está preso à concatenação de strings até agora, terá a chance de experimentar algo novo 43. Métodos de formatação do Print(): Olá a todos, e bem-vindos de volta ao curso. Nesta lição, vou dedicar um pouco mais de tempo a como formatar cadeias que você possa criar mensagens mais complicadas dentro da sua função de impressão Primeiro, você pode concentrar duas cordas para criar uma terceira Hello plus world resultaria em uma terceira string chamada Hello World. Você precisa ter um pouco de cuidado em Python. Na verdade, isso não edita a string. Ele cria uma terceira sequência totalmente nova. Isso pode tornar a manipulação de strings um pouco intensiva em memória e diminuir o desempenho Ao longo dos anos, o Python adicionou várias maneiras de manipular O primeiro é semelhante ao C, suportando a notação percentual a. O segundo tem espaços reservados usando colchetes e o terceiro, que é bastante recente, é uma Já discutimos esses três métodos quando aprendemos sobre cordas. Agora vou mostrar como incorporar esses métodos de formatação na função de impressão Geralmente, é recomendável usar a string F o máximo possível, mas ainda há alguns casos estilo C pode ser mais importante. Eu vou te mostrar como usar esses dois no terminal agora. Vou começar criando algumas variáveis aqui. Primeiro nome. Idade do sobrenome. E o primeiro exemplo de formatação é porcentagem S. A porcentagem, como nesta string, é um espaço reservado para onde o conteúdo será injetado A porcentagem no final da sequência diz o que injetar. Nesse caso, o valor dos sobrenomes é colocado na string. Você pode colocar várias porcentagens dentro de um formato. Para fazer isso, você deve passar uma turpla para a string em vez de um único valor Observe que, se você quiser usar o sobrenome duas vezes, precisará usar 2% S, um para cada instância do sobrenome e a variável duas vezes dentro das tuplas porcentagem S diz que você vai colocar uma corda. porcentagem D diz que você colocará um número inteiro porcentagem F é para carros alegóricos. Digite. O número cortou 3,14. Por que isso? Vamos explicar aqui. O primeiro número é o número mínimo total de dígitos que a string deve conter O número depois é o decimal. Representa quantos números mostrar além do ponto decimal É por isso que o resultado é 3,14. Então, se eu mudasse isso para três, mostraria 142 Se eu fizer dele um número grande, por exemplo, oito, ele preencherá o resto desses números com zeros Agora vamos mudar o primeiro número. Digamos 20 e execute o programa. Observe como preenchemos vários espaços em branco. Agora, vamos lembrar como converter em uma string. Também podemos usar um sinal de porcentagem R, que faz a mesma coisa com o sinal de porcentagem S. Vamos fazer outro exemplo usando vários sinais de porcentagem. O Python os colocará em ordem. O primeiro lado percentual será atribuído ao primeiro item e o segundo sinal de porcentagem será atribuído ao segundo item. Ok, agora vamos fazer o mesmo exemplo usando o segundo tipo de método de formato. E vou usar colchetes aqui e colocar algum nível de variável arbitrário. Por exemplo, X feche com aspas e depois com um ponto e chame o método format nessa string. Em seguida, a variável X e meu nome como uma string. Agradável. Vamos mudar esse código, adicionando a frase a seguir e um segundo rótulo de variável. Por exemplo, por quê? O Python três introduziu o conceito de uma string F. O F na frente da string indica que essa é uma string de formatação Agora, colchetes ondulados indicam onde colocar a injeção. Isso é o mesmo do primeiro exemplo. Acho esse mecanismo muito mais fácil de ler, principalmente se você tiver várias variáveis. As cadeias de caracteres de formato suportam o cálculo. Eles também oferecem suporte à formatação. Vamos abrir uma nova janela de shell, importar o primeiro módulo matemático, que fornece acesso às funções matemáticas. Dentro dos colchetes, você coloca dois pontos, indicando seu mecanismo de Opa, esqueci de definir a variável idade. O 0,2 F é semelhante ao 0,2 F acima, nos dando a idade de Alan Turing vezes Pi com dois dígitos significativos Ótimo. Não se apresse e assista à palestra com atenção Se você tiver alguma dúvida, publique-a no discussão de perguntas e respostas. Obrigado por assistir. 44. Encontrando uma corda em uma corda: Agora que você descobriu como simplificar suas impressões com sequências F, é necessário encontrar uma sequência dentro de outra Um dos métodos de string mais úteis é o find. Como o próprio nome indica, esse método permite que você encontre a localização de uma string dentro de outra string, comumente chamada de substring Para usar find, você o coloca no final de uma variável ou de uma string literal com a string que deseja encontrar digitada entre O valor que Find retorna é um índice da primeira ocorrência da string que você passa para ele. Vamos dar uma olhada nisso na janela interativa. Vamos começar com uma frase. Portanto, a frase variável será atribuída à string literal O alarme de incêndio continua tocando. Se você fosse usar o método fino em vez dos colchetes, você escolheria qual é a substring que você está procurando dentro da Então, neste caso, vamos dizer, procure fogo. Vamos digitar. Frase em finden, dispare entre aspas duplas, feche parênteses Ele retornará o índice da primeira ocorrência da substring dentro da string Então, neste caso, é o quarto ponto de índice. Então aqui está zero, um, dois, três, quatro. Eu sei que essa é a quinta posição, mas, novamente, começando de zero, zero, um, dois, três, quatro. É aí que isso começa. Ótimo. E se a substring não existir dentro da string Vamos digitar a frase dot find em uma palavra aleatória. Você receberá um retorno negativo, que significa que ele não o encontrou. Portanto, como observação, não se esqueça que isso exige que a caixa corresponda. Então, se eu der um F para fogo, ele retornará menos um. Vamos tentar outro exemplo. Vou chamá-la de uma nova frase. E será igual a eu colocar uma corda dentro da sua corda. Nesse caso específico, quando você diz uma nova frase, não encontre, o que você obterá se digitar uma string? Então, nesse caso, é apenas a primeira ocorrência. Não devolveu o segundo. Isso retorna o índice somente da primeira ocorrência, começando do início da string. E observe que, se você tivesse uma string, digamos, de um número de telefone. Se você estiver tentando encontrar o número quatro, como neste caso, um número inteiro, isso lhe dará um erro Está dizendo aqui no feedback que é um erro de tipo. O valor precisa ser uma string, não um número inteiro que ele vai pesquisar Portanto, você precisaria encontrar uma sequência literal de quatro e ela estivesse logo no início do índice zero Às vezes, você pode querer substituir todas as ocorrências de uma determinada string dentro de uma string Como find retorna o índice da primeira ocorrência de uma substring, você não pode usá-lo facilmente para realizar essa operação Mas as strings têm um método replace que substitui cada instância de uma substring por outra string Assim como esse método find, você insere replace no final de uma variável ou de uma string literal Nesse caso, porém, você precisa colocar duas sequências dentro dos parênteses e separá-las primeira seria a substring que você deseja encontrar e a segunda é uma string pela qual você deseja substituir as correntes Ido da Vamos experimentar isso na janela interativa. Assim como find, você marca o método replace no final da variável ou na string literal Vamos experimentar isso. Digamos que tivéssemos uma variável chamada Minha história. OK. E, nesse caso, você queria substituir usando dot replace. E você pode ver aqui que diz, coloque o antigo, ou seja, a substring que você estava procurando para ser substituída pela nova string Então eu vou dizer, procure a verdade e substitua-a por mentiras. Agora, quão legal é isso? Agora, o que aconteceu com a minha história em si, você deve se lembrar que strings são objetos imutáveis, e substituir não alterará a variável my E usar o método replace não altera a string da minha história. Se você digitar imediatamente minha história na janela interativa, verá que, se quiser alterar o valor da string minha história, precisará reatribuí-la Então, novamente, relembrando isso, você diria que eu gostaria de atribuir minha história, neste caso, a esse substituto Então, você diria: Digamos que queremos fazer a mesma coisa, trocando a verdade por mentiras Então, agora, o que está dentro da minha história? Você verá aqui que ele foi modificado e reatribuído. Substituir substituirá cada instância da substring pelo texto de substituição E se você tivesse outra string atribuída a algumas das coisas? Então aqui está o texto, e você queria uma nova versão do texto. E você queria fazer algumas substituições. Digamos que você queira substituir alguns por todos, mas também queira substituir coisas por coisas. Bem, você teria que fazê-las uma de cada vez. Então, o novo texto diz todas as coisas, e você pode dizer: Ok, bem, novo texto. Eu também quero fazer um novo texto, não substituir coisas em coma. Então, agora você conseguiu as duas coisas. O método de substituição substitui cada instância de uma determinada substring um texto substituto Agora, se você quiser substituir várias substrings diferentes em uma string, precisará usar replace multiple times É hora de se desafiar com alguns novos exercícios de revisão. Exercício um. Em uma linha de código, exiba o resultado da tentativa de encontrar a substring A minúscula na string de três A. Note que o resultado deve ser negativo Exercício dois, substitua todas as ocorrências do caractere S por X. Nessa sequência, alguém disse algo a John Exercício três, escreva um programa que aceite a entrada do usuário com entrada e, em seguida, exiba o resultado da tentativa de encontrar uma letra específica nessa entrada. Você pode encontrar as soluções para esses exercícios e o código nos arquivos de recursos desta lição. Obrigado por assistir. 45. EXERCÍCIO: encontre uma letra em uma corda: Seu próximo exercício é chamado de encontrar uma letra em uma string. Aqui você deve escrever um programa que aceite entrada do usuário com a função de entrada e exiba o resultado da tentativa de encontrar uma letra específica nessa string de entrada usando o dot find. Qual letra não está definida aqui. Então, parece que essa será outra entrada, provavelmente do usuário, ou talvez não seja uma descrição muito boa. De qualquer forma, vou adicionar essa descrição para que o usuário possa inserir a palavra ou a frase e também qual letra pesquisar nessa frase. Ok, experimente e depois passe para a próxima lição. 46. SOLUÇÃO: encontre uma letra em uma corda: Portanto, a tarefa falava sobre escrever um programa, o que geralmente é um indicador que você deve usar um script para ele. Então, novamente, abri um novo roteiro e coloquei em notas curtas. Quero coletar informações e, em seguida, exibir os resultados da pesquisa por uma carta. Vamos começar coletando informações e salvando-as em algum lugar. Então, meu texto será inserido, digite uma letra. Em seguida, quero exibir esse resultado da busca por uma letra nesse texto. Então, eu quero dizer text dot Find. E depois uma carta. O que é a carta? Eu não sei. Eu poderia pesquisar apenas uma letra codificada, por exemplo, X aqui e depois imprimir o resultado disso Vamos dar uma olhada nisso. Vou salvá-lo e executá-lo. Agora eu posso inserir um texto. Vou salvar a Virgínia e recebo menos um porque não há X na Virgínia Agora, se eu executar o script novamente e tentar com um texto que contenha um X, por exemplo, Xavier , obtenho zero Então, ele encontra X na primeira posição. Então isso funciona com X, mas eu não acho isso ótimo. Se sempre procurar X, talvez seja um pouco chato. Então, em vez disso, vou mudar isso para permitir que o usuário também insira qual caractere pesquisar. Então, vou criar outra variável que chamarei de personagem. E essa será outra chamada para entrada. E então eu direi Enter Character para pesquisar. Finalmente, também preciso substituir o argumento do texto corretamente por um caractere. O que significa que será qualquer que seja a entrada do usuário. Tecnicamente, essa entrada do usuário pode ter mais do que um único caractere busca por pontos funciona com substrings, então você pode inserir mais de um caractere como substring para pesquisar Se o Python encontrar a substring , ele retornará o índice do início de onde a substring aparece pela primeira vez na string Mas para este exercício, você não precisa se preocupar com nada disso. Você presumirá que seus usuários são bons cidadãos e seguirá as instruções para inserir apenas um único caractere. Vamos fazer isso de novo. Insira um texto. Então, agora eu posso dizer Samantha e pesquisar por A. E então você pode ver que ele encontra na posição um do índice Então, na segunda posição, que é a primeira posição do índice. E vamos fazer isso de novo. Veja se ele ainda funciona conforme o esperado. Se eu disser Samantha e pesquisar por X, recebo menos um. E mais um teste. Se eu digitar Samantha e pesquisar por T, você verá que obtenho cinco, que é a posição de índice do primeiro T que o Python encontra na Tudo bem. Então isso funciona. Vamos limpar o script, remover os comentários e terminamos esse exercício. 47. Strings e métodos de string (SUMÁRIO): Bem-vindos de volta, pessoal. Nesta seção, você aprende a manipular cadeias de caracteres com métodos de seqüência de caracteres Você aprende a trabalhar com entrada do usuário e lidar com sequências de números Além disso, você aprendeu várias maneiras de formatar strings para impressão. Além disso, abordamos a divisão, concatenação e união de strings em Python Ao longo do caminho, você também aprendeu sobre F, strings de várias linhas, como indexar e fatiar strings, como as strings são imutáveis e também aprendeu como descobrir métodos adicionais e também aprendeu strings F, strings de várias linhas, como indexar e fatiar strings, como as strings são imutáveis e também aprendeu como descobrir métodos adicionais usando o idle. Na próxima seção, praticaremos o trabalho com strings e métodos de string Fazendo tudo isso, você praticará os conceitos que aprendeu na seção e ajudará a mantê-los. Quero agradecer e parabéns por concluir a seção. 48. PROJETO: crie um programa de impressão de recibos: Bem-vindo ao seu primeiro projeto. Criaremos um programa muito básico de impressão de recibos. Durante a semana, à medida que aprendemos sobre variáveis, os operadores na manipulação de strings usarão essas habilidades para criar esse programa É sempre bom imaginar um design do que você está tentando construir. Para projetos maiores, convém criar um fluxograma ou algum tipo de documento de design que o mantenha atualizado. Dessa forma, você não se afasta do resultado pretendido. Para nós, criaremos um pequeno programa de impressão de recibos com os conceitos que aprendemos , nos quais a saída será semelhante à seguinte. Então, vamos começar. Sempre que você inicia um projeto, você deve sempre entender por onde começar. Não importa o tamanho do projeto, há certas dependências Assim como construir uma casa, você precisa ter uma fundação antes de poder colocar um telhado. Vamos começar a definir as variáveis com as quais trabalharemos ao longo deste programa. R É bom implementar boas técnicas de codificação ao escrever um programa em Python Essa técnica introduzida em seu bloco é a capacidade de declarar várias variáveis na mesma linha Para fazer isso, separamos os nomes das variáveis e seus valores associados por. Observando as duas primeiras variáveis declaradas, o valor das laranjas será salvo com o nome da variável P, um nome de sublinhado e o valor Isso será salvo no nome da variável P one underscore price Em vez de escrever seis linhas, já reduzimos nosso programa pela metade. Quanto menos linhas usarmos, melhor na maioria das vezes. Em seguida, vamos definir as variáveis que usaremos para a empresa na parte superior do recibo. Por exemplo, deixamos o nome da empresa em letras minúsculas para que você possa usar um método de manipulação de streaming para corrigir Por fim, vamos declarar a mensagem que será enviada ao usuário na parte inferior do recibo Como podemos ver no design que definimos no início do projeto, precisaremos fazer uma borda na parte superior e inferior Vamos começar com uma borda superior. Tudo o que estamos tentando fazer é imprimir 50 estrelas seguidas para Tom Border, em vez de fazer 50 declarações impressas. Podemos simplesmente multiplicar a string pelo número que queremos Já definimos nossas variáveis na empresa pelas linhas anteriores, então vamos exibi-las. Os caracteres de escape são lidos no caractere de barra invertida definidor O que vier depois dessa barra invertida é o que o computador interpretará Nas três primeiras instruções de impressão, usaremos a barra invertida T para o recuo da guia Quando usamos os dois caracteres de escape em uma linha para centralizar nossa saída, agora vamos criar um divisor Assim como imprimimos nossa borda superior, multiplicaremos o símbolo de igual por 50 para criar a mesma linha de largura Isso dará a aparência de seções separadas. Agora, queremos criar um cabeçalho antes de listar o nome e o preço de cada produto. Isso pode ser feito simplesmente usando nossos caracteres de escape para indentar Devido ao tamanho dos nomes dos cabeçalhos, queremos usar apenas uma única guia antes de cada cabeçalho. Agora podemos seguir em frente e gerar uma linha para as informações de cada produto. OK. OK. Estamos usando estilos semelhantes nas declarações impressas anteriores para centralizar o título, o preço e os respectivos cabeçalhos de cada produto preço e os respectivos cabeçalhos Tente não se confundir todos os símbolos com a string de impressão, pois você pode simplesmente dividi-los em uma guia, seguida pela primeira variável sendo formatada na string, seguida por duas guias, seguida pelo sinal $1 para fazer o preço parecer moeda e seguida pela formatação da segunda variável na formatação da segunda variável Isso completa a seção de nossos itens, então vamos colocar outro divisor de seção Curta a seção de produtos. criar um cabeçalho para nosso total, mas também queremos centralizá-lo abaixo da coluna de preços, como na seção de produtos Para fazer isso, precisaremos de três guias. Agora que temos nosso cabeçalho total alinhado à coluna de preços nos produtos, podemos importar nosso total para a próxima linha Antes de podermos imprimir um total, no entanto, precisamos primeiro calcular o total, que é a soma de todos os nossos produtos. Vamos definir uma variável chamada total e depois imprimi-la. Novamente, adicionamos três guias mais sinal de $1 para fazer com que o valor total apareça como moeda Agora vamos adicionar uma borda de seção. Y. Para exibir a mensagem final de agradecimento, nosso design está um pouco mais espaçado do que qualquer outra seção, então precisaremos adicionar algumas linhas novas para dar um espaçamento extra Nossa mensagem agora está centralizada e estamos prontos para seguir em frente. Para finalizar o programa de impressão simples, precisamos inserir uma borda inferior para fins estéticos. Execute o programa. Observe que o preço do nosso terceiro produto, o azeite, está centrado nos outros dois produtos Então, vamos excluir uma guia. Execute o programa novamente. E funciona muito bem. Parabéns. Por mais simples que seja, é um grande marco. Tente quebrar o programa. Eu sempre incentivo os alunos a tentarem interromper os programas, pois isso vai te ensinar como consertá-los. Agora eu tenho uma pergunta desafiadora. No projeto, acabamos criando bordas acima e abaixo das informações impressas. Tente adicionar uma borda em estrela nas laterais e agora nas bordas laterais. A solução está sempre dentro dos arquivos de recursos. Se você tiver alguma dúvida ou sugestão sobre como melhorar o programa, entre em contato comigo. Obrigado por assistir. 49. Números e matemática (visão geral): Os computadores usam números para representar todos os tipos de informações de texto, imagens, músicas e até vídeos como o que você está assistindo atualmente. Quase tudo é um número do ponto de vista do computador. Por esse motivo, os números e a capacidade de lidar com eles desempenham um papel importante em todas as linguagens de programação, incluindo Python Talvez seja também por isso que alguns iniciantes acreditam que precisam de fortes habilidades matemáticas para se tornarem programadores No entanto, esse é um equívoco comum. Na realidade, seu conhecimento de matemática no ensino fundamental deve ser mais do que suficiente para começar a programar O nível real de familiaridade matemática dependerá de sua função específica no aplicativo que você está criando Por exemplo, era menos provável que você precisasse saber sobre álgebra linear ou estatística como desenvolvedor web do que como cientista de dados Neste curso, você terá uma visão geral dos tipos numéricos em Python , criando números inteiros, flutuantes e números complexos e realizando operações aritméticas números complexos e Aprenda sobre o erro de representação de ponto flutuante, trabalhe com funções matemáticas e métodos numéricos, formate e exiba números como cadeias Tudo bem, é hora de você começar com uma visão geral dos tipos numéricos disponíveis em Python 50. Tipos numéricos em Python: Nesta lição, você terá uma visão geral dos tipos numéricos disponíveis em Python Python tem três tipos numéricos incorporados à sintaxe, o que significa que você pode começar a usá-los imediatamente quando estiver Os três tipos numéricos nativos do Python são números inteiros ou números inteiros, como menos três, zero Python os chama de It, para abreviar. Depois, há números de ponto flutuante, que podem ter uma parte fracionária, como menos 2,32 ou 3,14, Eles são conhecidos como carros alegóricos, e você aprenderá por que eles são chamados assim Finalmente, existem números complexos compostos pelas partes real e imaginária Eles são um pouco mais avançados e raramente usados na prática. Então, você abordará números complexos em uma lição posterior. O tipo de dados correspondente em Python é chamado de complexo. Vale ressaltar que todos os três tipos numéricos incorporados ao Python são assinados, que significa que eles podem armazenar valores positivos e negativos junto com Além disso, os números inteiros não têm um valor máximo ou mínimo, que é limitado apenas pela memória disponível no seu computador Em contraste, os números de ponto flutuante e seus primos de números complexos têm uma faixa fixa de valores e precisão No entanto, eles são grandes o suficiente para acomodar a maioria dos casos de uso da vida real. Estritamente falando, o Python tem outro tipo numérico, que é o tipo especial de tipo de dados inteiros É chamado de boolean ou Bool, para abreviar, e só pode armazenar um dos dois valores, verdadeiro ou falso Esses valores podem ser representados como um e zero, respectivamente. No entanto, você realmente não deve pensar nos booleanos como números porque eles são usados para uma finalidade diferente, sobre a qual você aprenderá em um curso em vídeo separado sobre lógica condicional Na maioria dos aplicativos, você usará inteiros e números de ponto flutuante mais exclusivamente porque eles cobrem a maior variedade de problemas e, ao mesmo tempo, são os mais eficientes Uma exceção notável, porém, são as operações financeiras em valores fracionários, que exigem precisão exata, especialmente quando você trabalha com grandes e pequenas quantidades ao mesmo tempo Como os números de ponto flutuante têm uma precisão limitada, usá-los para representar valores monetários inevitavelmente levaria a erros de arredondamento significativos Você nunca deve usar flutuadores para representar dados financeiros em aplicativos do mundo real, a menos que não se importe em perder informações sobre o dinheiro do seu cliente Um padrão comum para representar quantias de dinheiro é armazená-las como números inteiros em termos da menor unidade monetária, como centavos, e depois convertê-las novamente No entanto, essa abordagem não funcionará em várias moedas que podem usar unidades diferentes. Por exemplo, $1 tem exatamente 100 centavos, enquanto um bitcoin pode ser subdividido em quase qualquer Para resolver o problema com floats, Python fornece alguns tipos numéricos adicionais por meio desses módulos de biblioteca padrão , sobre os quais você aprenderá Você não precisará desses tipos numéricos extras durante este curso, mas vale a pena conhecê-los. O primeiro é chamado decimal porque armazena números internamente usando o sistema de posição decimal em vez do binário, como a maioria dos outros tipos Além disso, ele se comporta principalmente como um número de ponto flutuante Ao contrário de um número de ponto flutuante, no entanto, ele tem uma posição arbitrária, mas finita, cujo padrão é 28 casas decimais. Portanto, você deve decidir antecedência quantos dígitos deseja manter Além disso, embora um número decimal funcione com números inteiros, você não pode misturá-lo facilmente com números de ponto flutuante Se isso for um requisito, você pode usar outro tipo numérico que vem com o Python chamado fração Ele representa um número racional ou um quociente de dois números inteiros, como As frações têm precisão infinita, o que permite representar números com exatidão, mesmo que tenham uma expansão decimal ou binária recorrente expansão decimal ou binária sem perda de informações devido ao Agora que você tem uma ideia geral sobre os tipos numéricos em Python , é hora de examinar mais de perto os números inteiros 51. Inteiros: Nesta lição, você se aprofundará em um dos tipos numéricos mais comuns na programação, o tipo de dados inteiros, que o Python Se você quiser acompanhar uma sessão interativa de intérprete de Python, vá em uma sessão interativa de intérprete de Python, frente e comece a usar Um inteiro é um número inteiro sem casas decimais. A maneira mais rápida de criar um número inteiro em Python é criando um literal inteiro que consiste dígitos que aparecem literalmente em seu código Por exemplo, digitar 42 e ocioso cria um número inteiro. Você pode verificar o tipo desse literal, qual Python se refere como It, porque números inteiros são números inteiros Eles não vêm com uma parte fracionária. Portanto, assim que você incluir o ponto decimal em seu literal, você não cria mais um Mesmo que a parte fracionária do seu literal seja igual a zero, como neste exemplo, o resultado será um número de ponto flutuante, que você aprenderá na próxima lição Por outro lado, um literal inteiro pode incluir o sinal de menos Isso cria um número inteiro negativo. Além disso, você pode delimitar grupos de vários dígitos colocando um único caractere de sublinhado em qualquer lugar do seu literal para torná-lo um número grande e um pouco mais fácil um pouco Não faz diferença para o Python se você usa os sublinhados ou não, mas escrever um número com eles é sem dúvida mais Até agora, você só viu literais decimais consistindo nos conhecidos dez dígitos de zero a No entanto, ocasionalmente, talvez você queira expressar um número usando um sistema numérico diferente Como os computadores usam binários e, às vezes, alguns outros sistemas numéricos, Python permite criar números inteiros Ao prefixar seu literal inteiro com uma das poucas bases de sistema suportadas, você pode alterar quantos dígitos deseja Por exemplo, o número 42 pode ser expresso como um, zero, um, zero, um, zero no sistema binário. Para dizer ao Python que interprete um literal como dígitos ou bits binários, você pode usar o Observe como idle apresenta o número para você no sistema decimal novamente É o mesmo número representado apenas de duas maneiras diferentes. Da mesma forma, você pode expressar o número 42 no sistema hexadecimal usando o prefixo zero x seguido pelos dígitos dois A. Tenha até 16 dígitos à sua disposição no sistema hexadecimal usando o prefixo zero x seguido pelos dígitos dois A. Tenha até 16 dígitos à sua disposição no sistema hexadecimal. Os dez dígitos usuais de 0 a 9 mais seis letras latinas de A a F. As letras podem ser maiúsculas ou minúsculas O último sistema numérico suportado pelos literais do Python é o octal , que tem oito dígitos de 0 , que Você pode habilitar um literal octal com um prefixo 00. Novamente, você obtém uma representação decimal do inteiro criado É justo dizer que você raramente precisará usar literais inteiros além do decimal padrão No entanto, às vezes eles podem ser úteis. Usar literais inteiros é melhor quando você conhece seus números de antemão e deseja incorporá-los ao seu código com uma forma No entanto, os números geralmente vêm como sequências de caracteres dos usuários que os digitaram no teclado uma lição anterior, talvez você se lembre de que é possível converter uma string um número inteiro chamando a função embutida em Python Observe as aspas em torno de 42, que definem uma string literal O que você recebe de volta é o valor inteiro correspondente indicado sem as aspas Novamente, você pode verificar o tipo do valor de retorno que por acaso é int. Por padrão, a função int pressupõe que você forneça uma string com dígitos decimais de zero Se você quiser escolher uma base diferente para o sistema numérico, poderá passar de maneira ideal um segundo argumento para a função depois de uma Nesse caso, você está criando um número inteiro 42 a partir de uma sequência de dígitos binários 101010 O valor máximo para a base suportada pelo Python é 36. É importante notar que a TI aceita um valor de qualquer tipo de dados, não apenas cadeias Por exemplo, você pode passar um número de ponto flutuante para truncar sua parte fracionária Como você pode ver, a função int permite converter valores de outros tipos de dados em números inteiros, o que talvez seja necessário para realizar alguns cálculos em números em vez Quando você chama Int sem passar nenhum valor como argumento, você sempre retornará zero como resultado. A terceira maneira de criar números inteiros em Python é por meio de expressões como expressões aritméticas Você aprenderá mais sobre eles no futuro. Enquanto isso, literais inteiros devem ser completamente suficientes. Tudo bem. Agora você sabe como criar números inteiros em Python usando literais inteiros, que podem ser representados com diferentes sistemas numéricos, incluindo os sistemas decimal, binário, hexadecimal Python usando literais inteiros, que podem ser representados com diferentes sistemas numéricos, incluindo os sistemas decimal, binário, hexadecimal e octal. Nesse caso, são todas representações diferentes do mesmo valor. Você também conhece a função in, que retorna zero quando você a chama sem nenhum argumento. Caso contrário, ele converterá qualquer tipo de dados fornecido, como uma string literal no número inteiro correspondente Quando você chama a função in com um número de ponto flutuante como argumento, ela truncará sua parte fracionária e retornará apenas a parte inteira como um número inteiro Finalmente, a função in pode, opcionalmente, receber outro argumento, que é a base do sistema usada para interpretar uma sequência de dígitos, como 10, um, 010 na Em seguida, você explorará os números de ponto flutuante, o segundo tipo mais importante de números e o Python Mas antes disso, eu tenho um exercício na próxima lição sobre números inteiros Ao realizar esses exercícios, você aprofundará seu conhecimento e solidificará sua compreensão da linguagem Python Você não apenas ganhará confiança em suas habilidades de programação, mas também aprimorará em suas habilidades de programação, suas habilidades de resolução de problemas. 52. EXERCÍCIO: defina literais inteiros: Este exercício testará sua capacidade de definir números inteiros em Python usando sua Ajudaria lembrar o que são literais inteiros. Como você já sabe, um número inteiro é um número inteiro sem casas decimais Por exemplo, um é um número inteiro, mas 1,0 não é. Você pode criar um número inteiro digitando o número desejado. Por exemplo, o seguinte atribui o inteiro 25 à variável num Quando você cria um inteiro como esse, o valor 25 é chamado de inteiro literal porque o inteiro é literalmente digitado Tudo bem Aqui estão suas instruções para o exercício. Você precisa escrever um programa que crie duas variáveis, número um e número dois. Tanto o número um quanto o número dois devem receber o literal inteiro 25 milhões, um escrito com sublinhados e Em seguida, imprima o número um e o número dois em duas linhas separadas. Vou deixar você pensar nisso sozinho antes de passar para a próxima lição, onde resolveremos esse exercício juntos. 53. SOLUÇÃO: defina literais inteiros: Eu já tenho o Idol aberto no modo interativo padrão, que você pode ver pelo prompt consiste em três colchetes angulares retos Esse é o shell do Python, que você pode usar como um playground para testar ideias rapidamente executando trechos de código curtos antes de salvá-los Vou encaixar essa janela no lado esquerdo da tela para que eu tenha algum espaço à direita onde eu possa abrir outra janela com um arquivo vazio pronto para edição. Gosto de dividir a tela com tudo o que preciso em um único espaço de trabalho como esse para evitar perder o foco ou alternar entre programas diferentes Você também notará que eu uso muitos atalhos de teclado para tornar as coisas um pouco mais rápidas Embora seus atalhos possam ser um pouco diferentes dos meus, você sempre pode encontrá-los no menu na parte superior se estiver interessado no que são Vou colar as instruções do exercício como uma string Python no editor de código para uma referência rápida Como você pode ver, eu já transformei cada frase em um tópico separado, que abordaremos um por um Vamos criar duas variáveis chamadas número um e número dois. É comum definir cada variável em uma linha separada em Python para melhor legibilidade , embora seja tecnicamente possível agrupá-las em uma única linha , o que às vezes pode , Um lembrete rápido: você pode definir uma variável especificando seu nome, como num one, seguido pelo operador de atribuição, que é o sinal de igual em Python e, finalmente, e De acordo com o segundo marcador, ambas as variáveis devem ter o mesmo valor inteiro de 25 milhões, mas são o mesmo valor inteiro de 25 milhões, escritas usando duas formas literais alternativas Vamos usar o literal inteiro com sublinhados para a primeira variável e um sem sublinhados para a segunda Você pode colocar sublinhados em qualquer lugar em seus literais, desde que eles não apareçam na frente ou no final Em outras palavras, deve haver alguns dígitos nos dois lados do sublinhado, e esses sublinhados são completamente porque o Python Eles podem ser úteis para agrupar visualmente dígitos semelhantes, como no exercício Provavelmente, o primeiro valor literal é mais fácil de ler do que o segundo Logo de cara, diz, escreva um programa que indique que você deve salvar seu código como um script Python, o que farei agora, e nomeie o arquivo de exercício 1 O Idle presume que estamos criando um arquivo com o código-fonte do Python, então ele anexa automaticamente a extensão dot pi ao nome do arquivo, a menos que seja dito o contrário Você pode ver o caminho do seu arquivo na barra de título da janela. Agora, o último ponto deste exercício é sobre a impressão ambas as variáveis para revelar seus valores atuais. impressão se resume a chamar a função de impressão incorporada com cada variável como argumento Então imprima o número um e imprima o número dois. Agora você pode salvar o arquivo e executá-lo na janela interativa à esquerda. No meu computador, posso recarregar o módulo pressionando F cinco no meu teclado Os dois números que aparecem na tela são o resultado de chamar a função de impressão duas vezes com argumentos diferentes. Observe que, apesar de usar formas literais alternativas que atribuímos às variáveis, o Python as imprime da Você pode verificar isso chamando explicitamente print com num um e num dois no shell interativo do Python à Veja, da perspectiva do Python, ambas as variáveis contêm exatamente o mesmo valor numérico Usar sublinhados em literais inteiros só faz diferença para programadores como você, que lêem A 54. Números de pontos flutuantes: Nesta lição, você aprenderá a representar números usando o tipo de dados de ponto flutuante do Python, que é o mais adequado para números com parte fracionária Assim como acontece com números inteiros, você pode criar números de ponto flutuante usando sua forma literal A única diferença entre um literal inteiro e um 0,1 flutuante é que um literal de ponto flutuante deve ter um ponto decimal para separar a parte inteira da parte Você nem precisa do zero à direita para determinar um número de ponto flutuante, desde que inclua o ponto decimal em seu Da mesma forma, você pode pular o zero inicial se seu número for uma fração como 0,42 Os números de ponto flutuante em Python suportam o mesmo agrupamento de digitais e inteiros com a ajuda do caractere ajuda do Como você pode ver, é possível expressar o mesmo valor, como 42, usando diferentes tipos de dados em Python A diferença é como eles o representam na memória da sua empresa e quanto espaço ocupam, o que, por sua vez, afeta o desempenho e a precisão de várias operações. Além disso, você pode definir literais de ponto flutuante em Python usando a notação científica , que às vezes é conhecida como notação , que às vezes é conhecida exponencial ou notação A ideia por trás disso é reduzir os zeros repetidos em um número muito grande ou muito pequeno e focar apenas nos dígitos significativos Por exemplo, você pode escrever o mesmo número 4,2 vezes dez elevado a sete. A letra E, que pode ser maiúscula ou minúscula, representa o expoente representa O expoente em si deve ser um número inteiro, mas talvez negativo, assim como o número à sua frente Uma notação como essa pode parecer estranha ou inconveniente, mas às vezes pode facilitar o manuseio de números grandes ou pequenos em operações aritméticas Você pode ter visto a notação E em calculadoras portáteis, que a usam para representar números que, de outra forma, não caberiam na tela Se você não gostar dessa notação, você pode formatar seu número de ponto flutuante usando um número fixo de casas decimais, como oito, para revelar todos os Assim como com números inteiros, você pode criar números de ponto flutuante de duas maneiras Você pode usar seu literal que consiste em dígitos e o ponto decimal, ou pode chamar a função flutuante incorporada Quando você chama a função sem nenhum argumento, ela retorna para um número de ponto flutuante igual a zero. Observe que isso é diferente de um zero inteiro. No entanto, na maioria dos casos, a função aceitará um único argumento, que pode ser uma string ou um número, como um inteiro ou outro número flutuante Isso é conveniente para converter outros tipos de dados em números de ponto flutuante Você também deve usar a função float para definir alguns valores especiais que não têm representações literais no dados de número de ponto flutuante Nesses casos, você passará um valor de string específico como argumento para a função float Dois deles são infinitos positivos e negativos. Eles são úteis como limites superiores e inferiores não vinculados quando você pesquisa um valor máximo ou mínimo, por exemplo Convenientemente, você pode comparar o infinito com números regulares, que fornece resultados sensatos O terceiro valor especial no tipo de dados de ponto flutuante não é chamado de número ou NAN. Você pode usá-lo para indicar explicitamente um valor ausente. No entanto, é mais comumente usado pelo próprio Python para sinalizar uma operação matemática indefinida, como dividir o infinito por outro infinito Há uma peculiaridade interessante em não ser um número, Python segue a especificação IE 754 para a aritmética para Nem um número nunca é igual a nenhum valor, nem mesmo a si mesmo. Outra coisa diferente dos números de ponto flutuante quando você compara com números inteiros é que eles têm um limite fixo Se você tentar encontrar um valor maior do que o valor máximo permitido, acabará com o infinito. Como você sabe qual é o valor máximo? Bem, na prática, isso realmente não importa porque o intervalo de um número de ponto flutuante é tão grande que será mais do que suficiente na maioria dos casos. Porém, se você realmente quiser descobrir , pode usar as instruções a seguir. Nesse caso, o valor máximo é cerca 1,8 vezes dez elevado a 308 Lembre-se de que esse número é imutável porque vários intérpretes de Python podem ter limites diferentes, dependendo da plataforma para a qual foram Resumindo, você pode criar números de ponto flutuante em Python usando seus Isso deve conter um ponto decimal. Ao mesmo tempo, você não precisa dos zeros à direita ou à esquerda nesses literais, deixando apenas o ponto decimal no lugar Você pode especificar literais de ponto flutuante usando a notação científica conhecida como notação E, que permite expressar muito grandes ou muito pequenos números de ponto flutuante muito grandes ou muito pequenos de forma concisa A segunda maneira de definir números de ponto flutuante e Python aproveita a função flutuante incorporada Quando você chama a função sem argumentos, ela retorna um número de ponto flutuante igual a zero. No entanto, você quase sempre o chamará com um argumento para converter outro tipo de dados em um número de ponto flutuante. Especificamente, você pode converter uma string composta por dígitos decimais e alguns caracteres especiais como o sinal de menos, ou pode converter um número inteiro ou até mesmo outro Há também alguns valores especiais de ponto flutuante que você pode obter com a ajuda da função float Eles são o infinito negativo, o infinito positivo e não um número Ok, agora que você sabe sobre números inteiros e números de ponto flutuante, é hora de aprender como usá-los em expressões aritméticas em expressões aritméticas 55. Operadores de aritmética e comparação: Oi, todo mundo. Esse é Andreas E nesta palestra, aprenderemos sobre operadores aritméticos e faremos uma dúzia de exemplos para entendê-los Então, inicie o Shell e vamos começar. Os operadores nos ajudam a realizar as operações matemáticas usuais em variáveis operadores aritméticos em Python incluem adição, subtração, multiplicação, divisão, divisão mínima, também chamada de divisão inteira, módulo, exponenciação , positivo unário e negação unária Os operadores aritméticos em Python incluem adição, subtração, multiplicação, divisão, divisão mínima, também chamada de divisão inteira, módulo, exponenciação, positivo unário e negação unária. Incluí um arquivo PDF com uma boa tabela com o operador, um exemplo, o significado e o resultado. Você pode abri-lo a partir dos seus arquivos de recursos. Aqui estão alguns exemplos desses operadores em uso. A é igual a dez, B é igual a três. Adição A mais B. O resultado é 13. Subtração, A menos B. O resultado é sete, multiplicação, A, multiplicação por B. O resultado Divisão, A, divida por B. Enter. O resultado é 3.333, etc. O operador da divisão é um caractere de barra. O resultado de uma divisão padrão é sempre uma flutuação, mesmo que o dividendo seja igualmente divisível pelo divisor Divisão de piso. A, a divisão B do andar é igual a três. O operador da divisão do piso é a barra dupla. O resultado da divisão do piso é o quociente em que A é dividido por B, arredondado para o próximo menor número inteiro Quando o resultado da divisão do piso é positivo, é como se a parte fracionária estivesse truncada, deixando apenas a parte inteira Quando o resultado é negativo, o resultado é arredondado para o próximo número inteiro negativo menor ou maior Módulo, A, módulo B é igual a um. O operador do módulo é o caractere percentual. O resultado do módulo é o resto quando A é dividido por B. A, expoente B é igual a 1.000. O operador da explicação é o duplo asterisco. O resultado da exponenciação é A elevado à potência de B. Em programação, o sinal de igual é conhecido como sinal de atribuição Isso significa que atribuímos o valor com base no lado direito do sinal de igual à variável à esquerda. Além disso, as afirmações A é igual a B e B é igual a A têm significados muito diferentes Por exemplo, abra o editor ocioso e digite o código a seguir Vamos executar o programa com F cinco ou para o menu. Temos que salvá-lo primeiro. E veja os resultados. A é igual a 20 e B é igual a 20. Embora A tenha um valor inicial de dez declarado na primeira linha, a terceira linha A é igual a B atribui o valor de B a A, alterando assim o valor de A para 20, enquanto o valor de B Crucial é a precedência dos operadores matemáticos. A ordem das operações dos operadores matemáticos do Python é semelhante à da matemática O operador expoente é avaliado primeiro. Os operadores de multiplicação, divisão, divisão por piso e módulo são avaliados a seguir, da esquerda para a direita Os operadores de adição e subtração são avaliados por último, também da esquerda para a direita Você pode usar parênteses para substituir a precedência usual, Vamos pular para o shell interativo para fazer alguns exemplos. O resultado é 13 porque a multiplicação é avaliada primeiro Agora vamos colocar cinco e dois entre parênteses. O resultado é 28. Como o parêntese tem os maiores precedentes, vamos explorar O resultado é três porque o parêntese tem a prioridade mais alta Então isso é igual a três, e isso é igual a cinco, e o resultado final Não se preocupe com a precedência dos operadores matemáticos. O trabalho do Python é avaliar partes da expressão. Se você tiver alguma dúvida sobre operadores básicos, pergunte. Eu ficarei mais do que feliz em ajudá-lo. Obrigado por assistir. 56. Operadores de comparação lógicos (booleanos) e em cadeia: Olá, pessoal, Whatsap? Neste vídeo, você aprenderá a usar os três operadores lógicos mais críticos em várias comparações de cadeias Então, vamos direto para a aula. Se você quiser comparar valores booleanos, há três operadores booleanos e ou e zero Os operadores lógicos not or and e modificam e unem expressões avaliadas no contexto booleano para criar condições mais complexas Aqui está a tabela que você também pode encontrar como um arquivo PDF. Vamos explicar esses operadores um por um. O operador and retorna verdadeiro se todas as condições forem atendidas. Caso contrário, ele retornará falso. Por exemplo, a afirmação três maiores que um e cinco maiores que quatro retornará verdadeira, pois ambas as condições são verdadeiras, mas três maiores que uma e cinco menores que quatro retornarão falsa pois uma das duas condições é falsa. O operador or retorna verdadeiro se pelo menos uma condição for atendida. Caso contrário, ele retornará falso. A afirmação três maior que um ou cinco menor que quatro retornará verdadeira, pois a primeira condição três maior que um é verdadeira. O operador não retorna verdadeiro se as condições após o t forem falsas, caso contrário, ele retornará falso. A afirmação não quatro maior que cinco retornará verdadeira, pois quatro não é maior que cinco. Portanto, o operador no simplesmente avalia o valor de Bolein oposto Um recurso interessante do Python é a capacidade de encadear várias comparações para realizar um Os operadores de comparação podem ser encadeados para serem arbitrários Por exemplo, digite cinco maior que três, maior que um e insira. É verdade porque o Python verifica primeiro se cinco é maior que três e depois se três é maior que um Vamos fazer outro exemplo com expressões booleanas que usam operadores de comparação no shell interativo Um a menos que três e três a menos que cinco. E entre. Isso é um erro de sintaxe Por quê? Porque eu digitei e em maiúsculas, o que está errado. Vamos alterá-lo e entrar novamente. É verdade porque ambas as condições dentro dos parênteses são Espero que você entenda os operadores booleanos. Faça seus exemplos em casa para compreendê-los totalmente. Obrigado por assistir, e nos vemos na próxima palestra. Tchau. 57. Erro de representação de ponto flutuante: Oi, todo mundo. Nesta lição, aprenderemos sobre o erro de representação, que afeta a precisão dos números de ponto flutuante em praticamente todas as linguagens de programação, incluindo Python Antes de explorar os números de ponto flutuante, é útil dar um passo atrás e pensar nos números de ponto fixo, que fornecem uma das maneiras mais simples de representar números reais em computadores A ideia por trás dos números de pontos fixos é alocar um número específico de dígitos para a peça inteira e a parte fracionária Portanto, o posicionamento do ponto decimal, bem como o número total de dígitos, são conhecidos de antemão e O maior problema com essa representação é sua ineficiência de armazenamento, que limita a faixa disponível de valores que você pode usar Observe quanto espaço permanece vazio preenchendo com zeros nesses exemplos Os números de ponto flutuante, por outro lado, podem se adaptar ao tamanho do número que representam. Na representação de ponto flutuante, o ponto decimal pode flutuar para a esquerda ou para a direita para acomodar vários tamanhos de números Dessa forma, você pode usar o espaço disponível com mais eficiência sem desperdiçar memória Números realmente grandes, como a velocidade da luz, geralmente não precisam de muita precisão. Portanto, provavelmente não há problema em alocar mais memória para os dígitos significativos ao trocar a parte fracionária Por outro lado, números menores, como o tamanho de um átomo, se beneficiarão com o aumento do número de dígitos fracionários flutuando o ponto decimal Contanto que você concorde com a negociação de precisão pela magnitude de um número e vice-versa, você poderá armazenar uma enorme variedade de números em uma quantidade relativamente pequena de memória. Quanto maior o número do ponto flutuante, menor é a precisão. Ao mesmo tempo, números menores tendem a ter maior precisão. Agora, você sabe que os números de ponto flutuante devem seu nome à forma como são representados na memória de um computador Eles são essencialmente notação científica no sistema binário com alguns detalhes adicionais, que os torna exponencialmente eficientes em termos Infelizmente, o preço dessa representação está perdendo a capacidade de expressar alguns números com exatidão, o que pode levar a resultados muito surpreendentes, como o que você pode ver no slide atual. Veja alguns exemplos no IDL. Quando você digita 0,1 mais 0,2 em Python, você obtém um resultado muito próximo do esperado, mas não exatamente correto A razão para um resultado tão estranho é porque os dois números que você está tentando somar não têm uma representação exata no tipo de dados de ponta flutuante, que é apenas uma aproximação dos números reais Por padrão, o Python mostra apenas os dígitos mais significativos de Para revelar os restantes, você pode formatar seu número solicitando, digamos, 100 dígitos decimais No entanto, o tipo de dados de fluxo mantém apenas cerca de 55 dígitos Se você solicitar mais dígitos , o Python preencherá o número com zeros à direita, pois não há Agora, de onde vêm todos esses dígitos aparentemente aleatórios Sem ser muito técnico, lembre-se de que os computadores mantêm todos os números no sistema binário usando apenas uns e zeros, em vez do sistema decimal com dez dígitos de 0 a Quando você converte um décimo ou dois décimos para o sistema binário , você acabará com uma string binária recorrente que se repete É um problema familiar que você também enfrentará no sistema decimal Quando você tenta representar um terço, por exemplo, o resultado é 0,3 recorrente porque os computadores não têm uma quantidade infinita de memória Em algum momento, eles só precisam cortar a string binária e arredondar os resultados para o valor representável mais próximo Por outro lado, contanto que você permaneça no reino do sistema binário, você poderá representar um número exatamente usando um tipo de dados de ponta flutuante Por exemplo, um quarto é uma potência de dois, então ele tem uma expansão binária finita O mesmo com a metade. Ao somá-los, você obterá um resultado exato sem erros de arredondamento Para reiterar, um número de ponto flutuante geralmente é apenas uma aproximação do número real, como a compressão com perdas em imagens JPEG, por em imagens JPEG Não se preocupe se isso estiver fazendo sua cabeça girar. Na maioria das aplicações de engenharia, o erro de representação de ponto flutuante permanece dentro dos limites aceitáveis e os resultados são satisfatórios No entanto, em cálculos científicos ou financeiros, o erro de arredondamento se torna perceptível Nesses casos, você deve examinar outros tipos numéricos, como o tipo decimal mencionado anteriormente neste curso Ok. Com isso resolvido, é hora de examinar mais de perto as funções matemáticas e os métodos numéricos em Python 58. Funções matemáticas e métodos numéricos: Nesta lição, você aprenderá sobre as funções mais comuns que permitem trabalhar com números em Python Você também descobrirá alguns comportamentos úteis exibidos por números inteiros e números de ponto flutuante Sem mais delongas, vamos direto ao assunto. A primeira função que você pode encontrar ao processar números em Python é Por padrão, ele usa um número de ponto flutuante e retorna o número inteiro mais próximo Por exemplo, passar 2.3 como argumento arredondará o número para baixo e retornará dois. Por outro lado, um número como 2,7 será arredondado. As coisas ficam mais inesperadas quando seu dígito termina em cinco. Isso é conhecido como empate porque a distância até o número inteiro mais próximo é exatamente a mesma, independentemente de você arredondar para cima ou para baixo. O Python segue uma estratégia em que empates como esse são resolvidos arredondando para o número par mais próximo Nesse caso, esse número é dois. No entanto, no caso de 3,5, o número par mais próximo é quatro. Essa é uma escolha projetada para minimizar o impacto que o arredondamento tem nas operações envolvem muitos números de ponto flutuante Outro fato interessante sobre a função redonda em Python é que você pode, opcionalmente, passar um segundo argumento para ela, especificando quantos dígitos decimais Por exemplo, se você tem uma aproximação de Pi, então você pode dizer arredondá-la com duas, três casas decimais Observe que você está obtendo um número de ponto flutuante como resultado desta vez porque cinco foi o último dígito neste exemplo Isso significa que há um empate. Em vez de arredondar para o número inteiro par mais próximo, no entanto, o Python examinará o último, exceto um dígito, para decidir sobre a exceto um dígito, para decidir sobre Nesse caso, dois é o número par mais próximo. No entanto, isso nem sempre funciona bem. Ao tentar arredondar um número como 2,675 para duas casas decimais, você espera obter 2,68 como resultado porque oito é o Mas quando você realmente executa esse código, você notará que o Python arredonda para baixo em vez Não é um bug na função redonda em si, mas sim o resultado desse erro de representação de ponto flutuante que você aprendeu na lição anterior. OK. A próxima função relacionada a números em Python que você pode querer usar é chamada abs, que é a abreviação de valor absoluto Ele pega um número e retorna seu tamanho sem o sinal. Por exemplo, o valor absoluto de 42 é 42. Ao mesmo tempo, o valor absoluto de -42 também é 42. Você pode chamar a função de aplicativos em números inteiros e números de ponto flutuante De qualquer forma, você sempre obterá o valor positivo de um número. No entanto, ao chamar a função ABS em um número complexo , você obterá a chamada magnitude de um número complexo, que é calculada usando a fórmula correspondente. Você examinará mais de perto os números complexos em uma das próximas aulas. Esses são os casos de uso mais importantes da função ABS em Python Finalmente, a terceira e última função que você aprenderá nesta lição é a função de potência. Ele fornece uma maneira mais explícita de elevar um número até a potência dada em comparação com o asterisco duplo ou operador exponencial que você A função power usa dois argumentos. A primeira é a base ou o número a ser elevado a uma potência. E o segundo argumento é o expoente ou a potência à qual o número deve ser elevado Assim como no operador exponencial, você pode usar expoentes e bases negativos ou fracionários Embora os dois métodos de cálculo da potência de um número em Python funcionem basicamente da mesma forma , a função power aceita um terceiro argumento opcional , desde que todos os três argumentos estejam É uma notação abreviada para o operador do módulo no resultado de uma potência Você pode escrever isso de forma mais compacta, passando o terceiro valor como argumento opcional Antes de encerrar a euforia, vale a pena mencionar que os números em Python expõem alguns métodos úteis, assim como as strings, dos quais você talvez se você talvez Por exemplo, você pode verificar se um número de ponto flutuante contém um valor inteiro sem parte fracionária chamando-o de método inteiro Observe, no entanto, que para chamar um método em Python, você precisa usar o operador ponto, que também é o ponto decimal em literais de ponto flutuante Para evitar essa ambigüidade, você pode colocar seu literal numérico Lembre-se de que um literal numérico sem ponto decimal representa um Como alternativa, se quiser ser mais explícito , você pode atribuir seu número a uma variável E chame o método na variável em vez do literal Nesse caso, 3,14 não é um número inteiro, mas três pontos oh Outro método útil disponível em flutuadores é a proporção de números inteiros Que retorna um par de números inteiros cuja proporção é exatamente igual à flutuação original Nesse caso, os números são bem grandes, mas você pode tentar algo mais ou menos três quartos para obter uma proporção composta por números menores Os números inteiros também têm alguns métodos úteis. Quais deles podem dizer quantos bits você precisa para representar um número no sistema binário. Por exemplo, uma string que consiste em dígitos binários 10, um, zero, 10 representa o número decimal 42 Portanto, você precisa de pelo menos seis bits para expressar fielmente o mesmo número no sistema binário Você pode confirmar isso chamando o método de comprimento de bits no número 42. Há também um método de contagem de bits com nome semelhante, que informa quantos desses bits estão realmente ativados. A cadeia de bits original tem três unidades e 30, então o valor de retorno é três. Para recapitular o que você acabou de aprender, Python vem com algumas funções matemáticas integradas para trabalhar com Ele tem a função redonda, que arredonda um número de ponto flutuante para o número inteiro mais próximo ou até as casas decimais fornecidas, que você não pode especificar como o segundo argumento da Os empates são resolvidos arredondando para o número par mais próximo, mas os erros de representação do ponto flutuante às vezes interferem na direção de arredondamento esperada A função AB retorna um valor absoluto de um número ou a magnitude de um número complexo. A função power executa basicamente a mesma operação matemática que o operador de exponenciação em Python, mas também fornece uma notação abreviada para calcular Você também aprenderá que os números de ponto flutuante em Python expõem alguns métodos, como o método inteiro I, que verifica se o valor é um número inteiro A proporção como número inteiro, por outro lado, retorna um par de números inteiros cuja proporção é igual ao número de ponto flutuante Os números inteiros também têm seus métodos. Por exemplo, você pode dizer quantos bits você precisa para representá-los no sistema binário ou quantos desses bits estão acesos. seguir, você aprenderá como formatar números como sequências de caracteres quando quiser exibi-los junto com outro texto para o usuário 59. Números formatados como cadeias: Nesta lição, você aprenderá a imprimir números com estilo. Muitas vezes, você vai querer combinar seus números com algum texto adicional antes de apresentá-lo ao usuário. Por exemplo, talvez você queira inserir o preço de um produto em um espaço reservado embelezado em uma Tradicionalmente, existem muitas maneiras de formatar números em Python Por exemplo, você pode chamar a função de formato, que você já viu neste curso, para revelar os dígitos decimais de um número de ponto flutuante No entanto, a maioria dos programadores hoje usa literais de string formatados do Python ou strings F, que parecem mais simples Você pode criar uma string formatada prefixando sua string literal normal com uma letra maiúscula ou minúscula F. Na maioria das vezes, ela funcionará como uma string normal, para que você com uma letra maiúscula ou minúscula F. Na maioria das vezes, ela funcionará como uma string normal, para que você possa digitar sua mensagem lá. Por exemplo, esse produto custa $3,90. No entanto, diferentemente de uma string normal, uma string F permite que você especifique adicionalmente um ou mais espaços reservados de valor a serem preenchidos posteriormente Digamos que você queira reduzir sua mensagem em muitos produtos com preços diferentes. Você pode declarar uma variável auxiliar com preço de um produto e, em seguida, substituir o valor concreto em sua string F por um espaço reservado usando os colchetes e inserindo o inserindo Funcionou bem. Observe, no entanto, que o zero final no preço do produto foi consumido. Felizmente, essas chaves curvas oferecem suporte a uma linguagem de formatação simples que você pode usar para alterar a aparência do valor na string formatada final Por exemplo, para mostrar o preço usando exatamente duas casas decimais, você pode adicionar um especificador de formato opcional em seu Os dois pontos separam uma expressão a ser avaliada, como uma variável, do especificador de formato Nesse caso, o especificador é 0,2 F, que arredonda os números para duas casas decimais A letra F diz ao Python que exiba o preço como um número de ponto fixo Se o preço aumentar, você poderá inserir vírgulas para agrupar a parte inteira do número maior em milhares Outro recurso útil das strings formatadas em Python é a capacidade de formatar números Por exemplo, se você tiver um número fracionário como 0,91 23, poderá fazer com que o Python o mostre automaticamente como uma porcentagem arredondada para o número solicitado Y A minilinguagem de formatação é poderosa e extensa Embora você tenha visto apenas o básico até agora, aqui estão mais alguns exemplos Você pode parar o vídeo agora e dar uma olhada neles ou verificar os slides em PDF que o acompanham posteriormente Tudo bem. Na próxima lição, você revisitará números complexos em Python Mas antes disso, vamos fazer um exercício para entender completamente a lição. 60. EXERCÍCIO: mostre uma porcentagem: Você está quase na linha de chegada quando se trata de formatar números em Python Neste exercício final, você formatará uma fração decimal como uma porcentagem sem casas decimais . Você tem isso. Eu tenho fé em você. 61. SOLUÇÃO: mostrar uma porcentagem: Ao dividir dois por dez, você obtém um número de ponto flutuante com um dígito decimal Você pode formatar isso como uma porcentagem usando o seno percentual como especificação de formato Se você está acompanhando , pode adivinhar como solicitar zero casas decimais Isso mesmo. Você acrescenta a.in zero ao seno Você pode usar a mesma sintaxe em um literal de string F para obter uma sintaxe mais compacta Ok. Bem, esse exercício não foi muito difícil, é hora de passar para outra seção deste curso na qual você interagirá com o usuário. Obrigado por assistir. 62. Números complexos: Tudo bem. Nesta lição, você abordará algumas noções básicas sobre como trabalhar com números complexos em Python. Então, vamos mergulhar. Como os números complexos raramente são usados fora dos domínios da computação científica e da computação gráfica, eles foram mencionados apenas brevemente nesta seção Ao mesmo tempo, fique à vontade para pular esta lição se não tiver interesse em trabalhar com números complexos Python é uma das poucas linguagens de programação que fornece suporte nativo para números complexos Você pode pensar em um número complexo como um par que consiste na parte real e na parte imaginária Há duas maneiras de criar números complexos em Python. Você pode chamar a função complexa incorporada com essas duas partes passadas como argumentos ou usar uma sintaxe especial para definir um literal numérico complexo Observe a letra J ao lado do segundo número, que indica a chamada unidade imaginária Os matemáticos geralmente usam a letra I para denotar uma unidade imaginária, mas o Python segue uma notação usada pelos engenheiros para evitar confundi-la com uma notação usada pelos engenheiros para evitar confundi-la letra L minúscula ou com um dígito I para denotar uma unidade imaginária, mas o Python segue uma notação usada pelos engenheiros para evitar confundi-la com uma letra L minúscula ou com um dígito que possa aparecer em seu código. Quando você descarta a unidade imaginária , seu número complexo literal se torna apenas uma expressão aritmética regular, se torna apenas uma expressão aritmética regular, que soma dois números. Você pode colocar a unidade imaginária em qualquer um desses dois números em um literal de número complexo para indicar que é a parte Quando você tem apenas os números imaginários em seu literal, Python os adiciona e cria um número complexo sem Mas ainda é um número complexo. Normalmente, você atribuiria um número complexo a uma variável como Z. Usar a letra Z para um número complexo é uma convenção histórica que remonta a Carl Friedrich Assim como números inteiros e números de ponto flutuante, os números complexos têm alguns atributos e métodos interessantes em Python Por exemplo, você pode obter os componentes reais e imaginários de um número complexo usando seus atributos reais e imaginários Observe que as partes reais e imaginárias são armazenadas como números de ponto flutuante, mesmo quando você define um número complexo em termos de números inteiros Você também pode calcular o conjugado de um número complexo chamando seu método conjugado Um conjugado inverte o sinal da unidade imaginária. Na verdade, todos os números em Python, incluindo números inteiros e números de ponto flutuante, têm os atributos real e de imagem bem como o Isso não é surpreendente do ponto de vista matemático porque os números complexos são um superconjunto de números reais Para ins e floats, o atributo real e o método conjugado retornarão o número em si, enquanto o atributo de imagem sempre será zero Os números complexos oferecem suporte a todos os operadores aritméticos que você aprendeu, exceto a divisão de números inteiros e o Caso contrário, você pode adicionar dois números complexos. Você pode subtraí-los. Multiplique. E divida-os ou eleve um a um poder. Mas você não pode usar a divisão de piso. Você também não pode calcular o restante de uma divisão, que é definida apenas para números inteiros Resumindo, você pode definir um número complexo usando a função complexa incorporada ou o número complexo literal com a letra J colada na parte imaginária Você também pode acessar seus números complexos, atributos e métodos para obter a parte real, a parte imaginária e calcular o conjugado 63. O operador restante (% módulo): Em Python, o símbolo de porcentagem é o operador restante Isso é conhecido como operador de módulo. O operador restante realiza a divisão, mas em vez de retornar o quociente, ele retorna A declaração a seguir atribui dois às sobras. Vamos digitar que sobra é igual a 17. Digite o símbolo perfeito, três. Agora vamos imprimir a variável restante. Se eu executar o código, o resultado será dois. Essa declaração atribui dois ao restante porque 17/3 é cinco com O operador restante é útil em determinadas situações. É comumente usado em cálculos que convertem tempos ou distâncias, detectam números pares ou ímpares e realizam outras operações especializadas Para entender melhor o operador restante, criaremos um programa que obtém o número de segundos do usuário e o converte no número de segundos em uma hora, minuto e Por exemplo, ele converteria 11.730 segundos em 3 horas, 15 minutos e 30 E aqui está a saída do programa que vamos criar. Agora é hora de pausar o vídeo e tentar. Tudo bem, como você se saiu? Eu realmente espero que você tenha tentado isso. Vamos fazer o exercício juntos e escrever o código. Antes de tudo, vou escrever alguns comentários. Os comentários são uma parte importante da programação. Eles permitem que você, o programador, explique cada parte do que seu código faz Na próxima linha, criarei uma variável chamada Total de segundos. Quero receber alguns segundos do usuário. Converte o valor em um valor flutuante. Em seguida, atribui isso à variável total de segundos. Vou deixar uma linha vazia e, na linha quatro, adicionarei um comentário. Obtenha o número de horas. Entrar. Tenho um total de segundos do usuário e quero convertê-los em horas. Vamos nomear as horas variáveis. Há 3.600 segundos em uma hora. Portanto, essa declaração divide o total de segundos por 3.600. Observe que usamos o operador de divisão de números inteiros. Isso ocorre porque queremos o número de horas sem parte fracionária. Agora é um ótimo momento para obter o número de minutos restantes. Vou usar a variável minutos. Primeiro, usarei o operador de divisão de números inteiros para dividir o total de segundos por 60 Isso nos dá o número total de minutos. Em seguida, usarei o operador de módulo para dividir o número total de minutos por 60 e obter o restante da O resultado é o número de minutos restantes. A próxima etapa é obter o número de segundos restantes. Vamos nomear a variável segundos. Há 60 segundos em um minuto. Portanto, nesta declaração, usarei o operador de módulo para dividir o total de segundos por 60 e obter o restante da O resultado é o número de segundos restantes. A última etapa é exibir os resultados usando a declaração impressa. R Primeiro, vou imprimir as horas. Depois, os minutos. Por último, vou imprimir o segundo. Agora é hora de executar o código. O Python está esperando que o usuário insira os segundos que deseja converter Vou digitar 11.730 segundos. Eles são os mesmos com a saída. Dessa forma, fica mais fácil comparar a resposta. Funciona muito bem. Espero que você tenha entendido a importância do operador restante Se você tiver dúvidas, por favor me avise. Obrigado por assistir. 64. Leitura de números com a função de entrada: A função de entrada sempre retorna a entrada do usuário como uma string, mesmo que o usuário insira dados numéricos Por exemplo, suponha que você chame a função de entrada. Digite o número 72 e pressione a tecla enter. O valor retornado de uma função de entrada é a string 72. Isso pode ser um problema se você quiser usar o valor em uma operação matemática. As operações matemáticas só podem ser executadas em valores numéricos, não em cadeias de caracteres Felizmente, o Python tem funções integradas que você pode usar para converter uma string em um tipo numérico Essas duas funções são INT e float. Por exemplo, suponha que você esteja escrevendo um programa de folha de pagamento e queira obter o número de horas que o usuário trabalhou Veja o código a seguir. A primeira instrução obtém o número de horas do usuário e atribui esse valor como uma string à variável de valor da string A segunda instrução chama a função INT passando o valor da string como argumento. O valor referenciado pelo valor da string é convertido em INT e atribuído à variável hours Este exemplo ilustra como a função INT funciona, mas é ineficiente porque cria duas variáveis Um para conter a string que é retornada da função de entrada e outro para conter o inteiro que é retornado da função INT O código a seguir mostra uma abordagem melhor. Essa única instrução faz todo o trabalho que as duas instruções mostradas anteriormente fazem e cria apenas uma variável. Essa instrução usa chamadas de função aninhadas. O valor retornado para a função de saída é passado como argumento para a função INT. É assim que funciona. Ele chama a função de entrada para obter um valor inserido no teclado. O valor retornado da função de entrada, uma string, é passado como argumento para a função INT. O valor INT retornado da função INT é atribuído à variável hours. Depois que essa instrução é executada, a variável hours é atribuída ao valor inserido no teclado convertido em INT Vamos ver outro exemplo. Suponha que você queira obter a taxa de pagamento por hora do usuário. A declaração a seguir solicita os usuários insiram esse valor com o teclado, converta o valor em um valor flutuante e o atribua à variável da taxa I É assim que funciona. Ele chama a função de entrada para obter um valor inserido no teclado. O valor retornado da função de entrada, uma string, é passado como argumento para a função float O valor flutuante retornado da função flutuante é atribuído à variável de taxa de pagamento Depois que essa instrução é executada, a variável da taxa de pagamento é atribuída ao valor inserido no teclado convertido em flutuante Para entender melhor tudo isso, vamos fazer um exercício. Suponha que você queira escrever um programa que solicite que o usuário insira seu nome, idade e renda e, em seguida, exiba o valor inserido pelo usuário. Aqui está a saída do programa. Pause o vídeo agora e conclua este desafio. Tudo bem, como você se saiu? Eu realmente espero que você tenha tentado isso. Vamos fazer o exercício juntos e escrever o código. Vamos adicionar primeiro a linha de comentários. A linha dois solicita que o usuário insira seu nome. O valor inserido é atribuído como uma string à variável do nome. A linha três solicita que o usuário insira sua idade. O valor inserido é convertido em INT e atribuído à variável idade. A linha quatro solicita que o usuário insira sua renda. O valor inserido é convertido em um valor flutuante e atribuído à variável de renda Vamos deixar uma linha em branco e adicionar um comentário na linha seis. Na linha sete, exibimos a mensagem. Aqui estão os dados que você insere. A linha oito exibe o nome que o usuário inseriu. A linha nove exibe a idade que o usuário inseriu. A linha dez exibe a renda que o usuário inseriu. Sim. As funções INT e float só funcionam se o item que está sendo convertido contiver um valor numérico válido Se o argumento não puder ser convertido para o tipo de dados específico, ocorrerá um erro conhecido como exceção. Uma exceção é um erro inesperado que ocorre enquanto o programa está em execução, fazendo com que o programa seja interrompido se o erro não for tratado adequadamente Por exemplo, execute o programa e insira XYZ como idade. Aqui está o erro conhecido como exceção. Espero que você tenha entendido como ler números por meio da função de entrada. Obrigado por assistir. 65. Números e matemática (resumo): Bem-vindos de volta, pessoal. Nesta seção, você aprendeu tudo sobre como trabalhar com números em Python Você viu que existem dois tipos básicos de números, números inteiros e números de ponto flutuante, e que o Python também tem suporte embutido para números e que o Python também tem suporte embutido para Primeiro, você viu como fazer aritmética básica com números usando os operadores de multiplicação mais menos, divisão e divisão Você aprende a escrever expressões aritméticas e as melhores práticas no PEP oito para formatar expressões aritméticas em formatar expressões aritméticas Depois, você aprende sobre números de ponto flutuante e como eles nem sempre são 100% precisos. Essa limitação não tem nada a ver com o Python. É um fato da computação moderna relacionado à forma como os números de ponto flutuante são armazenados na memória de um computador. seguir, você viu como arredondar números para uma determinada casa decimal com e aprendeu que arredondar arredondar arredondar números empatados com pares, que é diferente da forma como a maioria das pessoas aprende a arredondar números na escola Você também viu várias maneiras de formatar números para exibição. Por fim, você aprendeu sobre o suporte integrado do Python para números complexos e fizemos vários exercícios para entender completamente os tópicos Eu quero te agradecer por assistir, e te vejo na próxima. 66. DESAFIO: contabilizando uma porcentagem: Se você estiver escrevendo um programa que funciona com a porcentagem, você terá que se certificar de que a porcentagem de um ponto decimal está no local correto antes fazer qualquer matemática com a porcentagem Isso é especialmente verdadeiro quando o usuário insere uma porcentagem como entrada. A maioria dos usuários insere o número 50 para significar 50%, 20 para significar 20% e assim por diante. Antes de realizar qualquer cálculo com essa porcentagem, você precisa defini-la em 100 para mover sua casa decimal de 0,2 casas para a esquerda Vamos percorrer o processo de escrever um programa que calcula uma porcentagem Suponha que uma empresa de varejo esteja planejando fazer uma venda em toda a loja, onde todos os preços dos itens terão 20% de desconto. Preciso pedir para escrever um programa para calcular o preço de venda de um item após a subtração do item Aqui está o algoritmo. Primeiro, obtenha o preço original do item. Dois, calcule 20% do preço original. Esse é o valor do desconto. Três, subtraia o desconto do preço original. Esse é o preço de venda. Quatro, mostre o preço de venda. Lembre-se de que a saída deve corresponder com precisão à saída do exemplo E quando você clica em Executar, esse é o resultado que você está procurando. Agora é hora de pausar o vídeo e tentar. Tudo bem, como você se saiu? Eu realmente espero que você tenha tentado isso. Vamos fazer o exercício juntos e escrever o código. Na primeira etapa, obtemos o preço original do item. Solicitaremos que o usuário insira seus dados no teclado. Em nosso programa, usaremos a seguinte declaração para fazer isso. Observe que o valor inserido pelo usuário será armazenado em uma variável chamada preço original. A na segunda etapa, calculamos o valor do desconto. Para fazer isso, multiplicamos o preço original por 20%. A instrução a seguir executa esse cálculo e atribui o resultado à variável de desconto Na etapa três, subtraímos o desconto do preço original A declaração a seguir faz esse cálculo e armazena o resultado em uma variável de preço de venda. Por fim, na etapa quatro, usaremos a seguinte declaração para exibir o preço de venda. Execute o programa e vamos colocar um preço de venda original aleatório. E aqui está o preço de venda com 20% de desconto. Ótimo. Espero que você tenha conseguido criar o programa sozinho. Se você tiver alguma dúvida, me avise. Tchau. 67. DESAFIO: contabilizando uma média: Determinar a média dos grupos de valores é um cálculo simples. Adicione todos os valores e divida a soma pelo número de valores. Embora esse seja um cálculo simples, é fácil cometer um erro ao escrever um programa que calcula uma Por exemplo, vamos supor que as variáveis A, B e C tenham um valor e queremos calcular a média desses valores. Se formos descuidados, podemos escrever uma declaração como a seguinte para realizar o cálculo Você consegue ver o erro nessa declaração? Quando for executada, a divisão ocorrerá primeiro. O valor em C será dividido por três. Em seguida, o resultado será adicionado a A mais B. Essa não é a maneira correta de calcular uma média. Para corrigir esse erro, precisamos colocar parênteses em torno mais B mais C, conforme Vamos percorrer o processo de escrever um programa que calcula uma média Suponha que você tenha feito três testes em sua aula de ciência da computação e queira um programa que exiba a média das pontuações dos testes. Aqui está o algoritmo. Um, obtenha a primeira pontuação do teste, dois, obtenha a pontuação do segundo teste, três, obtenha a pontuação do terceiro teste. Quatro, calcule a média adicionando as três pontuações dos testes e dividindo a soma por três Exiba a média. Lembre-se de que a saída deve corresponder com precisão à saída da tela E quando você clicar em Executar, esse será o resultado que você está procurando. Agora é hora de pausar o vídeo e tentar. Tudo bem, como você se saiu? Eu realmente espero que você tenha tentado isso. Vamos fazer o exercício juntos e escrever o código. Vamos adicionar primeiro alguns comentários. Nas etapas um, dois e três, solicitaremos que o usuário insira três pontuações do teste. Armazenaremos essas pontuações dos testes nas variáveis Teste um. Teste dois. No teste três. Na etapa quatro, calcularemos a média das pontuações dos três testes. Usaríamos a seguinte declaração para realizar o cálculo e armazenar o resultado na variável média. Por último, na etapa cinco, exibimos a média. Execute o programa. Insira a primeira pontuação do teste, por exemplo, 90. Insira a pontuação do segundo teste, por exemplo, 80, insira a pontuação do terceiro teste, por exemplo, 100. A pontuação média é 90. Espero que você tenha entendido como a média funciona em Python. Obrigado por assistir, e nos vemos na próxima lição. 68. DESAFIO: como converter uma fórmula matemática para uma declaração de programação: Suponha que você queira depositar uma certa quantia em dinheiro em uma conta poupança e deixá-la sozinha para atrair juros pelos próximos dez anos. Ao final de dez anos, você gostaria de ter $10.000 em sua conta Quanto você precisa depositar hoje para que isso aconteça? Você pode usar a seguinte fórmula para descobrir. Os termos na fórmula são os seguintes. P é o futuro presente ou o valor que você precisará depositar hoje. F é o valor futuro do que você deseja na conta. Nesse caso, F é $10.000. R é a taxa de juros anual. E é o número de anos que você precisa planejar para deixar o dinheiro na conta. Seria conveniente escrever um programa de computador para realizar esse cálculo, pois assim podemos experimentar valores diferentes para as variáveis. Aqui está um algoritmo que podemos usar. Um, obtenha o valor futuro desejado, dois, obtenha a taxa de juros anual. Três, obtenha o número de anos que o dinheiro ficará na conta. Quatro, calcule o valor que deverá ser depositado Cinco, exiba o resultado do cálculo na etapa quatro. Agora é hora de pausar o vídeo e tentar. Tudo bem, como você se saiu? Eu realmente espero que você tenha tentado isso. Vamos fazer o exercício juntos e escrever o código. Antes de tudo, vou escrever alguns comentários. Na próxima linha, criarei uma variável chamada valor futuro. Quero obter o valor futuro desejado do usuário. Converte o valor um float e o atribui à variável de valor futuro. Deixo uma linha vazia e na linha quatro, adicionarei um comentário. Obtenha a taxa de juros anual, insira. Na próxima linha, criarei uma variável chamada taxa. Quero obter a taxa de juros anual do usuário. Converte o valor em um valor flutuante e, em seguida, o transfere para a variável de taxa Vou deixar uma linha vazia. Agora vamos adicionar um comentário. Em seguida, criarei uma variável chamada anos. Em seguida, criarei uma variável chamada anos. Converta-o em um número inteiro e pergunte ao usuário por quantos anos o dinheiro crescerá Agora, começou a converter a fórmula em uma linha de código. Calcular o valor necessário para depositar. Então, o valor presente é igual ao valor futuro. Dividido por 100% mais a taxa de juros anual. Tudo isso com o poder dos anos. A última etapa que precisamos é o valor na variável de valor presente. Agora é hora de executar o código. O Python está esperando o usuário insira o valor futuro desejado. Vamos digitar 10.000. Em seguida, vou inserir a taxa de juros anual. Vamos digitar 0,05, que é 5%. Finalmente, vou inserir o número de anos, digitar dez anos. E o resultado é esse. Você precisará depositar o valor de $6.139 e muitos números decimais. Funciona muito bem. Espero que você tenha entendido como converter uma fórmula matemática em uma declaração de programação. Se você tiver dúvidas, por favor me avise. Obrigado por assistir. 69. Datas e horários: Datas e horas são itens com os quais a maioria das pessoas trabalhou bastante. Fazemos compromissos em eventos planejados para datas e horários específicos. A maior parte do nosso dia gira em torno do relógio. Portanto, é uma boa ideia analisar como o Python lida com a interação com datas e hora, especialmente armazenando esses valores para uso posterior. Como acontece com tudo o resto, os computadores entendem apenas números. A data e a hora não existem. Trabalhando com datas e horas como um dos maiores desafios na programação entre lidar com fusos horários, horário de verão e diferentes formatos de data escrita, pode ser difícil acompanhar quais dias e horários você está referenciando. Felizmente, o módulo de datetime Python integrado pode ajudá-lo a gerenciar a natureza complexa de datas e horas. Tecnicamente, este ato é chamado de importação de um pacote. E você aprenderá mais sobre isso nas próximas lições. Para obter a hora atual, você pode simplesmente digitar data importante, hora, data, ponto de hora, ponto de data/hora. Agora, você vê as informações de data e hora completas são encontradas no relógio do seu computador. Você deve ter notado que a data e a hora são um pouco difíceis de ler no formato existente. Vendo que você deseja apenas obter a data atual usando o comando string em um tipo de formato legível. Agora está muito melhor. Datetime fornece três classes que compõem a interface de alto nível que a maioria das pessoas usará. Data e hora. Data é uma data idealizada que assume que o calendário gregoriano se estende infinitamente para o futuro e passado. Este objeto armazena o ano, mês e dia como atributos. Datetime, não hora é uma hora idealizada que garante que há 86.400 segundos por dia sem segundos bissextos. Este objeto armazena a hora, minuto segundo microssegundo e z info, informações de fuso horário. Datetime dot datetime é uma combinação de data e hora. Ele tem todos os atributos de ambas as classes. Primeiro de tudo, você tem que importar as três classes principais de DateTime usando o seguinte código. Agora você pode usar alguns métodos para criar instâncias diurnas. Há dois métodos que não exigem que você use inteiros para especificar cada atributo, mas permitem que você use algumas outras informações. O dia-a-dia cria uma instância de data de ponto de data e hora com a data local atual. ponto de data e hora agora cria uma instância diurna de ponto de data e hora com a data e hora locais atuais. Vamos dar uma olhada em alguns exemplos. Vou usar o ponto de data hoje e ponto de data-hora agora para criar instâncias de data, datetime e objetos de hora, cada instância é armazenada em uma variável diferente. Hoje é uma instância de data que tem apenas o ano, mês e dia. Agora é uma instância de data/hora que tem o ano, mês, dia, hora, minuto, segundo e microssegundos. Como você pode ver, trabalhar com as datas e horários e programação pode ser complicado. Felizmente, você raramente precisa implementar recursos complicados do zero nos dias de hoje, já que muitas bibliotecas de código aberto estão disponíveis para ajudar. Este é definitivamente o caso em Python, que inclui três módulos separados na biblioteca padrão para trabalhar com datas e horas. Saídas de calendário, calendários e fornece funções usando um calendário gregoriano idealizado. Datetime fornece classes para manipular datas e horas. O tempo fornece funções relacionadas ao tempo em que as datas não são necessárias. Com o comando time que você pode usar para obter a hora atual, você pode obter valores diferentes para cada um dos componentes que compõem a data e hora usando os valores de dia, mês, ano, hora, minuto, mês, ano, hora, minuto, segundo e microssegundos. Mas está fora do escopo desta lição. Você aprendeu o conceito fundamental em torno de data e hora. É hora de você aplicar seu novo conhecimento encontrado nas aplicações do mundo real. Obrigado por assistir. 70. O que é uma lista: Olá a todos, este é Andreas, e nesta palestra você vai aprender o que são listas e como começar a trabalhar com o elemento em uma lista. Listas são um dos recursos mais poderosos do Python que permitem armazenar conjuntos de informações em um só lugar. Então, o que é a lista? Uma lista é uma coleção de itens em uma ordem específica. Você pode fazer uma lista que inclui as letras do alfabeto, os dígitos de 0 a nove, Nomes , cores, o que você quiser. Você pode colocar qualquer coisa em uma lista. As listas contêm objetos complexos, como funções ou classes ou até mesmo módulos. Os itens em sua lista não precisam estar relacionados de nenhuma maneira específica. Além disso, uma lista geralmente contém mais de um elemento. Os colchetes Python indicam uma lista em elementos individuais na lista são separados por vírgulas. Vamos fazer um exemplo. Abra o editor e comece a digitar. Faremos uma lista. Vamos nomear produtos Apple com quatro elementos. Agora vamos imprimir a lista. Python retorna sua representação da lista incluindo colchetes. Você também pode declarar uma lista sem atribuir nenhum valor inicial a ela. Você pode digitar produtos Apple é igual a dois colchetes. Esta é uma lista vazia sem itens nela. Você tem que usar o método append para adicionar itens à lista. Vamos aprender sobre o método append mais tarde. Os elementos da lista podem ser acessados por um índice. Para fazer isso, você nomeia a lista e, em seguida, dentro de um par de colchetes, você usa um número de índice, como o que eu estou mostrando aqui, que permite o acesso a elementos individuais dentro da lista. A indexação para essa lista é baseada em 0. Então, se você tem uma lista como esta com esses seis elementos, os índices começam com 0 e vamos até cinco. Por exemplo, bem no shell. O resultado é iPhone porque 0 é o primeiro valor da lista. Agora digite. E o resultado é o iCloud porque o índice três é o quarto valor da lista. Se você tentar acessar o índice que está além do escopo, você obterá o índice fora do intervalo. Além disso, o corte também está disponível para. Slicing é uma sintaxe de indexação que vai exatar uma parte da sua lista. Então, neste exemplo, se a é a sua lista do que dentro dos colchetes, você terá que indexar números separados por dois pontos, e ele vai retornar uma parte dessa lista que vamos começar com a posição m e ir até, mas não incluindo o índice n usando o mesmo exemplo de antes. E se você pegar um 225, você tem três objetos no meio, começando no índice dois e subindo para o índice quatro, mas não incluindo cinco. Uma abreviação está disponível omitindo o primeiro índice. Sua fatia vai começar no início da lista e subir para o segundo índice. Se você omitir o último índice, ele vai estender os slides do primeiro índice e ir até o final da lista. E se você omitir ambos os índices, ele retornará uma cópia da lista inteira. E ao contrário de uma string, é uma cópia, não uma referência ao mesmo objeto. É possível adicionar um terceiro índice após dois pontos adicionais. Esse terceiro índice indica um passo, mas às vezes também é chamado de selo. Então, neste exemplo, se você adicionar uma fatia que passou de 0 a seis com uma etapa de dois, você retornaria o objeto no índice 024. Alternativamente, você pode acessar os valores de uma lista na parte de trás. O último item desta lista tem um índice de menos um. O segundo último tem um índice de menos dois e assim por diante. Certo? E o Python responde iCloud porque este é o último item. Além disso, você pode atribuir uma lista ou parte dela a um tipo de variável. Assim, os produtos variáveis se tornam iPhone, iPad, Mac Air, iCloud. Agora, se você digitar, o resultado é iPad vírgula MAC air, porque você atribui itens com o índice um para indexar três menos um. A notação de um a três também é conhecida como uma fatia. Sempre que usamos uma notação de fatia em Python, o item no início do índice é sempre incluído, mas o item no final é sempre excluído. Em outras palavras, a notação 1-2-3 refere-se aos itens do índice dois, índice quatro menos um, que é o índice três. Há também uma notação de fatia mais complexa que inclui um terceiro número conhecido como stepper, mas vamos ignorá-lo por enquanto. Uma função importante é acrescentar se você quiser adicionar itens a uma lista, por exemplo, com essa linha de código, você pode adicionar o valor iPod ao final da lista, imprimir a lista e ver o resultado. Se você quiser remover itens de uma lista, você usará a instrução delete. Suponha que você deseja excluir o item iPad, que está na posição um. Tipo. Insira um iPad não existe. Listas são cruciais na programação Python. É um recurso em Python que vamos ver várias vezes. E é crucial se você estiver indo para criar programas e projetos em Python. Na próxima palestra, vamos nos aprofundar nas listas. Se precisar de algo para pedir, ficarei mais do que feliz em ajudá-lo. Obrigado por assistir. 71. Trabalhando com listas: Olá a todos. Hoje vamos continuar a trabalhar com listas. Então vamos ver mais algumas funções. Quando você trabalha com uma lista. Se você quiser combinar duas listas, você usará a função estendida, abra o editor e escreva o seguinte programa. Executa e olha para a nova lista. Ótimo. Para entender melhor como ele funciona, vamos copiar o código do programa e colá-lo em Python Tutor.com. Clique em Iniciar, visualize seu código agora. E é como a versão 3 do Python. Cole o código e clique no botão e visualize a execução. Olhando todo o trabalho passo a passo. Se eu pressionar o botão de avanço, vou passar para a próxima etapa e ver a saída do lado direito. A primeira linha cria os produtos Apple uma lista com três elementos dentro do iPhone, iPad e iPod com índice 012. Pressionar o botão de avanço executa a segunda linha de código. Ele cria os produtos Apple para listar com três elementos, iCloud, iOS e Air Mac com índice 012 executando a terceira linha, produtos Apple um é estendido com produtos Apple para listar componentes. Então, se eu imprimir a lista um, a saída será esses seis componentes. Muito direto para a frente, certo? Feche o site. Ok? Agora suponha que você queira verificar se um item está em um tipo de lista. Falso, é claro, o escritório não está na lista. Verdade, iOS é n, a lista. Para adicionar um item a uma posição particular, vamos usar a função de inserção. Vamos fazer um exemplo, adicionando escritório dentro dos produtos Apple uma lista. Dois é o número do índice, digite e imprima a lista novamente. Muito agradável. Remover função, remove um item da lista, requer o valor de um item como o parâmetro. Vamos fazer um exemplo. Digite e digite, imprima um Air Mac foram removidos da lista. Finalmente, se você quiser classificar uma lista em ordem alfabética ou numérica, você usará o tipo de função de classificação. E temos uma lista ordenada. Claro que não é a melhor lista para entender se está ordenado ou não. Por favor, pratique essas funções e se você tiver alguma dúvida, por favor me avise. Obrigado por assistir e eu vou vê-lo na próxima lição sobre como fazer listas numéricas. 72. Criação de listas numerais: Bem-vindo a esta lição e obrigado por ter feito isso até agora. Agora vamos passar para como fazer listas numéricas. Listas são ideais para classificar conjuntos de números em Python fornece várias ferramentas para ajudá-lo a trabalhar eficazmente com listas de números. Depois de entender como usar essas ferramentas de forma eficaz, seu código funcionará bem. Não se esqueça de que, para armazenar um conjunto de números, temos muitos aplicativos, desde manter o controle das altas pontuações de um jogador até armazenar temperaturas, populações, etc. função de intervalo do Python é benéfica e facilita a geração de uma série de números. A função de intervalo gera uma lista de números e tem o início do intervalo de sintaxe e o instep. Se você quiser fazer uma lista de números, você pode converter os resultados do intervalo diretamente em uma lista usando a função lista. Quando você quebra uma lista em torno de uma chamada para a função de intervalo, a saída será uma lista de números. Vamos fazer um exemplo. Abra o editor e digite. Execute o programa. A nova lista de um a nove aparece na tela. Observe que se a etapa não for dada, uma lista de números consecutivos será gerada como a lista acima, o valor final deve ser fornecido. No entanto, uma coisa estranha sobre a função de intervalo é que dado n valor nunca é parte da lista gerada. Para imprimir os números de um a dez, você deve usar o intervalo um vírgula 11. Aprenderemos como combinar funções de loop com intervalo e criar listas mais complicadas em palestras posteriores, como uma lista dos dez primeiros números quadrados. Obrigado por assistir. 73. Listas de impressão: Python fornece muitas maneiras de produzir informações. Vamos ver apenas alguns dos métodos mais básicos para listas de saída. Leve o seguinte código para o editor. Aqui eu tentei listar com quatro empresas de carro dentro. Agora vamos imprimir a lista. Este exemplo usa o operador splat. É o símbolo do asteróide, também chamado de operador de expansão posicional, e uma variedade de outros termos interessantes para descompactar a lista e enviar cada elemento para o método de impressão um item de cada vez. O argumento sep nos diz como separar cada uma das saídas impressas, dependendo de um novo caractere de linha. Nesse caso, execute o código e veja o resultado. Python produz a lista um item de cada vez. Agora remova a linha de impressão e adicione a seguinte linha no código. Esta linha de código leva duas linhas de código e coloca-o em apenas uma única linha. Ele também demonstra a juventude do método r apenas, que direito justifica a string. Os loops for são um elemento importante da linguagem Python. E eu tenho uma seção inteira dedicada a loops, executar o código. Olhe para isso. Ele alinhou o conteúdo com a margem direita. Ok, agora substituiu a última linha de código pela seguinte. Neste caso, a saída é formatada com os métodos de formato de ponto com texto que acompanha e o resultado não inclui todos os membros dos carros. A entrada 01 representa espaços reservados para o valor fornecido a partir de carros. Execute o código para ver que ele aparece com entrada 0, que é Toyota, e a entrada um que é BMW. Obrigado por assistir. 74. Tulum.: tuplas são idênticas às listas em todos os aspectos, exceto algumas das seguintes notas. Tuplas são definidas colocando os elementos entre parênteses em vez de listas semelhantes usando colchetes. Parece algo parecido com isto. A outra coisa importante é que as tuplas são imutáveis. Então por que você usaria uma tupla em vez de uma lista? Quando você está executando programas com tuplas em comparação com listas, a execução será mais rápida quando você estiver manipulando a tupla. Isso provavelmente não vai ser perceptível quando você tem uma pequena lista ou pequena tupla. Mas se esses são os grandes arrays de informações, você começará a ver uma diferença de desempenho. Há momentos em que você não quer que seus dados sejam modificados. Se você tem valores como parte da coleção e seu mentor permaneceu constante durante a vida do programa, usar uma tupla vai se proteger contra qualquer modificação acidental. E sei que os dicionários Python não são o foco desta lição. Você aprenderá que as chaves para criar um dicionário Python exigem que haja um tipo imutável. Então, nesse caso, você precisaria usar algo imutável como uma tupla em vez de lista. Se você estiver procurando usar uma sequência para a chave para definir uma tupla. Em vez de usar colchetes para uma lista, seus objetos serão contidos entre parênteses. Aqui está T, que é uma tupla. E acessando t, minha indexação funciona da mesma forma na introdução de fatias. E você pode ver aqui ele retorna uma tupla, mesmo fazendo passos. E um de vocês usa o passo negativo favorito. E você pode vê-lo aqui retornando entre parênteses, essas tuplas e apenas note, sim, você ainda está usando o mesmo estilo de indexação de colchetes. Então, o que é tão diferente? Bem, você não pode modificá-lo. Então, se você estiver indo para tentar pegar o índice dois e atribuí-lo a algo, você vai levantar esta exceção de um erro de tipo. objeto Tuple não oferece suporte à atribuição de item. Se você criar vários objetos aqui, e eles podem ser novamente de diferentes tipos, e você simplesmente iria listá-los e colocar uma vírgula entre cada um. Você verá que aparece como uma tupla. E, de fato, se você fosse começar um parêntese final sem nada lá e verificar o tipo nele. O que você teria lá como uma tupla vazia. Agora, o que acontece, se você está tentando criar uma tupla singleton? Você diz que T é igual apenas ao número dois dentro de seu parêntese. Bem, você pode ver aqui T não tem o parêntese em torno dele. E se você olhar para o tipo, é apenas um inteiro. Como parênteses também são usados para definir a precedência do operador para expressões, python irá avaliar a expressão de apenas dois entre parênteses como simplesmente o inteiro dois e criar um INT. Se você realmente quer dizer que é um singleton, Você terá que fazer um passo extra, que é incluir uma vírgula que, em seguida, seria considerado uma tupla. Provavelmente é raro que você precise definir uma tupla singleton. Mas se você visse isso em um exemplo, agora você está pronto. Em seguida, vamos mergulhar um pouco mais fundo na tarefa de tupla com embalagem e desempacotamento. 75. Assignment, de tuple e desembalagem: Neste vídeo, eu vou mostrar a vocês a tarefa de tupla através da embalagem e desembalagem. Uma tupla literal contendo vários itens pode ser atribuída a um único objeto, como o objeto de exemplo aqui, T. Atribuindo esse objeto embalado a uma nova tupla, descompacta os itens individuais nos objetos que a nova tupla, com descompactar o número de variáveis à esquerda tem que coincidir com o número de valores dentro da tupla. Deixe-me fazer você explorar isso com algum código. Como você viu no vídeo anterior, você pode criar uma tupla apenas digitando os objetos em um conjunto de parênteses, e então isso irá embalá-los todos lá dentro em um único objeto. Novamente, você pode acessá-los via índice. Aqui está uma ideia interessante. Você pode criar outra tupla de objetos, neste caso S1, S2, S3, S4, e pode atribuí-la à tupla que você criou. Um momento para ir, t. Agora S1, S2, S3 e S4 terão que descompactar essa tupla durante essa atribuição e colocá-las nos objetos apropriados. Agora é importante que eles tenham o mesmo número em ambos os lados da tarefa. Se você tentar atribuí-lo a S1, S2, S3 igual a t, você vai levantar uma exceção aqui como um erro de valor, há muitos valores para descompactar. Estava esperando três deste lado e t, como você sabe, tem para isso novamente, aqui está T. E se você foi com muitos? Bem, neste caso, ele estava esperando para obter cinco, mas T apenas fornecido para embalar e desempacotar poderia ser feito em uma declaração, se você quisesse. E aqui estão eles. Fazemos tarefas como esta. Há um punhado de situações em que Python permitirá que você pule os parênteses. E o mesmo com o desempacotamento. Você pode até fazer algo assim onde ambos os lados não têm parênteses. Até mesmo criando aquele Singleton. Funciona da mesma forma se os parênteses estão incluídos ou não. Então, se você tiver alguma dúvida sobre se eles foram designados, vá em frente e inclua-os. atribuição de tuplas permite um pouco de Python idiomático. Frequentemente, ao programar, você tem duas variáveis cujos valores precisam trocar. É necessário armazenar um dos valores em uma variável temporária. Na maioria das linguagens de programação, enquanto a troca ocorre, seria algo parecido com isso. Então você cria uma variável temp, atribui a ela, atribui B em a. e, em seguida, diz B é igual a temp. E lá você trocou os dois. Então, novamente, você está fazendo uma variável temporária que detém um, tomando b, atribuindo-o em um, e então estar puxando essa temperatura de volta para ele reatribuindo-o novamente. É o pântano. Mas em Python, a troca pode ser feita com apenas uma única atribuição de tupla. Aqui você vai dizer uma vírgula b é igual a b vírgula a. e você pode ver que a troca ocorreu. É isso por hoje. Espero que tenha gostado da lição. Se você tiver dúvidas, por favor me avise. Obrigado por assistir. 76. Trabalhando com dicionários: Olá alunos, este é Andreas, e neste tutorial em vídeo, você vai aprender sobre dicionários, que é uma ótima maneira de acessar um dado organizado. Se você conseguiu combinar dicionários e listas, então você criará uma estrutura de dados no Python. Então vamos começar. Um dicionário é uma coleção de pares de dados relacionados. As chaves de dicionário devem ser exclusivas dentro de um dicionário, você não pode usar o mesmo nome duas vezes em nosso exemplo. Além disso, usamos colchetes ao declarar um dicionário. dicionários são dinâmicos e podem ser aninhados. Um dicionário pode conter outros dicionários ou listas. Um dicionário contém seus pares de valores-chave entre colchetes. Vá em frente e abra seu shell Python, e vamos trabalhar em alguns exemplos. Então vamos em frente e definir um dicionário e colocar alguns nomes aqui com o peso de cada um deles. Abra os colchetes e comece a digitar os pares de valor de chave, nome e aguarde. Os dois-pontos separa cada chave de seu valor associado. E lembre-se de que separamos os valores de pares de chaves com uma vírgula. Feche nosso dicionário com colchetes e pressione Enter. Você pode simplesmente chamar o seu dicionário digitando o nome do dicionário e digite. Uma nota rápida aqui, como uma versão 3.9 do Python, os dicionários serão exibidos em uma ordem em que eles são definidos. Esse comportamento não existe em versões anteriores do Python, portanto, ele pode retornar a uma ordem aleatória. Você pode recuperar um valor de um dicionário especificando sua chave entre colchetes como este. E se você especificar uma chave que não é um dicionário, você obtém uma expressão. Então, adicionar um Andrew ao seu dicionário é apenas uma questão de atribuir uma nova chave e um valor. Então, se adicionarmos Allen como nossa chave e os quilogramas, você pode ver que Alan foi adicionado. Se você quiser atualizar uma entrada, você só precisa atribuir o novo valor à chave. Para excluir uma entrada, basta digitar a instrução delete the devil e especificar a chave. E John terá ido embora. Aqui eu cometi um erro intencional. Consegue encontrá-la? Então eu tentei excluir John com a letra J e maiúscula, mas dentro do dicionário nós definimos com um J pequeno, como você pode ver. Portanto, tenha cuidado aqui, pares chave-valor diferenciam maiúsculas e minúsculas. Algo mais para saber quando você está trabalhando com os dicionários. E isso pode ser confuso quando você está começando. Se você trabalha com lista e sabe que pode acessar listas de itens com um número de índice. Não é possível tratar dicionários de listas. Você não poderá acessar valores de um número de índice como esse. Você recebe uma exceção. Isso ocorre porque Python está esperando uma chave relacionada a esse ponto. Você pode usar energizadores como chaves. Então, se eu começar um novo dicionário aqui, e neste caso seremos capazes de acessar valores em um dicionário com um 0 ou uma chave, não um índice. Definindo um dicionário usando colchetes e uma lista de pares de valores-chave. Tudo bem se você conhece todas as chaves e valores com antecedência. Mas e se você quiser construir um dicionário imediatamente? Você pode começar criando um dicionário vazio que é especificado por colchetes vazios. Em seguida, você pode adicionar novas chaves e valores, um de cada vez. Uma vez que o dicionário é criado desta forma, seus valores são acessados da mesma maneira que qualquer outro dicionário. Recuperar os valores na sublista ou subdicionário requer um índice ou chave adicional. Você pode usar dicionários para uma ampla gama de propósitos porque há poucas limitações sobre as chaves e valores que são permitidos. Obrigado por assistir. 77. Conjuntos: Bem-vindos de volta a todos. Nesta lição, aprenderemos sobre conjuntos. Eles são uma estrutura de dados útil que permite que você faça algumas operações complexas de forma mais eficaz. Então o que é um centavo na matemática é definido é uma coleção bem definida de objetos distintos. O conjunto de números positivos iguais inferiores a dez seria 2468. O conjunto de quadrados perfeitos menores que dez seria 149. A interseção desses dois conjuntos seria o número para. Um deles é um conjunto em Python. tipo de conjunto embutido do Python tem as seguintes características. Eles são desordenados, os elementos são únicos e elementos duplicados não são permitidos. E um conjunto em si pode ser modificado, mas os elementos contidos em um conjunto devem ser hashable. Então, um objeto mutável é um tipo de objeto que pode ser modificado depois que ele foi criado. Objetos hash, por outro lado, são um tipo de objeto no qual você pode chamar hash. Todos os objetos imutáveis são hash, mas nem todos os objetos com hash são imutáveis. Python só pode incluir objetos hash. Então, alguns exemplos que você provavelmente viu objetos imutáveis são tuplas, strings, inteiros e booleanos. Isso ocorre porque esses objetos podem ser modificados depois que eles são criados. E então objetos hash tipo de engloba todos os objetos imutáveis. Listas e dicionários estão em hashable. Vamos ver alguns exemplos. Então vamos olhar para as cordas. Podemos criar uma string como esta. E podemos ver que as cordas são realmente imutáveis. Vamos tentar realmente silenciar. Então, se eu tentei adicionar um caractere ou alterar a primeira letra para outro caractere, ambos são um erro de tipo. O mesmo vale para inteiros. Podemos verificar que strings e inteiros são ambos hashable chamando o método hash neles. Então hash em S não vai errar, mas ele vai nos dar um número. E este número apenas representa o hash de s. Listas e dicionários estão em hashable, que significa que chamar um hash sobre eles nos dá um erro. Existem duas maneiras de definir um conjunto em Python, você pode usar a função set. Por exemplo, podemos passar a lista de maçã e banana, que irá converter essa lista que faz conjunto com dois elementos. Observe que a ordem não é exatamente a mesma que a lista que passamos porque os conjuntos estão desordenados. Vamos ver o que acontece quando passamos em um dicionário. Ele transformará as chaves dos dicionários em um conjunto. Nós também pode passar em uma string que é, dividir a string em caracteres. E se houver caracteres duplicados, ele não incluirá esses porque conjuntos não podem conter duplicatas. Por exemplo, podemos usar a função lista com a mesma string, mantendo a mesma ordem de letras e as duplicatas. A segunda maneira que poderíamos definir um conjunto é usando colchetes. Se quisermos um conjunto vazio, poderíamos usar um conjunto como este. Conjuntos são realmente legal porque eles podem conter qualquer valor hashable e o mesmo conjunto não tem que incluir o mesmo tipo de valor. Então eu posso ter uma sequência de booleano e depois uma tupla. E isso vai funcionar. Oops, a verdade é com o T. Grande capital. Vamos tentar passar um valor não hash e ver o que acontece. Então as listas não são hash e isso é um erro. Então, y centavos, quando às vezes você só se preocupa com valores únicos e você não precisa que seus dados sejam ordenados. Essa é a diferença aparente entre conjuntos e tuplas ou listas. Você também pode fazer algumas operações legais muito rapidamente. Mas a principal razão pela qual usamos listas é que elas são muito, muito rápidas. O que quero dizer com isso é que você pode verificar a adesão quase que instantaneamente. Muito obrigado por assistir. E se você tiver alguma dúvida ou comentário, por favor deixe-os no formulário Q. e Udemy. 78. Se declarar,: Olá a todos. Neste tutorial em vídeo, você aprenderá a escrever testes condicionais, o que permite verificar qualquer condição de interesse. Você aprenderá a escrever simplesmente se afirmações. E você aprenderá a criar uma série mais complexa de instruções if para identificar quando as condições exatas que você deseja estão presentes. O bloco que segue a instrução if será executado. Se a condição de instruções for verdadeira, as cláusulas ignoradas se a condição for falsa, uma instrução if poderia ser lida como se essa condição fosse verdadeira. Execute o código. A instrução if consiste na palavra-chave, a condição de dois-pontos, e começando na próxima linha, um bloco de código. A estrutura de uma instrução if é a seguinte. E este é o diagrama de fluxo. Vamos fazer alguns exemplos, abra o editor e escreva o seguinte código. Python requer a formatação de blocos com recuo. É muito exigente sobre espaços em branco e recuo. Salve o programa primeiro, execute o código e veja o resultado na tela. Python solicita aos usuários que insiram um número entre 12. Para fazer isso, usamos a função de entrada. Tenha em mente que o resultado é armazenado como uma string. Agora, se você digitar um, o programa executará a primeira instrução de impressão. Talvez o tipo dois, o programa irá executar a segunda instrução de impressão. Para todos os outros valores, o programa irá imprimir que você não inseriu um número válido. Ótima. Agora vamos falar sobre uma inclinação se uma inclinação if declaração é uma forma mais simples de uma declaração if e seu ideal se você só precisa executar uma tarefa simples. A sintaxe é a seguinte. Por exemplo, vá para o programa anterior e exclua todas as linhas de código, exceto a primeira. Em seguida, digite a seguinte função de impressão. Se executarmos o programa, obteremos o mesmo resultado que o anterior, mas com uma linha de código menor. Na próxima linha, vou mostrar-lhe muitos exemplos diferentes da instrução if em um aplicativo. Obrigado por assistir. 79. EXEMPLOS de uso de a declaração em um aplicativo: Você pode usar as instruções if de várias maneiras. Em Python, um operador relacional determina como um valor no lado esquerdo de uma expressão se compara com o valor no lado direito expressões. Sempre faz a determinação e produz um valor verdadeiro ou falso que reflete o valor de expressão verdadeiro. Por exemplo, seis iguais a seis é verdadeiro enquanto cinco igual a seis é falso. As etapas a seguir mostram como criar e usar uma instrução if. Primeiro de tudo, vamos definir uma variável chamada meu tipo de valor. Este carimbo atribui um valor de cinco ao meu valor. Observe que ele usa o operador de atribuição e não o tipo de operador de igualdade. Esta etapa cria uma instrução if que testa o valor do meu valor usando o operador de igualdade. A palavra if é realçada em uma cor diferente do resto da declaração. Tipo. E entre duas vezes. Se você pressionar Enter duas vezes seguidas sem inserir nenhum texto, o bloco de código é um fim e a saída é esta frase. Se eu alterar o valor da variável para dez e executar novamente o mesmo código, nenhuma execução será feita. Além disso, se eu mudar o valor da variável e depois se para 15 e executar o código, nenhuma execução será feita. Às vezes você deseja executar mais de uma tarefa depois de tomar uma decisão, desde que a próxima linha seja recuada, ela faz parte da instrução if. Quando a próxima linha está fora amassada, ela se torna a primeira linha de um código fora do bloco if. Um bloco de código consiste em uma instrução e as tarefas associadas a essa instrução. Vou colocar duas declarações impressas para entender como funciona. Entra duas vezes. Cada linha que você digita faz parte do bloco de código IFStatement atual. E se você pressionar Enter duas vezes seguidas sem inserir nenhum texto, Python executará todo o bloco de código para fazer múltiplas comparações. Se você criar várias condições usando operadores relacionais e combiná-los para usá-lo e operadores lógicos. Por exemplo, pegue o seguinte código dentro do editor Python. Execute o código e o tipo três é um valor. A instrução if contém duas condições. O verso afirma que o valor deve ser maior que 0. Você também pode apresentar essa condição como um valor maior ou igual a um. A segunda condição afirma que o valor deve ser menor ou igual a cinco. Somente quando o valor significa que ambas as condições serão as instruções if bem-sucedidas e imprimem o valor digitado pelo usuário? Se eu tomar dez, o aplicativo não emite nada porque o número está no intervalo errado. Vamos alterar o código para fornecer uma ação alternativa quando a condição para uma instrução if é falsa. Observe que a causa mais termina com dois pontos, assim como a instrução if. Se você receber um erro de codificação para um mero aplicativo, certifique-se de verificar a precedência das colunas conforme necessário. Execute o código e digite 10. Desta vez, o aplicativo emite a mensagem de erro. Agora vamos tentar criar uma seleção de menu de um restaurante. O restaurante oferece salada de pizza pastor e panna cotta para doces. Depois de escolher um dos itens, o servidor o traz para você. Criar uma seleção de menu requer algo como uma instrução if else. Mas se estiver usando a causa LIF, a causa LIF é uma combinação da cláusula else e uma instrução IF separada. As etapas a seguir descrevem como usar a instrução if, e l i f para criar um menu. Em cada caso, as escolhas comparadas com um valor específico para criar uma condição para esse valor, se nenhuma das opções estiver correta, a cláusula else é executada por padrão para informar ao usuário que a escolha de entrada é inválida. Agora vou rodar o código. Python espera que eu insira um número, imprimindo a mensagem, selecione seu menu favorito. Vou colocar o número três e a mensagem aparece, você escolheu salada, obviamente porque três é o menu de salada. O processo de tomada de decisão acontece frequentemente em níveis. Por exemplo, quando você vai ao restaurante e escolhe macarrão, você tomou uma decisão de primeiro nível. Agora o servidor pergunta que tipo de passado você quer. Por exemplo, um touro e sim são um carbonara. Esta seleção se torna uma decisão de segundo nível tomada de decisões em níveis com cada nível contando com a decisão tomada em um nível anterior é chamado de aninhamento. Os desenvolvedores costumam usar técnicas de aninhamento para criar aplicativos que podem tomar decisões complexas com base em várias entradas. As técnicas de seleção múltipla mais comumente usadas é uma combinação de instruções if e if else. Esta forma de seleção é muitas vezes chamada de árvore de seleção. O código a seguir mostra como criar uma árvore de seleção. Exclua o código anterior e comece a digitar. Digite um número entre 15. Vamos tipo três. Digite um segundo número. Agora, vamos colocar em cinco. O resultado é 15, porque três vezes cinco nos dá 15. Vou rodar o código de novo e colocar cinco como o primeiro número, e dez é o segundo número. E imprime o segundo valor incorreto da mensagem. Então funciona muito bem. Se você tentar fornecer um valor fora do intervalo solicitado, você verá uma mensagem de erro. A mensagem de erro é adaptada para o primeiro ou segundo valor de entrada para saber qual valor estava incorreto. Como um exercício de lição de casa, tente criar um menu de restaurante usando declarações de decisão aninhadas. Muito obrigado por assistir. E se você tiver alguma dúvida ou comentário, deixe-os no fórum Q e Udemy. 80. Para loops: Olá estudantes. Até agora aprendemos que a instrução if, mas e se você quiser executar um bloco de código usando apenas um certo número de vezes, você pode fazer isso com uma instrução for loop e ajudar a função de intervalo. E você aprenderá uma nova função chamada enumerar. Portanto, o loop for executa o bloco de código repetidamente até que a condição na instrução for não é mais válida. No Python, qualquer coisa pode ser feita em loop, como uma string, lista ou tupla. Isso também é chamado de terrível. A sintaxe é a seguinte. E este é o diagrama de fluxo. Vamos fazer um exemplo, disparar shell e começar a digitar. Neste programa temos uma lista de estações com quatro itens. A declaração para anos nas temporadas percorre a lista de temporadas e atribui cada membro para a temporada de ano variável. Quando executamos o programa no inverno First Signs para a temporada de ano variável, em seguida, imprime o inverno valor. Depois disso, o programa continua percorrendo a lista até que o final de sua lista seja atingido. Se você deseja exibir o índice de membros em uma lista, você pode usar a função enumerar. Vamos com a segunda linha e executar o programa novamente. Você pode ver o índice ao lado dele. Todos os itens estão na lista. Se você tiver alguma dúvida, por favor, poste-as no quadro de discussão. Para loop é um conceito fundamental e eu quero que você entenda completamente. Obrigado por assistir. 81. EXEMPLos de usar a declaração: A melhor maneira de ver como funciona um loop for é criar um. Vamos fazer um exemplo que usa uma string para a sequência. O loop for processa cada um dos caracteres na string e gire até ficar sem caracteres. Leve o seguinte código para o editor. O exemplo começa criando uma variável de letra numb para rastrear o número de letras que foram processadas. Toda vez que o loop é concluído, letra num é atualizada por um. A instrução for funciona através da sequência de letras na cadeia e Dreze, e coloca cada letra por sua vez em letra. Vamos executar o código, salvá-lo primeiro, a letra um é um n, letra, dois é n, e assim por diante. O programa pára quando imprime a última letra do nome, e que é a letra S. A cláusula de freio torna possível a respiração fora do loop. No entanto, você não apenas coloca a cláusula de quebra em seu código. Você cerca-lo com uma instrução if que define as condições para a emissão de uma pausa. No exemplo a seguir, vamos deixar o usuário fornecer uma string de comprimento variável. Quando a cadeia tiver mais de oito caracteres, o aplicativo pára de processá-lo. Vamos excluir o código anterior e trabalhar em alguns exemplos. Execute o código e digite John. O nome tem menos de oito caracteres e imprime. Mas se eu digitar Alexander, o aplicativo pára de processá-lo. E aqui está a mensagem. A corda é muito longa. Às vezes você deseja verificar todos os elementos em uma sequência, mas não deseja processar determinados elementos. As leis de quebra simplesmente entram no loop para que você não o use nesta situação. A alternativa das leis de quebra que muitos desenvolvedores usam é a cláusula continue. Tal como acontece com a cláusula de freio, essa cláusula continue aparece como parte de uma instrução if. No entanto, o processamento continua com o próximo elemento na sequência em vez de terminar completamente. No exemplo a seguir, O código se recusa a processar a letra D, mas processará todas as outras letras em Andreas é nome. Pressione F5 para executar o código e ver o resultado. Não há letra D dentro da palavra. A linguagem Python inclui o segundo tipo da cláusula continue. A cláusula anterior funciona quase da mesma maneira que a cláusula continue faz, exceto ela, permite a conclusão do código no bloco de instrução if em que ele aparece. Edite o código e use as garras anteriores em vez de continuar e execute novamente o código. O uso da cláusula anterior permite o pós-processamento de uma entrada indesejada. Se eu mudar a posição da declaração de impressão, obtenho resultados diferentes. Python tem outra cláusula de loop que você não encontrará com outros idiomas. A cláusula else torna possível executar código se você não tiver elementos do processo em uma sequência. Por exemplo, digite o seguinte código. Vamos rodar o código, colocando em uma palavra, eu vou digitar meu nome Andreas, e a saída é as letras um por um. Agora vou executar o código sem digitar algo e a cláusula else é executada digitando a mensagem, a string está em branco. 82. Enquanto o loops: Ei, todo mundo. Na palestra anterior, aprendemos o loop quatro, que executa o bloco de código apenas por um certo número de vezes. Em contraste, o loop selvagem é executado enquanto ou enquanto uma determinada condição é verdadeira. Por exemplo, você pode usar um loop while para contar através de uma série de números. Vamos ver isso em ação. Vamos dar uma olhada no diagrama de fluxo primeiro. Agora vamos abrir o editor ocioso e executar o seguinte código. Execute o programa e ele mostra os números de 0 a três. Na primeira linha, começamos a contar de 0 definindo a variável numérica como 0. O loop while executa o programa, desde que os números menores que quatro e imprime cada número com a instrução num mais um, nós adicionamos um em cada loop. A última declaração imprime a mensagem para nos mostrar que o programa foi encerrado. Então Python repete o loop quatro vezes e total, às vezes um loop pode ser infinito. O loop se torna um loop infinito se a condição nunca se tornar falsa, você deve ter cuidado ao usar loops while devido à possibilidade de que esta condição nunca resolve para um valor falso. Isso resulta em um loop que nunca termina. Esse loop é chamado de loop infinito. No exemplo acima, se excluirmos a instrução num mais um, o teste condicional, no entanto, quatro sempre será executado como true e o loop while será executado para sempre, imprimindo uma série de zeros como este. Se o seu programa ficar preso em um loop infinito, pressione control plus c ou simplesmente feche a janela do terminal exibindo a saída do seu programa. Para evitar escrever loops infinitos, teste cada loop selvagem e certifique-se de que o loop pára quando você espera. É benéfico para executar um código de programa, enquanto o usuário quer, colocando a maior parte do programa dentro de um loop while, vamos definir um valor de saída e, em seguida, vamos manter o programa em execução, desde que o usuário não tenha inserido o valor rápido. Vamos escrever o seguinte código. E vamos executar o código Python. Esqueci o cólon aqui. Em primeiro lugar, Python exibe o prompt e aguarda que o usuário insira sua entrada. O que quer que eles digitam é armazenado na variável myText e impresso na tela. Depois disso, Python reavalia a condição em uma declaração while. Desde que o usuário não seja digitado a palavra quit, o prompt é exibido novamente e Python aguarda a entrada. Quando os tipos de usuário sair, Python pára de executar o loop while e o programa termina. Obrigado por assistir. 83. Quebre e continuar: Bem-vindo a esta lição e obrigado por chegar até aqui. Nesta palestra, você aprenderá a declarações que podem ser usadas dentro de loops. Lá, a quebra e continue palavras-chave. Às vezes você pode querer sair de todo o loop com uma condição específica é atendida. Para fazer isso, usamos a palavra-chave break, a instrução break em Python termina o loop atual e retoma a execução na instrução assim como a quebra regular e veja, o uso mais comum para a quebra é quando alguns condição externa é acionada exigindo uma saída precipitada do loop. A instrução break pode ser usado em ambos while e para loops. Vamos digitar e executar o seguinte programa para ver como ele funciona. Sem a palavra-chave break, o programa deve imprimir os números de cinco para um com a palavra-chave break, o programa termina prematuramente no número dois. Isso ocorre porque quando o número atinge o valor de um, a palavra-chave break faz com que o loop termine. Observe que usamos uma instrução if dentro de um loop while. Esta é uma prática generalizada em programação e uma característica robusta à medida que continuamos para o curso. Isso também é conhecido como uma instrução de controle aninhada. Outra palavra-chave para loops é a palavra-chave continue. A instrução continue em Python retorna um controle para o início do loop while. A instrução continue rejeita todas as instruções restantes na iteração atual do loop e move o controle de volta para o topo do loop. Ele pode ser usado em ambos enquanto e para loops como break. Para entender melhor, substituiremos o comando break pelo continue. Execute o programa. Ao contrário do exemplo anterior, o continue rejeita a instrução if e move o controle de volta para o topo do loop. Além disso, o resto do loop após a palavra-chave é ignorado se tivéssemos código, é claro. Finalmente houve uma declaração passada que não é uma operação. O passado Dave e ajuda a criar um bloco de código, mas não é mais necessário. Não é tão útil e você tem que saber simplesmente o que ele faz. Nada mais. Se você não entender completamente, não se preocupe, vamos criar um projeto que inclui ambas as declarações. Obrigado por assistir. 84. PROJETO: jogo de orientação: Vamos criar um jogo onde o computador escolhe um número e o jogador adivinha. No jogo de adivinhação, Python pensa em um número aleatório. O jogador assume o número. O primeiro passo é obter um texto de um usuário usando a instrução de entrada. Vamos começar a digitar o editor. O prompt de variável está apontando para um literal. O nome literal está entre parênteses. Eu capturar o que o usuário digita com uma variável chamada jogadores acho que a entrada retorna uma string, qualquer que seja o jogador digita mesmo que seja apenas um número, você vai obter uma string de entrada. Para comparar as suposições, você precisa converter o gás jogadores em um número. Seu jogo precisa verificar se o palpite é o mesmo que o número do computador. Diga que o computador surgiu com dez. Para comparar a variável, os jogadores adivinham o número que você precisa para armazenar o valor em uma variável chamada computadores underscore number. Vamos pegar a variável no início do nosso programa. Quando você pode comparar o palpite com a resposta, você pode imprimir uma resposta do jogador. O I N T construído em leva uma string que tem um número inteiro e o transforma em algo que Python reconhece como um número. Lembre-se sempre que você está codificando, os dois pontos significa que um novo bloco de código está prestes a seguir na linha após os dois pontos e todas as outras linhas no bloco, você precisa começar com quatro espaços. O que acontece se o jogador adivinhar a resposta errada? A palavra-chave else altera a operação da palavra-chave if. É sempre executado quando se procede. Se o bloco de código não for executado, vamos digitar, executar o código e digitar. O bloco de código funciona bem. Agora temos que mostrar aos jogadores se seu palpite é muito alto ou muito baixo. Usando o vamos colocar no bloco LIF entre o programa e a declaração if. Então todos os mentiram a mensagem errada. Adivinha de novo, e eu substituo com os dois altos. Execute o código e digite 20. A mensagem para alta aparece na tela. Você ainda precisa configurar algo que o computador continua perguntando se o jogador não adivinhar o número. Você precisa fazer isso, colocando o código que pede para os jogadores adivinhar e testar seu valor enquanto o loop. Em seguida, usando a instrução break, quando a resposta correta é dada isso, vamos sair do loop. Vamos editar o código. Aqui. Vamos quebrar o loop. A instrução loop permite que você saia de qualquer loop que Python já está em. Independentemente da condição de loops envolventes. Se você tiver um loop dentro de um loop, o freio aplicado através do nível de loop em que o freio aparece, em nosso exemplo, ele quebra o loop interno, o loop if. Para quebrar o loop externo, você precisa estar no bloco de código do loop externo. Agora, como você faz Python pensar em um número, o recurso inteiro aleatório, destro estes do módulo Random, ele lhe dá um número aleatório entre duas figuras que você coloca no parêntese que segue O Randint. O número incluirá o número mais baixo ou mais alto. Se você quiser um número entre 110, use random.random um a dez. O módulo aleatório vem com Python, mas ao contrário dos embutidos ins que não são carregados automaticamente, o módulo aleatório é parte da biblioteca padrão python. Se você precisar dele, você deve importá-lo. Por que Python não pode simplesmente carregar tudo automaticamente? Porque tornaria a programação chata. Toda vez que você executava um programa, você precisaria pesar a parede encontrada em todos os módulos carregados na biblioteca padrão. Além de lhe dar acesso à biblioteca padrão, a declaração importante também permite que você use o módulo que alguém escreveu chamado módulos de terceiros. Para usá-los, você tem que baixá-los e instalá-los em seu computador. Eu tenho uma seção inteira com módulos mais tarde no curso. Então adicione essas duas linhas de código desde o início. Eu editei a linha de código com a variável numérica do computador e coloquei um número de um a 50. Nós terminamos nosso jogo de adivinhação e estamos prontos para testá-lo, executar o programa. Funciona muito bem. Parabéns, você acabou de criar seu primeiro jogo usando programação Python. Tenha em mente que você pode escrever comandos em seu código como uma breve explicação do que o código deve fazer. 85. Usando as informações com listas: Ei pessoal, o que foi? Neste vídeo, você aprenderá a usar instruções if com listas. Você pode facilmente combinar uma lista e uma instrução if. A melhor maneira de entender a combinação é através de um exemplo. O exemplo a seguir, para encontrar a lista de compras em um supermercado. Abra o editor de texto e comece a digitar. No início, definimos a lista com a nossa lista de compras quando o programa está aguardando que o usuário digite o produto que deseja. Se o item solicitado estiver na lista com os itens disponíveis, Python imprime uma mensagem informando que o produto está disponível. O bloco else imprime uma mensagem informando ao usuário que este tipo de produto não está disponível. Assim, a partir do exemplo acima, conseguimos resolver um problema combinando declarações se e listas. Obrigado por assistir. 86. Como usar para loops com listas: Ei pessoal, na palestra anterior aprendemos sobre o loop for. Usamos para loops para executar um bloco de código um certo número de vezes. Quero mostrar-lhe agora a combinação de loops para com listas. Vamos abrir o editor Python e começar a digitar o seguinte programa contendo uma lista de médicos no hospital. Tecnicamente, um for-loop repete o bloco de código uma vez para cada valor em uma lista. Por exemplo, se o executarmos, este programa imprime o tipo de médico disponível um por um. Olhe para o resultado. Na primeira linha, temos uma lista dos médicos disponíveis no hospital. Então, com a ajuda do loop for, imprimimos a mensagem neste hospital, há essa especialidade médica. Este é um exemplo simples de como podemos combinar uma lista com um for-loop. Obrigado por assistir. 87. Usando um loop de tempo com listas e dicionários: Olá alunos e bem-vindos de volta ao curso, pois continuaremos a aprender a combinar um loop while com listas e dicionários. Usar o loop while com listas e dicionários permite que você colete, armazene e organize muitas entradas para examinar e relatar. Mais tarde. Neste relatório, primeiro pedimos ao usuário que insira uma senha. Se a senha estiver correta, o aplicativo será aberto, mas se a senha estiver errada, aparecerá uma mensagem pedindo para inserir a senha novamente. Vamos executar o programa e colocar uma senha. Por exemplo, 1234. Python nos permite saber que a senha está errada e nos pede para tentar novamente. Agora vou digitar quatro ases, que é a senha correta. Copie o programa e cole-o no site Python Tutor para que possamos visualizá-lo. Selecione Python três e cole-o lá. Pressionou o botão, visualize a execução. A primeira linha é uma mensagem simples pedindo ao usuário para inserir uma senha. Em seguida, na segunda linha, Python está aguardando que o usuário digite um código. O código é armazenado na minha variável de código. Na terceira linha, temos um dicionário com a senha certa dentro de quatro ases. Em seguida, o loop começa enquanto a variável meu código não é igual à senha correta, imprimir uma mensagem de que o código está errado, e perguntando novamente com o código, se o usuário digitar o código corretamente, uma mensagem de impressão aparece com textos corretos e o programa é encerrado. Assim, podemos ver que a combinação de loop selvagem com listas ou dicionários pode criar programas poderosos. Não se esqueça de usar este site. É uma ótima prática, especialmente para iniciantes. Obrigado por assistir. 88. Criando pilhas usando listas: Uma pilha é uma matriz ou uma estrutura de lista de chamadas de função e parâmetros usados na programação de computadores moderna e arquitetura de CPU. Como uma pilha de pratos em um buffet, restaurante ou cafeteria, elementos em uma pilha são adicionados ou removidos do topo de uma pilha é um último a entrar, primeiro a sair, ou ordem FIFO. O processo de adicionar dados a uma pilha é referido como um push ao receber dados de uma pilha é chamado de pop. Isso ocorre na parte superior da pilha. O ponteiro da pilha indica a extensão das pilhas ajustando à medida que os elementos são empurrados ou bombeados para uma pilha. Quando uma função é chamada, o endereço da próxima instrução é empurrado para a pilha. Quando a função existe, o endereço é retirado da pilha e a execução continua nesse endereço. Infelizmente, Python não fornece uma pilha como uma coleção. No entanto, ele fornece listas e você pode usar uma lista como uma pilha perfeitamente aceitável. As etapas a seguir ajudam você a criar um exemplo de uso de uma lista como uma pilha. Neste exemplo, o aplicativo cria uma lista e uma variável para determinar o tamanho máximo da pilha. As pilhas geralmente têm uma faixa de tamanho específica. Esta é, reconhecidamente, uma pequena pilha, mas serve bem para as necessidades de exemplos. Selos funcionou empurrando um valor para o topo da pilha e popping valores para trás fora do topo pilhas, uma função em Python e definida por uma instrução def. Neste programa, defini três funções. A pilha de exibição, push e pop. Vamos aprender tudo sobre função não está em uma seção posterior. Então, seja paciente por enquanto. As funções da bomba de empurrar executaram essas duas tarefas. O código adiciona pilha de exibição para facilitar a visualização do conteúdo da pilha é necessário. Len é uma função embutida em Python, você pode usar o len para chegar ao comprimento de qualquer determinada string, matriz, lista, tupla, dicionário, etc. Os exercícios de código restantes na pilha demonstram sua funcionalidade empurrando valores para ele e, em seguida, removê-los. Para seções de exercícios principais, testes, funcionalidade de pilha, execute o código e veja como Python preenche o saco com informações e, em seguida, exibe um na tela. A pilha atualmente contém três valores, 123, pressione enter. O aplicativo tenta enviar outro valor para a pilha. No entanto, a pilha está cheia para que a tarefa falhe. Pressione Enter novamente. As bombas de aplicação de valor a partir do topo da pilha. Lembre-se que três é o topo da pilha. Então esse é o valor que está faltando. Digite novamente e o aplicativo tenta exibir mais valores da pilha que contém, resultando em um erro e uma pilha está vazia. É um bom exercício para visualizar a execução do Python Tutor.com passo a passo. Obrigado por assistir. 89. Pesquisando e classificando: A capacidade de pesquisar uma lista é essencial se você quiser tornar as tarefas de manutenção mais gerenciáveis. O código a seguir ajuda você a criar um aplicativo que demonstra a capacidade de pesquisar uma lista para valores específicos. Leve o seguinte código para o editor. O exemplo começa criando uma lista denominada Produtos Apple que contém nomes de produtos Apple. Ele também cria uma variável chamada Apple products select para manter o nome dos produtos Apple que o usuário deseja localizar. A amplificação entra em um loop em que o usuário é solicitado a fornecer um nome de produto Apple colocado em produtos Apple. Desde que esta variável não contenha a palavra quit, ela continua um loop que solicita entrada. Sempre que o usuário inserir um nome de produto Apple, o aplicativo solicita que a lista conte o número de produtos Apple fora moedas. Quando o valor for igual ou superior a um, a lista contém o produto Apple e uma mensagem inadequada aparece no ecrã. Por outro lado, quando a lista não inclui a cor solicitada na mensagem alternativa aparece na tela. Vamos salvar e executar o código. Python solicita que você digite o nome do produto Apple, digite iPad Enter e você verá uma mensagem informando que o iPad existe na lista. Agora digite iMac e você verá uma mensagem informando que o iOS não existe. Digite quit e o aplicativo termina. O computador pode localizar informações em uma lista, independentemente da ordem em que aparecem. Listas mais longas são mais fáceis de pesquisar quando você as coloca em uma ordem classificada. No entanto, a principal razão para colocar uma lista em ordem ordenada é tornar mais fácil para o usuário humano ver a lista de informações contém. Vamos fazer um exemplo que começa com uma lista não ordenada. Em seguida, classifica a lista e a envia para a exibição. O código a seguir demonstra como executar essa tarefa. O exemplo começa com a criação de uma matriz de produtos Apple. Os produtos Apple estão atualmente em ordem não classificada. O exemplo, em seguida, imprime os produtos e a ordem em que eles aparecem. Observe o uso de um argumento para a função de impressão para garantir que todos os produtos e árvores permaneçam em uma linha, tornando-os mais fáceis de comparar. Classificar a lista é tão fácil quanto chamar a função de classificação depois o exemplo chama a função de classificação que imprime a lista novamente para que você possa ver o resultado. Execute o código. Este é um erro de nome porque este item é diferente deste item, capitalize a primeira letra. Então vamos mudar isso também. Vou deixar um espaço dentro de aspas duplas. Executar novamente, e Python produz tanto as listas não classificadas e classificadas. Você pode precisar classificar itens em ordem inversa às vezes para realizar esta tarefa, você usa a função inversa. A função deve aparecer em uma linha separada. Então adicione a seguinte linha de código aqui. Execute novamente o código e veja os produtos na ordem inversa. Obrigado por assistir. 90. Looping por um dicionário: Ei pessoal, o que foi? Neste vídeo, você vai aprender a fazer um loop através de um dicionário. Certo, vamos entrar em ação. Como você já sabe, um dicionário pode conter pares de valores-chave. Dicionário pode ter algumas entradas, mas às vezes eles contêm grandes quantidades de dados, talvez milhões de pares. É por isso que é benéfico percorrer um dicionário. O exemplo a seguir que eu vou escrever tem um dicionário com nomes de usuário e senhas de três usuários. Eu quero imprimir todas as informações armazenadas no dicionário acima usando um loop for digite o seguinte código. Vamos examinar o código da segunda linha. O loop for precisa de variáveis que manterão o nome de usuário e a senha em cada par. Você pode escolher qualquer nome que desejar para essas duas variáveis. Após essas duas variáveis, usamos os itens de método que retorna uma lista de pares de valores-chave. O for-loop armazena cada um desses pares nas duas variáveis fornecidas. Na próxima linha, colocamos o nome de usuário e a senha, a barra invertida n. A primeira instrução de impressão garante que uma linha em branco é inserida antes de cada par de valor chave na saída. Agora veja o resultado no shell Python. Poderíamos copiar o programa e colá-lo em Python Tutor.com se quiséssemos vê-lo em ação passo a passo. Ótima. Obrigado por assistir e eu vou vê-lo no próximo vídeo tutorial, aprendizagem feliz. 91. Como alterar o dito comutador com um dicionário: A maioria das linguagens de programação fornecem algum tipo de instrução switch. Uma instrução switch fornece tipos de menus elegantes, eleições. O usuário é várias opções, mas tem permissão para escolher apenas uma delas. O programa toma algum curso de ação com base na seleção do usuário. Aqui está um exemplo de outra linguagem de programação. Infelizmente, Python não vem com uma instrução switch. No entanto, usando um dicionário, você pode simular o uso de uma instrução switch. Vamos tomar o seguinte código para demonstrar a técnica necessária. Cada uma dessas funções define uma tarefa associada à seleção de uma opção de cor na tela. Apenas um deles é chamado a qualquer momento. Vamos continuar digitando o código do dicionário. Este código é o dicionário. Cada chave é como a parte caso de uma instrução switch, o valor especificar o que fazer. Finalmente, vamos digitar a interface do usuário é parte do código de exemplo. Começa criando uma seleção de variável de entrada. Em seguida, ele entra em um loop até que o usuário insira um valor de três. Durante cada loop, o aplicativo exibe uma lista de opções e, em seguida, aguarda a entrada do usuário. Quando o usuário não fornece entrada, o aplicativo executa uma verificação de intervalo sobre ele. Vamos rodar o código. Python exibe o menu esperando por você para selecionar uma opção tipo 0 e entrar no aplicativo que diz que você escolheu vermelho e, em seguida, exibe o menu novamente. Agora digite três e pressione enter. O aplicativo termina. Como sempre, você pode visualizar seu código passo a passo usando Python Tutor.com. Obrigado por assistir. 92. Trabalhando com o objeto contador: Às vezes, você tem uma fonte de dados e simplesmente precisa saber com que frequência as coisas acontecem, como a aparência de um item específico na lista. Quando você tem uma lista restrita, você pode simplesmente contar os itens. No entanto, quando você tem uma lista longa, obter uma contagem precisa é quase impossível. Os objetos do contador, vamos contar os itens rapidamente. Vamos fazer um exemplo que cria uma lista com elementos repetitivos e, em seguida, conta quantas vezes esses elementos aparecem. Digite o seguinte código. Para usar o objeto contador, você deve importá-lo de coleções. O exemplo começa criando uma lista. Com elementos numéricos repetitivos. Você pode facilmente ver que alguns elementos aparecem mais de uma vez, como o número um, o exemplo colocado na lista em um novo objeto contador, contador de lista. O aplicativo imprime um contador de lista de várias maneiras. A primeira saída é o contador como aparece sem qualquer manipulação. A segunda saída imprime os elementos únicos individuais na minha lista e o número de vezes que cada elemento aparece. Para obter o elemento e o número de vezes que ele aparece, você deve usar a função do item como mostrado. Finalmente, o exemplo demonstra como obter uma contagem individual da lista usando a função get. Execute o código e Python produz os resultados do uso do objeto contador. Obrigado por assistir. 93. O que são funções: Funções são uma maneira simples de agrupar ações com elas. Você pode fazer alguns grupos de ações repetidamente sem ter que redigitar todas as funções de código. Deixe você explicar o que faz y e função permitem que você reutilize seu código. Para usar uma função. Você deve um para encontrar a função em si e para invocar ou chamar a função. Aqui está um exemplo simples que recompensa seu programa Hello World usando uma janela shell Python aberta função. Pressione Enter duas vezes para retornar ao prompt de comando. Não faz nada. Agora você deve chamar a função para fazê-la funcionar. Python irá chamar a função se você escrever o nome da função seguido por parênteses, bloco de código de uma função é a linha que segue a instrução def até, mas não incluindo a próxima linha que é recuado o mesmo que a instrução def. Quando o Python atinge o fim da função, ele pula de volta para o local onde a coluna ocorreu, volta lá com os parênteses. As regras para nomear uma função ou muito parecido com as regras para nomear uma variável. Eles devem começar com uma letra ou um sublinhado. Devem ser minúsculas. Eles não podem ter números. Eles podem ser de qualquer comprimento, mas mantenha-os curtos. Eles não podem ser iguais a uma palavra-chave Python. Funções têm um tipo especial de comentário chamado uma string doc. O objetivo principal de uma docstring é explicar o que a função deve fazer. Isso significa que alguém olhando através do seu código vai entender o que a função está fazendo sem descobrir o código em si. Para criar uma docstring, adicione uma string literal entre aspas triplas como a primeira linha do bloco de código da função. Como o nosso exemplo, as funções são ferramentas extremamente úteis e poderosas na caixa de ferramentas de programação porque permitem que você separe seu programa em blocos significativos. Na próxima palestra, vamos explicar algumas funções integradas do Python. Obrigado por assistir. 94. Funções Built: Olá alunos e parabéns, você chegou até aqui. Agora você está familiarizado com loops e provavelmente começou a criar seus próprios projetos pequenos. Neste tutorial em vídeo, vamos aprender algumas das funções integradas mais úteis em Python. Vamos começar com a função len. A função len conta o comprimento de uma palavra. Então você pode passar a função len de um valor de string ou uma variável contendo uma string. E a função avalia o valor inteiro do número de caracteres nessa string. Vamos fazer alguns exemplos no shell. Tipo. O resultado é cinco porque há cinco caracteres na palavra Olá. Outro exemplo. Primeiro, o programa está pedindo ao usuário para inserir seu nome, digite seu nome e pressione enter. Em seguida, Python conta o caractere do nome e mostra o resultado. Ótima. Se você quiser fazer uma lista de números, você pode converter o resultado de um intervalo diretamente em uma lista usando a função lista. A função de intervalo facilita a geração de uma série de números. Em seguida, você pode usar a função lista para converter esse mesmo conjunto de números em lista. Ok, vamos ver no tipo de ação. Fizemos uma lista de números de um a nove. Finalmente, algumas funções construídas que nos ajudam a calcular estatísticas simples como mínimo, máximo e alguns, Eu já fiz uma lista chamada num. Vamos digitar. O resultado é um. Claro que sim. O resultado é nove. O resultado é 45. Existem dezenas de funções embutidas no Python, mas não se preocupe, você aprenderá apenas as úteis. Obrigado por assistir. 95. Definindo sua função: Bem-vindos de volta a todos. Uma característica útil do Python é definir suas funções e usá-las em todo o programa. Crie suas funções. Sim, isso mesmo. Aqui está a sintaxe para definir uma função. Agora vamos explicar a sintaxe em detalhes. A instrução def informa ao programa que o código da próxima linha é parte da função. Return é usado para retornar uma resposta da função. Uma vez que a função executa a instrução return, a função será encerrada. Se sua função não precisa retornar qualquer valor, essa instrução return é desnecessária ou você poderia escrever return none. Agora vamos definir nossa primeira função, abrir ocioso e digitar. Na linha um, escrevemos o título contém surdos e o nome de uma função, parênteses e, finalmente, dois pontos. A próxima linha forma o corpo da função. Agora execute o programa. Toda a definição define o significado do nome my_function, mas não faz mais nada. A definição em si não faz nada ser impresso ainda. É por isso que você não pode ver nada e visivelmente no shell após o Idol terminar de executar um programa, no entanto, sua versão do shell lembra definições de função do programa. Agora no shell Enter. Python volta e olha para a definição e, em seguida, executa o código dentro da definição da função, e, claro, imprime a mensagem. Vamos tentar algo diferente agora. Tipo. Nada acontece sem parênteses. Ele identifica o código de função é o valor e dar a localização na memória do código. Certo, agora uma função usando a instrução return. Neste programa, definimos uma função com dois números e retornamos a soma desses números. Digite o shell. Entrar. Consegues adivinhar porque tivemos este erro de sintaxe? A resposta é simples. Nós não pressionamos enter duas vezes depois desta linha, então nós realmente não definimos a soma da função dois números. Vamos executar novamente a função. Ok, agora digite. Claro que o resultado é 11. Espero que tenhamos um vislumbre de como definir nossas funções. Obrigado por assistir. 96. Mais construído em funções: Bem-vindos de volta a todos. Nesta lição, veremos cinco funções incorporadas que são comumente usadas por programadores Python. Eu descreverei o que eles fazem e como usá-los e mostrarei exemplos de como eles podem ajudar em seus programas. A função ABS retorna o valor absoluto de um número, que é o valor de um número sem seu sinal. Por exemplo, o valor absoluto de dez é dez e o valor absoluto de dez negativo é dez. Para usar a função ABS, basta chamá-la com os números ou variável como seu parâmetro como este. Você pode usar a função ABS para fazer algo como calcular uma quantidade absoluta de movimentos de um personagem em um jogo, não importa em que a direção que o personagem de viajar. Por exemplo, digamos que o personagem dê três passos à direita, três positivos, e depois dez passos à esquerda, dez negativos ou menos dez. Se não nos importássemos com a direção positiva ou negativa, o valor absoluto desses números seria 310. Você pode usar isso em um jogo de tabuleiro onde você rola dois dados e, em seguida, mover seu personagem ou número máximo de selos em qualquer direção com base no total dos dados. Agora, se armazenarmos o número de passos em uma variável, podemos determinar se o caractere está se movendo com o código abaixo. Podemos querer exibir algumas informações quando o personagem é projetado para se mover. Neste caso, vamos apenas exibir personagem está se movendo. Se não tivermos usado a declaração se pode parecer com isso. Como você pode ver, usar ABS faz com que a declaração pareça um pouco mais curta e mais fácil de entender. O nome Bool é diminutivo de Booleano. A palavra programadores usar para descrever um tipo de dados que pode ter um ou dois valores possíveis, geralmente verdadeiro ou falso. A função bool faz um único parâmetro e retorna verdadeiro ou falso com base em seu valor. Ao usar bool para números, 0 retorna false enquanto qualquer outro número retorna true. Veja como você pode usar bool com vários números. Quando você usa bool para outros valores como strings, ele retorna false se não houver nenhum valor para a string, em outras palavras, a palavra-chave none ou uma string vazia. Caso contrário, ele retornará verdadeiro como mostrado aqui. A função bool também retornará false para listas, tuplas e mapas que não contêm quaisquer valores são verdadeiros quando o fazem. Você pode usar bool quando decidir se um valor foi centrado em. Por exemplo, se pedirmos às pessoas que usam nosso programa para entrar no ano em que nasceram, nossa declaração se poderia usar bool para testar o valor que inserem. A primeira linha deste exemplo usa a entrada para armazenar quando alguém entra no teclado é o ano variável. Pressionando Enter na próxima linha sem digitar mais nada, armazena o valor da tecla Enter e da variável. Na linha a seguir, a instrução if verifica o valor booleano da variável depois de usar a função rstrip, que remove todos os espaços em caracteres Andrew do final da string. Porque o usuário não inseriu nada. Neste exemplo, a função bool retorna false porque esta instrução if usa a palavra-chave not. É uma maneira de dizer, faça isso se a função não retornar true. E assim o código imprime, você precisa inserir um valor para o ano de seu nascimento. Na próxima linha. A função eval, abreviação para evaluar, toma uma string como parâmetro e a executa como se fosse uma expressão Python. Por exemplo, Eval Print, Wow, irá realmente executar a impressão da instrução. Bem, a função eval funciona apenas com expressões simples como as seguintes. E a função eval é frequentemente usada para transformar a entrada do usuário em expressões Python. Por exemplo, você pode escrever um programa de calculadora simples que lê equações inseridas em Python e, em seguida, calcular barra avalia as respostas. Uma vez que uma entrada de usuário é lida como uma string, Python precisa convertê-lo em números e operadores antes de fazer qualquer cálculo. A função eval faz com que a conversão facilitando. Neste exemplo, usamos a entrada para ler o que o usuário insere em sua variável, seu cálculo de sublinhado. Na próxima linha, entramos na expressão cinco vezes 20, talvez sua idade multiplicada pelo número de semanas em um ano. Usamos e-mail para executar este cálculo e o resultado é impresso na linha final. A função exata é como o mal, exceto que você pode usá-lo para executar programas mais complicados. A diferença entre os dois é que o email retorna um valor, algo que você pode salvar como uma variável onde exatamente como não. Aqui está um exemplo. Nas duas primeiras linhas, criamos uma variável com uma string de várias linhas contendo duas instruções de impressão e, em seguida, usar executor na string. Você poderia usar exato, executar muitos programas em seu programa Python lê em arquivos, realmente programas dentro de programas. Isso pode ser bastante útil ao escrever aplicativos longos e complicados. Por exemplo, você poderia criar um jogo de robô. Somos dois robôs se movem em torno de uma tela e tentamos atacar um ao outro. Os jogadores do jogo forneceriam as instruções para seus robôs. Como muitos programas Python os robôs ganham leriam nesses scripts e usam execução exata. A função de intervalo, como já vimos antes, é usada principalmente para loops, para percorrer uma seção de código um número específico de vezes os dois primeiros parâmetros dados para organizar ou chamar o início e o stop. Você viu o intervalo desses dois parâmetros no exemplo anterior usando a função len para trabalhar com um loop. Os números que o intervalo gera começam com o número dado como o parâmetro bolsa e N com um número que é um menor que o segundo parâmetro. Por exemplo, a seguir mostra o que acontece quando imprimimos os números que o intervalo cria entre 05. A função de intervalo realmente retorna um objeto especial chamado um iterador que repete uma ação de um número de vezes. Neste caso, ele retorna o próximo número mais alto cada vez que ele é chamado. Você pode converter o iterador em uma lista usando a lista de funções. Se você, em seguida, imprimir o valor de retorno ao chamar o intervalo, você verá os números que ele contém também. Você também pode adicionar um terceiro parâmetro para intervalo chamado passo. Se o valor da etapa não estiver incluído, o número um será usado como uma etapa por padrão. Mas o que acontece quando passarmos o número dois como o degrau? Aqui está o resultado. 97. Scopes globais e locais: O escopo é algo que é inicialmente difícil de entender ao iniciar a programação e globais, moradores e vars permitem que você entenda o escopo um pouco melhor. Isso é melhor demonstrado no contexto de um programa. Então aqui você pode ver um programa com um ser igual a um sendo igual à string global e c é igual à string outro global. Mas como você pode saber dentro de uma função, os mesmos nomes de variáveis podem ser redefinidos com valores diferentes e eles não se referem à mesma variável real. Então aqui definindo uma função onde a está sendo definido como dois, b está sendo definido para estes string local. E então esses dois valores serão impressos. Enquanto isso, no escopo do nosso Main, vamos imprimir os valores de a e B. Em seguida, chamar a função, que irá imprimir esses valores, tendo que encontrar valores locais deles. E então nós vamos imprimir A e B novamente para ver se eles foram ou não permanentemente alterados enquanto em função. Vamos ver o programa em execução. Você pode ver aqui que estavam no escopo global. Então essa é a linha aqui. E lá temos as versões locais de a e b sendo impressas. Então, uma vez que estamos de volta ao escopo global, e B estão de volta com valores que esperaríamos lá. Agora, às vezes, é difícil saber quais variáveis foram definidas ou disponíveis para você em qualquer escopo específico. Este exemplo é um programa bastante simples, mas entender o que está acontecendo é um programa mais complicado e isso pode ser mais difícil. Uma função que é particularmente útil é vars. Se imprimir vars, Ele irá mostrar quais variáveis estão disponíveis neste escopo, e ele irá imprimi-los na forma de um dicionário. Executando o programa. Você pode ver que nós imprimimos vars, as variáveis disponíveis neste escopo local, R, é igual a dois e b é igual a Local, que é o que foi impresso. No entanto, se tirarmos esse código desta linha, então exatamente a mesma coisa. Imprima vars. Se colocarmos isso aqui depois de voltarmos ao escopo global, você verá que há mais valores disponíveis. Então aqui temos esses valores de dicionário muito maiores. Mas a coisa mais importante é para nós neste ponto, é que a é igual a um, B é igual a global, e C tem um valor de outro global. Portanto, diferentes valores estão disponíveis dependendo do escopo em que estamos. Como você viu, estes são os vars que estão disponíveis no escopo global. E em vez de imprimir, vars, pode imprimir usando a função global, que nos dá as variáveis de escopo global em qualquer ponto. Então aqui você pode ver que ele dá a mesma saída porque os vars são os vars globais quando impressos no escopo global. No entanto, eu acho que isso pode enlamear a água um pouco porque é uma função diferente. Ele não ilustra a diferença nessas variáveis disponíveis na função. E o escopo global é o mesmo porque você poderia imprimir globals fora enquanto dentro da função. Então, se isso for impresso enquanto dentro da função. Então, se movermos globais para serem impressos dentro da função, você pode ver que estas são as variáveis locais e estas são as variáveis globais. Se isso for impresso, você pode vê-lo exatamente ao mesmo tempo. O valor global de a é um e b é global, enquanto a é 2x e B é local. Então isso pode ficar um pouco confuso. Mas é certamente muito útil ser capaz de imprimir vars porque você pode entender quais variáveis estão disponíveis para você no ponto nesse escopo. E se você não tiver certeza de qual escopo da função está sendo executado, você pode usar vars para entender o que está acontecendo. Mas há algo mais que também enlamea ligeiramente a água, que é se apontarmos Veja, não está definido dentro desta função. Então, se não pudermos encontrá-lo no escopo local, ele verá o valor dele a partir do escopo global. Então, se executarmos isso, você pode ver que, apesar do fato de que ele não está definido no escopo local, vê acessível a partir do escopo global da linha três, porque ele não está definido dentro dessa função. Isso é algo que você precisa para gastar um pouco de tempo se aproximando. Mas uma vez que você entenda, vai ajudar na sua compreensão do que está acontecendo em geral. Mas é fácil dizer a si mesmo em nós, principalmente se você usar os mesmos nomes de variáveis dentro de uma função como fora de uma função. Então o local a é diferente do ei global, é por isso que pode ficar confuso. E é uma boa idéia não nomear suas variáveis locais com o mesmo nome de uma variável global. 98. PROJETO: de orientação aprimorada (parte 2) - PARTE 1: Tudo bem, vamos falar sobre como você pode melhorar seu projeto de jogo de adivinhação. Aprendemos sobre funções, então estamos prontos para aplicá-las neste projeto, você pode pegar esse conhecimento e converter seu projeto e jogo de adivinhação para que ele use funções. O primeiro passo é adicionar um módulo não encolhe no início do arquivo para explicar o que o programa faz, podemos usar aspas triplas no início e no final do docstring. Agora estamos prontos para atualizá-lo e fazer uso de uma função. Vamos nomear a função como adivinhar rodada. Vamos criar um stub função para fazer adivinhar rodada. Agora, qual é a função stub? Se você sabe que você vai precisar de uma função, mas não tem certeza sobre os detalhes. Você pode usar a palavra chave passe e deixar o bloco de código para ser preenchido mais tarde. Uma função vazia como esta, um stub permite que você defina a função. Ele falhará se não houver blog de código, mas resolveremos os detalhes mais tarde. É principalmente um lugar para ajudar você a organizar seus pensamentos. Se você incluir o docstring, então você não precisa de nenhuma instrução path. Provavelmente foi revisado, incluir o docstring, recuar o código para torná-lo parte do bloco de código de função. Agora você pode adicionar uma linha no final do programa para fazer a função de adivinhar round. Vamos executar o programa. Obviamente há um problema. O jogo não é reiniciado. Você pode descobrir o porquê? Certo? Precisamos adicionar uma linha que chama a função do palpite redondo de dentro do loop. Vamos tentar de novo. Agora o programa é reiniciado. Veja que toda vez que o jogo é reiniciado, o computador responde exatamente o mesmo. E não é assim que o jogo deve ser executado. O computador deve escolher um número diferente para cada rodada. Vamos parar o código com controle mais c. Porque o número é o mesmo de cada vez. Provavelmente é um problema com a forma como ele é armazenado ou escolhido. Pense em como o caminho do Python o segue quando ele flui através deste código e onde a escolha do número ocorre em relação a esse fluxo. Tentou descobrir o porquê. Agora vamos resolver esse problema lógico. O programa continua adivinhando o mesmo número devido a um problema com o local aleatório da função INT Rand. O programa passa por essas etapas quando você executa o programa, um executa a importação, dois escolhe um número aleatório, três atribui um valor a um prompt para define uma função, mas ainda não a executa. Cinco começa um loop. Seis repetidamente chama a função de dentro do loop sem escolher um número aleatório. Quando chama a função, o número aleatório não é escolhido novamente, os mesmos números escolhidos cada vez. Você pode corrigi-lo colocando o código, escolhendo o número dentro da função. Você pode gerar a rodada adicionando instruções de impressão para esclarecer quando uma nova rodada começou. Você faz isso colocando o código de instruções de impressão em um loop while. Além disso, exclua a função redonda Dugas de dentro do loop. Adicionar uma nova linha, escolher um número aleatório dentro da função resolve um problema lógico. Se isso é tudo o que você vai fazer, você vai excluir a primeira referência ao número de sublinhado de computadores. Não o apaga porque quero que repares em duas coisas. Primeiro, o programa parece estar funcionando como se houvesse duas variáveis chamadas número de computadores. Em segundo lugar, mesmo que os novos valores continuam sendo atribuídos a uma variável nomeada número de computadores dentro da função. Essas atribuições não alteram o valor fora da função. Execute o programa. Agora, para ver isso acontecer. Funciona bem. Pare o código com controle mais C. Aqui está um excelente exemplo de um escopo variável que discutimos em uma lição anterior no código anterior. E o número de computadores de nome é usado mais de uma vez. Há um dentro da função que adivinham rodada e um definido no principal. Mas nunca os dois devem se encontrar. É como se estivessem em diferentes dimensões. O que acontece com uma dimensão não acontece com a outra. Na verdade, cada vez que a função adivinhar rodada é chamado. A variável é uma variável diferente, mas tem o mesmo nome. O programa não se lembra do valor que tinha último stand, a função foi chamada de variáveis que definem dentro de uma função são chamadas variáveis locais. Isso significa que quando você está escolhendo o nome de uma variável dentro de sua função, você não precisa se lembrar dos nomes de todas as outras variáveis que você já usou. Parte 1 do jogo de adivinhação terminou. Estude novamente o que você fez até agora, e se você estiver pronto, vamos passar para a parte dois. Obrigado por assistir. 99. PROJETO: de orientação aprimorada (o jogo de orientação (parte 2) - PARTE 2: Agora é hora de enfeitar o seu jogo um pouco adicionando uma pontuação e uma maneira mais fácil de sair, você não pode esperar que seu usuário saiba sobre controle mais C, o programa será alterado. Então esse tipo de mantém o controle do número de rodadas que o usuário jogou e o número total de suposições feitas a partir do qual o número médio de suposições pode ser calculado. Para rodadas de rastreamento, o primeiro passo é adicionar uma variável chamada rondas totais ao programa principal. Então você tem que incrementar o aumento em um total de rodadas nas partes principais enquanto loop. Para rastrear suposições, o primeiro passo é adicionar uma variável chamada suposições totais. Na função rodada de Dugas. O programa mantém o controle de quantas suposições foram feitas enquanto na função. Parte do nome do programa não pode chegar às variáveis dentro da função. Eles são locais para essa função. Vamos nomear este número variável de suposições para obter o valor de volta para a parte principal do programa. Eles são retornados pela palavra-chave return e armazenados em uma variável chamada esta rodada. Um total de suposições é limitado adicionando esse valor às adivinhações de sublinhado total da variável. Isso é então usado para calcular o número médio de suposições por rodada sendo o número total de suposições dividido pelo número total de rodadas. O fluxo build-in é usado para o quarto Python para usar decimal em vez de aritmética de inteiro. Algumas das instruções de impressão no loop while True foram alteradas e algumas foram adicionadas para dar ao usuário mais informações sobre a rodada. Execute o programa para ver se ele funciona. Legal. Agora pare o programa e volte para o editor. Este é o fim da segunda parte. Por favor, pratique o que aprendeu e continue para a parte final do nosso jogo de adivinhação Python. 100. PROJETO: de orientação aprimorada (o jogo 2 (PARTE 3: Bem-vindos de volta a todos. Na parte final do projeto, vamos pensar em uma solução quando um usuário pode sair do programa digitando a letra Q. Então vamos mergulhar. Os usuários geralmente não querem sair de algo digitando acidentalmente algo. Então, em vez de sair imediatamente, uma rotina pede ao usuário para confirmar o encerramento. A resposta padrão será sim. Primeiro vamos criar a função para confirmar o encerramento. Vamos ver os passos um por 11 criar uma mensagem de confirmação constante equipada para usar como um prompt para confirmar o Quit, para criar uma função chamada confirmar sair e, em seguida, confirmar sair função, pedir ao usuário para confirmar digitando por que usar a entrada, os jogadores pedem entrada e a resposta é armazenada em uma variável chamada confirm. Confirme com o usuário digitado é n, em seguida, a função confirm quit retorna false. Isso significa que o programa deve abortar a guerra perplexo. Confirmar é qualquer outra coisa, incluindo o usuário pressionando enter sem pressionar qualquer outra tecla ou mesmo um N maiúsculo, então a função retornará true, confirmando que o usuário quer sair. O padrão da função é confirmar a saída em vez de abortá-la. Isso pressupõe que na maioria das vezes seu usuário realmente deseja sair do jogo. Agora vamos continuar a definir um texto de sublinhado de saída constante para manter a letra Q, que é o que o usuário deve pressionar se quiser sair. Você pode fazê-los fazer um número de retorno redondo palpite que nunca será um número válido de suposições. Algo como minus1 é ideal uma vez que o número de suposições nunca pode ser negativo. Você também pode escolher um número como 100 mil na suposição de que ninguém nunca vai fazer tantas suposições. Minha preferência é menos1. Em seguida, definir um programa de saída constante que você está adivinhar função redonda irá retornar se o usuário está saindo, atribuído o valor de menos um para sair. Azure novas constantes após importação aleatória na função de adivinhar rodada em uma verificação para ver se o usuário digitou q em vez de um número. Se eles tiverem chamado a função de confirmação de saída para confirmar. Se a chamada para confirmar sair retornar um valor de true, saia. Faça o programa de encerramento de retorno de bloco de código. Isso deixa a função e retorna o valor de menos um. Caso contrário, faça com que o bloco de código continue, torne-o a única linha no bloco de código. A palavra-chave continue faz uma reinicialização de loop na parte superior do bloco de código do loop, dependendo do tipo de loop, isso também pode significar que o contador de loops é incrementado. Seu novo código deve ir após a linha de entrada. Cada vez que um jogador adivinha, o palpite é comparado para ver se é o mesmo que sai do texto sublinhado. Isso é q. se for, então o jogador é solicitado a confirmar chamando a função de confirmação de saída. Se for confirmado, então adivinhe saída redonda, retornando o valor de menos um, que é armazenado na consoante da mensagem de saída. Não é o usuário digitado Q por engano continua, ignora o resto da iteração atual do loop e reinicie uma nova iteração. Como os palpites do jogador em um número, é Q, você receberá um erro. Por esse motivo, o resto do loop precisa ser ignorado. A última coisa a fazer é voltar ao principal, verificar se o valor sair programa retornou para a variável nesta rodada. Se for devido a este, gere uma mensagem de postura para imprimir porque o código está incrementando esta rodada porque espera que o jogador adivinhe corretamente. Ele precisa ser decrementado quando o código do programa sair é retornado. Antes de calcular a posição dos jogadores, calcule o número médio de palpites dos jogadores por rodada. O total de suposições dividido pelo número total de rodadas. Para sair do loop while. No final do programa, imprima a mensagem de status para adicionar algumas declarações de impressão no final para imprimir as estatísticas. No geral, na parte principal do programa. Cada vez que Python retorna a função round Dugas, ele vê se o valor do programa equipar foi retornado. Se tiver, o programa prepara algumas mensagens a serem impressas na saída e imprime fora do loop while principal. Depois que as mensagens são impressas, o fim do arquivo é alcançado no programa termina. Vou dar uma olhada rápida no programa agora. Então é hora de executar o programa final. Vamos jogar três rodadas. Esqueci-me da ronda total. Vamos clicar. Corra de novo. E funciona muito bem. Agora quero dar-vos dois desafios e quero que tentem encontrar as respostas. Mas primeiro você tem que assistir as lições e estudar a seção que lida com erros. Vamos executar novamente o programa e sem qualquer palpite, pressionado o q para sair, confirmar com sim. E olhe para as rondas. As rondas totais são 0. Você não pode dividir com 0, é claro. O segundo desafio é o seguinte. Execute o programa novamente e em vez de um número, pressione uma letra é um número de adivinhação em um enter, temos um erro de valor porque o programa aceita apenas inteiros. Você vai encontrar ambas as soluções para os desafios se você quiser as lições da seção lidar com erros. Uau, você já fez muito. Por favor, faça sua lição de casa, tente resolver o projeto por conta própria. Então você vai ganhar habilidades e aprender novas áreas de Python que você não conhecia antes. E isso pode lhe dar grande confiança e ser capaz abordar problemas mais difíceis ainda mais abaixo. Se tiver alguma pergunta, ficarei mais do que feliz em ajudá-lo. Obrigado por assistir. 101. Abordando erros: A maioria dos códigos de aplicação de qualquer complexidade tem erros nele. Os humanos escrevem aplicações em humanos cometem erros. No entanto, podem ocorrer erros que não fornecem nenhum tipo de notificação. Esta seção informa sobre vários tipos de erros e o que fazer quando seu aplicativo os encontra. A maioria dos desenvolvedores chama exceções de erro de aplicativo, o que significa que eles são a exceção à regra. Como exceções duplo aplicativos atuais, você precisa detectar e fazer algo sobre eles sempre que possível. O ato de ver e processar e exceção é chamado de manipulação de erros ou manipulação de exceção. Para detectar corretamente erros, você precisa saber sobre fontes de erro em y erros foram em primeiro lugar. Quando você notar o erro, você deve processá-lo capturando a exceção. Ver uma exceção significa examiná-la e possivelmente fazer algo a respeito. Às vezes você o chama, detecta um erro no aplicativo. Quando isso acontece, você precisa aumentar ou lançar uma exceção. Você vê que ambos os termos foram usados para a mesma coisa, que significa simplesmente que seu código encontrou um erro que não conseguiu lidar. Então, a passar a informação de erro para ele em outro pedaço de código para gerenciar. Em alguns casos, você pode usar objetos de mensagem de erro personalizados para transmitir as informações. Mesmo que Python tem uma riqueza de mensagens genéricas em objetos que cobrem a maioria das situações, algumas situações ou especiais. Você precisa saber como lidar com exceções localmente. Envie-os para o código que chamou o seu código. Quando criar exceção especial para que cada parte do aplicativo saiba como lidar com a isenção. Python fornece a cláusula final que sempre executa mesmo quando ocorre uma exceção. Você pode colocar código para fechar arquivos ou executar outras tarefas centrais no bloco de código associado a essa cláusula. Quando ocorre um erro, as pessoas costumam dizer que um aplicativo tem um bug nele. Bugs são simplesmente erros de codificação que você pode remover usando um depurador. Um depurador é um tipo especial de ferramenta que permite parar ou pausar a execução do aplicativo, examinar o conteúdo das variáveis e geralmente o aplicativo para ver o que o faz marcar. Os erros se enquadram em categorias bem definidas que ajudam você a prever até certo ponto quando o fim de onde eles ocorrerão. Os dois tipos principais são setas que ocorrem em um momento específico e erros que são um tipo específico. As setas ocorrem em momentos específicos. Os dois timeframes principais são o tempo de compilação e o tempo de execução. Um erro de tempo de compilação ocorre quando você pede ao Python para executar o aplicativo. Antes que o Python possa executar o aplicativo, ele deve interpretar o código em, colocá-lo em uma forma que o computador possa entender. Se as instruções que você escreve não têm as informações necessárias. Python não pode executar a conversão necessária. Felizmente, os erros de tempo de compilação são os mais fáceis de detectar e corrigir. Tempo de execução. Um erro de tempo de execução ocorre depois que o python compila o código que você escreve e um computador começa a executá-lo. Erros de tempo de execução vêm em vários tipos diferentes e alguns são mais difíceis de encontrar do que outros. Você sabe, você tem um erro de tempo de execução quando o aplicativo de repente pára de ser executado e exibe uma caixa de diálogo de exceção. Compreender os tipos de erro ajuda você a localizar erros mais rapidamente, cedo e de forma mais consistente, resultando em menos erros de diagnóstico. O truque é saber onde olhar com isso em mente, Python na maioria das outras linguagens de programação quebra erros nos seguintes tipos. Sintática, semântica e lógica. Erros sintáticos, geralmente o mais fácil, um erro lógico é tipicamente o mais difícil. Nas palestras a seguir, examinaremos cada um desses tipos de erro em detalhes. Obrigado por assistir. 102. Problemas de Syntax comuns: Quando você encontrar um erro de sintaxe pela primeira vez, é útil saber por que houve um problema e o que você pode fazer para corrigir o desequilíbrio intacto em seu código Python. Nesta lição, você verá alguns dos motivos mais comuns pelos quais erros de sintaxe podem ser gerados. Se isso é devido a um erro de digitação ou a um mal-entendido da sintaxe Python. E o mais importante, como você pode corrigi-los e evitá-los inteiramente no futuro. Existem vários casos em Python onde você não é capaz de fazer atribuições para objetos. Alguns exemplos estão atribuindo dois literais e chamadas de função no código a seguir, você verá alguns exemplos que tentam fazer isso e os erros de sintaxe resultante rastrear volta. Então aqui vamos tentar atribuir cinco para o comprimento de olá. Agora, como você pode ver, isso gerou um erro de sintaxe dizendo que ele não pode atribuir a uma gall de função. Aqui está outro exemplo. Não é possível atribuir ao literal. O exemplo aqui ambos tentando fazer a mesma coisa, atribuindo a uma string ou um inteiro para literais. A mesma regra é verdadeira para outros valores literais. Mais uma vez, as mensagens de rastreio aqui indicam que o problema ocorre quando você tenta atribuir um valor a um literal. Uma coisa a observar aqui é que os exemplos no shell estão faltando a linha de código repetida e a cenoura apontando para o problema e o rastreamento de volta. As exceções e rastreios que você vê no raso ou diferente de quando você executa o código de um arquivo. Se este fosse o código, você está em um arquivo, você obtém a linha de código repetido e cuidado apontando para o problema como você viu anteriormente. Então esse tipo de uso indevido do operador de atribuição é o tipo de coisa. Certamente posso dizer que faço mais do que não deveria admitir. Muitas vezes é feito porque eu esqueço o sinal de igual extra quando estou tentando fazer uma comparação. Então, vendo este primeiro exemplo corrigido, faz o que eu realmente queria, que era verificar se o comprimento de Olá é igual a cinco. E você pode ver que ele retorna o valor true. A maior parte do Python a favor do vento diz que você está fazendo uma atribuição para algo que não pode ser atribuído. Esta é a coisa a verificar primeiro que, de fato, você deve estar fazendo uma comparação. Palavras-chave Python ou um conjunto de palavras protegidas que têm um significado especial em Python. Estas são as palavras que não podem usar como identificadores, variáveis ou nomes de funções em seu código. Eles são parte da linguagem e só pode ser usado no contexto de Python permite, Existem três maneiras comuns que você pode erroneamente usado palavras-chave, ortografia incorreta de uma palavra-chave, falta de uma palavra-chave, ou mau uso de uma palavra-chave. Se você soletrar incorretamente uma palavra-chave em seu código Python, provavelmente você receberá um erro de sintaxe. Por exemplo, aqui está o que acontece se você derramar a palavra-chave incorretamente. A mensagem lê erro de sintaxe, sintaxe inválida, mas isso não é muito útil. O traceback aponta para o primeiro lugar onde Python poderia detectar algo estava errado. Para corrigir este tipo de erro certifica-se de que todas as suas palavras-chave Python estão escritas corretamente. Outro problema comum com palavras-chave é quando você perde todas elas juntas. Mais uma vez, a mensagem de exceção não é tão útil, mas o traceback tenta apontá-lo na direção certa. Se você voltar da cenoura, você pode ver que na palavra-chave está faltando na sintaxe do loop for. Você também pode usar indevidamente uma palavra-chave Python protegida. Lembre-se que as palavras-chave só podem ser usadas em situações específicas. Se você usá-los incorretamente, então você terá uma sintaxe inválida em seu código Python. Um exemplo comum disso é o uso de continuar ou quebrar fora de um loop. Isso pode acontecer facilmente durante o desenvolvimento quando você está implementando coisas e acontece mover a lógica para fora de um loop. Aqui, Python faz um bom trabalho de dizer-lhe exatamente o que está errado neste exemplo, o método quebra fora do loop ajuda você a descobrir exatamente o que fazer. Se este código estivesse em um arquivo no Python também teria a cenoura apontando diretamente para a palavra-chave mal utilizada. O uso indevido de continue segue um padrão simples de gerar um erro de sintaxe com uma mensagem diferente. Outro exemplo é se você tentar atribuir uma palavra-chave Python a uma variável ou usar uma palavra-chave para definir uma função. Quando você tenta atribuir um valor a uma passagem, ou quando tenta definir uma nova função chamada pass, você receberá um erro de sintaxe e verá a mensagem de sintaxe inválida. Novamente. Pode ser um pouco mais difícil resolver este tipo de sintaxe inválida no código Python, porque o código parece bem do lado de fora, se você chamar, ele parece bom, mas você ainda está recebendo um erro de sintaxe, então você pode considerar verificar o ou o nome da função que você deseja usar contra a lista de palavras-chave para a versão do Python que você está usando, a lista de palavras-chave protegidas é alterada com cada nova versão do Python. Por exemplo, no Python 3.6, você pode usar um peso como um nome de variável ou nome de função. Mas como Python 3.7, essa palavra foi adicionada à lista de palavras-chave. Agora, se você usasse um peso como uma variável ou nome de função, e isso causará um erro de sintaxe se o código estiver sendo executado no Python 3.7 ou posterior. Outro exemplo é esta impressão, que difere do Python dois versus Python três. Imprimir é uma palavra-chave em Python 2x, então você não pode atribuir um valor a ele no Python três, entanto, é uma função interna que pode ser atribuído valores. Você pode executar o seguinte código para ver a lista de palavras-chave em qualquer versão do python que você está executando. Uma palavra-chave também está fornecendo o útil é função de palavra-chave. Se você precisar de uma maneira rápida de verificar a variável de caminho, então você pode usar o seguinte código. Este código irá dizer-lhe rapidamente se o identificador que está a utilizar é uma palavra-chave ou não. Muitas vezes, o uso de uma sintaxe inválida no código Python é uma roupa, parênteses, colchetes ou aspas mal interpretadas ou incompatíveis . Estes podem ser difíceis de detectar linhas excessivamente longas de parênteses aninhados ou blocos de várias linhas mais longos. Você pode detectar incompatibilidade ou citação perdida com a ajuda de tracebacks do Python. Aqui estão os pontos de traceback para o código inválido, onde há um T e uma única citação após o fechamento anterior. Para corrigir isso, você pode fazer uma das alterações du. Em primeiro lugar, você pode escapar a aspas simples com uma barra invertida é visto no exemplo aqui. Já podemos ver que o shell está destacando este código adequadamente. Então parece que vai ficar tudo bem. Python também está feliz com ele. A segunda opção é cercar toda a string entre aspas duplas em vez disso, como visto no exemplo abaixo, vamos ver isso em ação. Mais uma vez, você pode ver que o shell está destacando isso adequadamente para uma string. Então parece estar feliz com o que fizemos. Assim como Python. Outro erro comum é esquecer de fechar uma string com aspas duplas em strings entre aspas simples. A situação e os tracebacks serão os mesmos. Desta vez, a cenoura no rastreamento aponta diretamente para o código do problema. Esta mensagem de erro de sintaxe EOL durante a varredura do literal de string é um pouco mais específica e útil na determinação do problema. Isso significa que o interpretador Python chegou ao fim da linha, o EOL, antes de uma string aberta ser fechada. Para corrigir isso, feche a string com uma aspas que corresponda à que você usa para iniciá-la. Nesses casos, o primeiro seria com aspas duplas, o segundo seria com uma única citação. Citação ausente de instruções dentro de uma string F também pode levar a sintaxe inválida no Python. Aqui a referência ao dicionário de idades dentro da String F impressa está faltando a aspas simples de fechamento da referência chave. 103. Torne-se um caçador de bug: Bugs são parte integrante da programação. Uma vez que você tenha ido além do programa mais simples que você cria, você sem dúvida encontrará isso. Pode ser uma parte frustrante da experiência de aprendizagem, mas você verá que muitas vezes é a experiência mais gratificante que lhe ensinará as lições que você precisa conhecer o orgulho. Lembre-se, ninguém cria código sem bugs. A chave para encontrar insetos. Metódico. Não adianta apenas tentar mudar as coisas aleatoriamente. É melhor tentar entrar na mente do que o computador está tentando fazer e ver se ele está realmente fazendo o que você pensa que está fazendo. Muitos tem sido no momento em que é parece que ele está fazendo o que eu acho que é, mas na verdade eu olhei para os detalhes dele e talvez ter tido sorte. E na verdade é muito menos do que o que eu tinha planejado originalmente. Vamos olhar para duas maneiras de resolver os problemas. Em primeiro lugar, o modo antigo preferido por Guido van Rossum, que estava usando declarações impressas. Então agora que você vai ver isso em ação. E também você pode detectar o bug que está presente nele. Mas a idéia é realmente vai criar um programa que é simples de entender em vez de criar um bug histérico difícil de encontrar. Não se preocupe, você terá muitos para lidar mais tarde. Então você vai ver um jogo de adivinhação de números simples. O computador vai pensar em um número entre 110, então o usuário tem que adivinhar, e então o computador dirá ao usuário se ele acertou ou não. Aí vem o código. Vou importar a biblioteca aleatória para nos permitir gerar um número aleatório. Imprima uma mensagem para o usuário, crie o número aleatório. E agora vamos deixar o usuário inserir seus convidados e atribuir isso à variável guest. Agora vamos verificar seu palpite é o mesmo que o número. E se for, diremos a eles que estão certos. E se não for, diremos que estavam errados. Lá vamos nós. O programa está completo e agora você vai vê-lo em ação. Então eu vou apenas mantê-lo funcionando até que o bug se torne conhecido para nós. E lá depois da primeira vez, às vezes muitas mais vezes do que você esperava. Mas essa é a natureza da aleatoriedade. Vemos nosso inseto, dizendo: “ Desculpe, o número era cinco, não cinco.” Então até este ponto, você deve ter pensado que seu programa estava funcionando bem. Você poderia ter mostrado para alguém e ficar feliz com isso. E então alguém vai dizer “Espere um minuto”. Dizia que o número era cinco, não cinco. Qual é o problema aí? Então o que precisamos fazer é usar uma declaração impressa para nos ajudar a descobrir qual é o problema. Vou inserir um aqui. E agora vamos precisar reexecutar o programa. Neste caso, o que acabamos de imprimir não vai nos ajudar muito porque não é a representação, é o problema. É a informação real. Então vamos olhar um pouco mais fundo. Aqui. Vamos olhar um pouco mais fundo para isso e olhar para o tipo de número e adivinhar. E lá vemos o problema. O problema é que o nosso número não é negado e t porque foi criado aleatoriamente por um ponto rand INT. Mas nosso palpite é um SDR ou uma corda. E quando imprimimos STRS ou Ion Ts, eles parecem idênticos a nós na tela. Você deve ter notado que este não seria o caso se você estiver fazendo esse tipo de trabalho no shell Python. Portanto, é importante perceber que a impressão pode nem sempre mostrar todas as informações que você precisa para encontrar bugs sutis como este. Mas pode ser um método muito útil e rápido para descobrir o que está acontecendo quando um programa está sendo executado. Então, neste caso, para corrigir esse bug específico, a entrada precisa agora ser transformada em um INT. Agora isso cairia se o usuário digita algo que poderia ser transformado em um INT. Mas, neste caso, vamos deixar como é para ser agradável e claro. Então agora executamos o programa novamente e podemos ver que ambos são INT. E se eu rodar vezes o suficiente para acertar o palpite. Finalmente, chegamos a um ponto em que o palpite era cinco e o número era cinco. E podemos ver que o programa funciona como pretendido. Tendo visto a ação de impressão próxima PDB, o depurador python. Assim, na tela você pode ver o programa de adivinhação de número de buggy da sessão anterior. E agora vamos importar PDB para nos permitir usá-lo para depurar este programa. Então eu importei PDB no início e no ponto em que eu quero PDB para assumir a execução do programa, eu coloquei a seguinte linha. Também vou apagar as linhas de código que anexei. Então, como você pode ver, o programa será executado normalmente até chegar a este ponto. E então seremos capazes de assumir a execução passo a passo. E isso nos permitirá olhar dentro do programa como ele ainda está sendo executado na memória. Então nós começamos a digitar o número normalmente, mas como você pode ver, parece bem diferente. A linha PDB à esquerda nos mostra que o PDB assumiu a execução do programa. Agora é muito fácil esquecer onde você está no programa. Então, uma das principais instruções é usar i para a lista. Podemos ver que está nos mostrando uma seção do programa neste caso dizendo que estamos na linha sete. E a próxima instrução será adivinhar se é igual a número. Mas o que podemos fazer agora é olhar para o que está na memória do computador. E é muito parecido com um shell Python normal. Se eu digitar, podemos ver o valor de um número. Se eu digitar, podemos ver o valor de um palpite. E logo isso funcionou um pouco melhor do que imprimir porque está nos indicando que isso não é um INT, é uma string. Então, com este comando, já descobrimos qual é o problema. Enquanto que com a impressão, precisávamos aprofundar e imprimir manualmente esse tipo de variáveis em questão. Mas vamos deixar este programa seguir em frente. E podemos fazer com C para continuar. Como você pode ver, ele corre até o fim. Está ilustrando que funciona normalmente. E porque este é um pequeno programa simples, é o que precisamos fazer. Agora, se colocarmos rastros em um lugar diferente, podemos trapacear. Vamos dar uma olhada rápida nisso. Então agora eu coloquei antes e eu preciso colocar minhas suposições para que eu possa trapacear. Eu posso olhar dentro da mente do computador, ver o que ele é escolhido, e então colocar esse número, que às vezes seremos úteis para permitir que você não tenha que executar o programa 10, 15 a 20 vezes, etc. Vamos ver qual é o número. Então agora posso continuar. Está pedindo entradas. Agora, novamente, isso é realmente fácil de corrigir como você viu no vídeo anterior. Mas a idéia disso era dar uma idéia de como usar PDB. Mas também o PDB é uma coisa realmente flexível porque você não precisa digitar um monte de declarações impressas. Você pode apenas afetivamente pausar o tempo, olhar ao redor da memória do computador e descobrir o que está acontecendo sem ter que colocar 20 declarações impressas. Você pode percorrer o programa e examinou variáveis cada vez que ele vem ao redor. 104. Manicura de exceção básica: Ei, todo mundo. Nesta lição, vamos abordar como você pode lidar com erros usando try and except. Então vamos começar. Python fornece um recurso vital para lidar com qualquer erro inesperado em seus programas Python. Seu aplicativo deve sempre pegar a exceção e lidar com ela antes que o usuário a veja. Para lidar com exceções, você deve dizer ao Python o que fazer isso e, em seguida, fornecer código para executar as tarefas de manipulação. As declarações try and except é excelente para lidar com erros. É uma instrução de controle, uma vez que controla o programa prossegue quando ocorre um erro. Aqui está a sintaxe. Digite, o seguinte código. O programa tenta executar a instrução eritema dez dividido por 0, o que é impossível. Assim, o restante dos blocos try é ignorado e a instrução está no bloco except é executado em vez da mensagem de erro predefinida para cada um dos diferentes tipos de erros. Se você quiser exibir a mensagem, você pode usar a palavra-chave como após o tipo de erro. Por exemplo, para exibir a mensagem de erro de valor padrão, você escreve. E é o nome da variável atribuído ao erro. Este é um exemplo de usar as mensagens de erro predefinidas e detecta quaisquer erros inesperados. Para obter uma lista completa de tipos de erro em Python, você pode consultar este site. Se você quiser exibir mensagens de erro mais específicas para seus usuários, dependendo do erro, você pode especificar o tipo de erro após a palavra-chave exempt. Agora vamos trabalhar em alguns outros exemplos. O código dentro do bloco try tem suas exceções manipuladas. Nesse caso, manipular a exceção significa obter a entrada do usuário usando as chamadas de entrada INT. Se ocorrer uma exceção fora do bloco, o código não o manipula. O bloco exceto procura uma exceção específica, neste caso, erro de valor. Quando o usuário cria uma exceção de erro de valor digitando jam em vez de um valor numérico, esse bloco de exceção é executado. O bloco else contém todo o código executado com um código de bloco try é bem-sucedido, não gera um aplicativo. O restante do código está neste blog porque você não deseja executá-lo a menos que o usuário forneça entrada válida. Quando o usuário fornece um número inteiro como entrada, o código pode então verificá-lo para garantir que ele está correto. Execute o código e digite Jim em vez de um número entre 15. O aplicativo exibe uma mensagem de erro. Agora execute novamente o código e digite 20 em vez de um número entre 15. As saídas do aplicativo e mensagem de erro de intervalo inesperado. O tratamento de exceções não exclui erros de intervalo. Você pode criar um bloco de manipulação de exceção em Python que é genérico porque ele não se parece com uma exceção específica. Às vezes você pode precisar de uma exceção genérica. Vamos fazer um exemplo usando uma cláusula exceto sem uma isenção específica anexada a ela. O resultado é que esta cláusula exceto também irá capturar qualquer outra exceção que ocorre. O código detecta erros específicos primeiro e, em seguida, usa menos manipuladores específicos somente quando necessário. Execute o código e digite Jim. 105. Tratando múltiplas excepções: A maioria dos aplicativos pode gerar várias exceções para uma única linha de código usando uma única cláusula exceto para lidar com várias exceções funciona somente quando uma fonte comum de ação atende a todas as necessidades de exceção. Caso contrário, você precisa lidar com cada exceção individualmente. O exemplo a seguir mostra como lidar com várias exceções usando uma única cláusula exceto. Digite o seguinte código no editor. Observe que a cláusula except agora suporta um erro de valor e uma exceção de interrupção do teclado. Essas exceções aparecem entre parênteses e são separadas por vírgulas. Execute o código e digite Alan. Entrar. O aplicativo exibe uma mensagem de erro, execute novamente o código e pressione o controle mais c, a mesma mensagem de erro. Execute novamente e agora digite 20 e pressione enter. O aplicativo exibe a segunda mensagem de erro. Ao trabalhar com várias exceções, geralmente é uma boa idéia colocar cada exceção em sua própria cláusula exceto. Esta abordagem permite que você forneça o tratamento do cliente para cada exceção e torna mais fácil saber exatamente o que o aluguel errado. Claro, essa abordagem também é muito mais trabalho. Vamos fazer um exemplo de como executar o tratamento de exceção usando várias cláusulas exceto. Digite o seguinte código no editor. Cada cláusula de exame lida com a isenção diferente. Você pode usar uma combinação de técnicas, exceto cláusulas que lidam com apenas uma isenção e a outra, exceto cláusulas que tratam de várias exceções. Execute o código e pressione o controle mais c. Olhe para a mensagem. Agora corra de novo e pegue 20. A alteração da mensagem de erro para o valor que você digita está incorreta. Uma estratégia para lidar com exceções é fornecer as cláusulas exatas exceto para todas as exceções conhecidas e genéricas exceto cláusulas para lidar com exceções desconhecidas. Olhe para a exceção, uma hierarquia que Python usa neste endereço web. No exemplo a seguir, vamos usar a exceção base, que é a exceção superior, em seguida, a exceção de interrupção do teclado. E, em seguida, vamos usar a exceção ZeroDivisionError específica, tomar o seguinte código para o editor. O código começa pela obtenção de duas entradas, value1 e value2. As duas primeiras cláusulas exceto lidar com entrada inesperada. A terceira exceto cláusulas levantadas quando o resultado de uma operação aritmética é muito grande para ser representado, ou um número dividido por 0. A quarta cláusula exceto manipulou exceções matemáticas específicas, como dividir por 0. Se algo correr bem dentro do aplicativo, a cláusula else é executada, que imprime o resultado das operações. Execute o código. Python pede que você digite o primeiro número, digite Udemy e, como esperado, Python exibe uma mensagem de exceção de erro de valor. Execute o código novamente e digite cinco é o primeiro valor e 0 é o segundo valor. Agora você pode ver a exceção aritmética e a mensagem de erro. Aqui. Eu queria dizer que essa exceção aritmética não é tão útil, mas eu digitei para fins de aprendizagem. Vamos excluir essas linhas de código e executar o código inteiro. Agora você pode ver o erro de divisão 0 ser executado novamente e pressione controle mais C. Esta é a exceção de interrupção do teclado. Então, nesta lição eu forneci exatamente, exceto cláusulas para a maioria dos casos. Se você tiver dúvidas, por favor me avise. Obrigado por assistir. 106. Raising: Em algumas situações, seu aplicativo deve gerar uma exceção. Este ato é chamado de levantar ou, às vezes, lançar a exceção. Vamos ver alguns cenários comuns em que você pode gerar exceções de maneiras específicas. Vamos ver como você levanta uma simples exceção de que não requer nada de especial. As etapas a seguir simplesmente criar a exceção e, em seguida, manipulá-la imediatamente. Este código mostra como levantar uma exceção funciona em seu nível mais básico, executar o código em Python exibe a exceção esperada txt. Python fornece manipulação flexível de erros em que você pode passar informações para o chamador, o código que está chamando seu código, não importa qual exceção você usa, o código a seguir mostra que você pode modificar a saída para que inclui informações úteis. A isenção de erro de valor, geralmente não fornece um nome de atributo para um nome comum para erro de cadeia de caracteres. Mas você pode adicioná-lo apenas atribuindo um valor a ele é mostrado quando o exemplo levanta a exceção e a cláusula except a manipula como de costume, mas obtém acesso aos atributos usando e. Você pode então executar o quadrado e ponto. Lembre-se, para obter as informações adicionadas, execute o código e Python exibe e exceção de erro de valor expandido. Como você pode ver. 107. Como passar no IDLE 2021: Um bug é um problema inesperado em sua programação. Eles podem aparecer de várias formas e algumas são mais difíceis de consertar do que outras. Alguns bugs são complicados o suficiente para que você não consiga pegá-los apenas lendo seu programa. Felizmente, o Python idle fornece algumas ferramentas essenciais que ajudarão você a depurar seus programas com facilidade. Se você quiser executar seu código com o depurador interno, precisará ativar esse recurso. Para fazer isso, selecione depurador de depuração na barra de menus ociosa do Python. No intérprete, você deve ver a depuração em aparecer logo antes do prompt, o que significa que o intérprete está pronto e aguardando. Quando você executar o arquivo Python, a janela do depurador aparecerá. Nesta janela, você pode inspecionar os valores de suas variáveis locais e globais à medida que o código é executado. Isso fornece informações sobre como seus dados estão sendo manipulados à medida que seu código é executado, você também pode clicar nos botões a seguir para passar pelo código. Vá. Pressione isso para avançar a execução para o próximo ponto de interrupção. Você aprenderá sobre isso na próxima seção. Passo, pressione isso para executar a linha atual e vá para a próxima. Acabado. Se a linha de código atual contiver uma chamada de função, pressione esta para passar por cima dessa função. Em outras palavras, execute essa função para passar para a próxima linha. Mas não faça uma pausa durante a execução da função a menos que haja um ponto de interrupção. Se a linha de código atual for uma função, pressione esta para sair da função. Em outras palavras, continue a execução dessa função até retornar dela. Tenha cuidado porque não há botão reverso. Você só pode avançar no tempo durante a execução do seu programa. Você também verá quatro caixas de seleção na janela de depuração. Globals, informações globais de seus programas, locais, informações locais dos programas durante a execução. Stack, a função executada durante a execução, origem, o arquivo no editor ocioso. Ao selecionar um desses, você verá as informações relevantes na janela de depuração. Ponto de interrupção é uma linha de código que você definiu como um local onde o intérprete deve pausar durante a execução do código. Eles só funcionarão quando o modo de depuração estiver ativado. Certifique-se de que você fez isso primeiro. Para definir um ponto de interrupção, clique com o botão direito do mouse na linha de código que você deseja pausar. Isso destacará que a linha de código em amarelo é uma indicação visual de um ponto de interrupção definido. Você pode definir quantos pontos de interrupção em seu código quiser. Para desfazer um ponto de interrupção, clique com o botão direito na mesma linha novamente e selecione Limpar ponto de interrupção. Depois de definir seus pontos de interrupção e ativar o modo de depuração, você poderá executar o código como faria normalmente. A janela do depurador aparecerá e você poderá começar a percorrer seu código manualmente. Quando você vir um erro relatado a você no intérprete python, vou permitir que você salte para o arquivo ou linha ofensiva da barra de menus. Tudo o que você precisa fazer é destacar a linha relatada ou o número de nomes de arquivos com o cursor e selecionar depuração. Vá para as linhas de barra do arquivo na barra de menus. Isso abrirá o arquivo ofensivo e levará até aquela linha que contém o erro. Esse recurso funciona independentemente de o modo de depuração estar ativado ou não. Python ocioso também está fornecendo uma ferramenta chamada visualizador de pilha. Você pode acessá-lo na opção de depuração na barra de menus. Esta ferramenta mostrará a barra de controle de um erro conforme ele aparece na pilha. E a última linha da exceção que o Python ocioso encontrou ao executar seu código. Quando ocorre uma seta inesperada ou interessante, talvez seja útil dar uma olhada nessa pilha. Caso contrário, esse futuro pode ser difícil de analisar e provavelmente não será útil para você, a menos que você esteja escrevendo código muito complicado. 108. Rocha, papel e tesoura: Bem-vindo ao rock-paper-tesoura, um jogo de linha de comando. Nas próximas lições, você aprenderá sobre como escrever um jogo de rocho-paper-tesoura de linha de comando, lidar com a entrada do usuário, loop para vários jogos seguidos, criar funções para agrupar código, usar dicionários para armazenar regras e substituir constantes por objetos Ina. Uma nota rápida sobre versões. Todo o código nas lições foi testado usando Python 3.9. Não há muito aqui que seja primeiro e específico. Qualquer intérprete que comece com o Python 3.4 funcionará muito bem. O caminho comum para se interessar programação é através do amor pelos videogames. Isso faz com que escrever seu próprio jogo ou lugar lógico para começar quando você está aprendendo a codificar. Jogos gráficos têm coisas extras para aprender porque você está lidando com a retirada para a tela. Os jogos baseados em linha de comando são o caminho de entrada perfeito. Você pode escrever algum jogo de jogador de código, mas não deve ser enterrado sob um pouco de menosprecimento ou matemática vetorial. Se você nunca jogou antes, tesoura de papel de pedra é um jogo para duas pessoas que costuma ser usado para decidir rapidamente quem vai primeiro e um jogo de tabuleiro, quem recebe a primeira fatia de torta? Ronnie, decisão simples. Cada pessoa conta até três, agita o punho e depois faz um símbolo. Isso é chamado de arremesso. Os símbolos fazem com que as três maneiras circulem cada símbolo batendo o outro. As escolhas são e fazer um punho mostrar rock, rock esmaga Tesoura, fazer uma palma para mostrar papel, capas de papel rock ou mostrar dois dedos. Cuidado onde você está apontando aqueles na Grã-Bretanha para fazer a tesoura, tesoura cortar papel. Para criar uma versão baseada em texto do jogo, você precisará receber a entrada do usuário, escolher aleatoriamente o lançamento de um computador e comparar quem. Em seguida, mostrarei como obter informações dos usuários e seguida, fazer um loop para criar uma reprodução repetida. Obrigado por assistir. 109. Pedaço, papel, tesoura com entrada e loops em Python: Na lição anterior, dei uma visão geral do jogo. Nesta lição, mostrarei como obter informações dos usuários e, em seguida, usar um loop para criar uma reprodução repetida. A forma mais simples do serviço de jogo tomando a escolha do usuário, fazendo com que o computador escolha uma resposta aleatória e exiba os resultados do usuário. Vamos ver algum código para fazer exatamente isso. Faça login em sua conta. Aqui você começará escrevendo o código. O primeiro pedaço de código que você vai para fita é importar aleatoriamente. Isso carrega o módulo Python chamado aleatório. Este módulo contém funções que permitem selecionar aleatoriamente entre escolhas e números. Você o usará para escolher a resposta do computador para o jogador. Falando em escolhas, você vai querer especificar quais são as escolhas. Na próxima linha, você declarará escolhas, uma lista contendo as cordas, pedra, papel e tesoura. Em seguida, você vai digitar uma linha que imprime um desafio para o jogador. Então digite parênteses de impressão, aspas duplas, faça seu lançamento. Feche aspas duplas e parênteses. Em seguida, você precisa pensar em uma maneira que solicite uma resposta do jogador. Isso é feito com a função de entrada. A função de entrada interna usa uma string usada para solicitar o usuário e retorna o que o usuário digitou. A escolha do usuário será armazenada na variável chamada opção de usuário. Você não deve aceitar qualquer coisa aleatória do usuário. Você quer ter certeza de que é uma escolha válida. Então você usará a função IF. Então digite se a opção do usuário nas escolhas. Esta linha verifica se o usuário digitou um desses itens na lista de opções. Se for, a próxima linha selecionará aleatoriamente a resposta do computador. A função de escolha de módulos aleatórios pega uma lista e escolhe aleatoriamente um dos itens na lista. A seleção é retornada e, nesse caso, é armazenada na escolha do computador. Em seguida, vamos digitar uma linha de comando que contém uma instrução print mostrando os resultados para o usuário. Digite parênteses abertos de impressão e pressione Enter. Se você não viu na string f antes, é uma maneira de criar um modelo que o Python preencherá. Uma string f é prefixada com a letra F, daí o nome. Em seguida, ele procura suportes de cinta. Esses são os encaracolados dentro da corda. Os valores nos colchetes são substituídos por suas variáveis correspondentes. Nesse caso, a escolha do usuário e os valores de escolha do computador são inseridos no trecho. Pressione Enter. A coisa toda é então colocada na tela pela função de impressão. Como a função IF verifica valores válidos, você vai querer informar ao usuário se ele não escolheu algo válido. Na próxima linha dentro desta cláusula else, diga ao usuário o que ele digitou e diga que não foi uma boa escolha. Vamos ver o jogo em ação. Aqui. Vou executar o roteiro no rock, e ele me diz que escolhi rock e o computador através de uma tesoura. Deixe-me executá-lo mais uma vez. Desta vez, vou entrar em pirulito. Não, não é uma escolha válida. Cada vez que você quiser jogar o jogo, reexecutar o comando é muito trabalho. Não tanto, mas você ainda pode facilitar. E quanto a perguntar ao usuário da garganta para baixo novamente? Para fazer isso, você precisará envolver toda a lógica do jogo em um loop. Depois que o resultado for exibido, solicite ao usuário se ele quiser jogar novamente. Vamos modificar o código. O primeiro passo é adicionar um loop infinito. Depois das escolhas da lista com um loop while. A instrução while faz loops até que a condição associada a ela seja avaliada como falsa, seja verdadeira, nunca será avaliada como falsa. Esse loop continua para sempre. O próximo pedaço de trabalho é o código anterior, mas incorporado dentro do loop. Então, pressionarei uma guia antes de cada linha de código que falamos sobre recuo em Python e por que é tão importante. Só para lembrar, o recuo é o espaço em branco principal, espaços e guias antes de qualquer instrução no Python. A razão pela qual o recuo é importante no Python é porque Python trata as instruções que têm o mesmo nível de recuo, instruções que têm espaço em branco igual ou nenhum espaço em branco antes em seguida, como um único bloco de código. Uma vez que o Around foi jogado. Esse processo, o usuário, se ele quiser jogar novamente, vamos chamá-lo de variável novamente. Em seguida, você adicionará um prompt de entrada. Se o usuário quiser jogar novamente. Vou adicionar uma nova linha que verifica as respostas dos usuários e vê se ela corresponde a M. Por enquanto, o método ponto inferior é chamado na resposta antes de ser comparado. Esse método retornará a versão minúscula da string em que está sendo chamada. Dessa forma, se o usuário inserir N maiúsculo, ele será transformado em n minúsculo antes de ser comparado. Se o usuário indicar não, a instrução break será chamada. A instrução break tira você do loop circundante. Nesse caso, o código continuaria para a próxima linha. Se o usuário digitar alguma coisa por n, presume-se que ele quis dizer sim. Nesse caso, o código dentro do loop continua aqui, você adicionará uma impressão vazia, que exibirá uma linha em branco. Depois disso, a execução continua de volta ao topo do loop while, pedindo ao usuário que faça sua próxima emoção. Só porque é voo, o código diz adeus ao usuário depois de quebrar o loop while. Aqui está o novo código modificado em toda a sua glória. Deixe-me executar o código. Vou entrar em uma escolha desta vez, embora papel. Isso me mostra o que tanto o computador quanto eu escolhemos e depois solicita. Se eu quiser ir de novo, vou TBS e o jogo continua. Vamos escolher papel novamente. Agora acho que acabei. Veja, não é bom dizer adeus, apenas trazer as escolhas não é bom o suficiente. Na próxima lição, mostrarei como dizer quem ganhou. 110. Rocha, papel, tesoura com Python como determinar um vencedor: Na lição anterior, vocês começaram escrevendo o código inicial para tesoura de papel rock. Nesta lição, mostrarei como adicionar código que declara o vencedor em cada rodada. Apenas mostrando as escolhas que o usuário fez à direita da escolha do computador parece um pouco leve. Vamos adicionar algum código para dizer quem ganhou. Você precisará codificar a lógica para cada situação de x batidas. Por quê? Somos tesouras de pedra, tampas de papel pedra e tesoura corta papel. Como a lógica para determinar quem um tipo de vai junto, seria melhor colocar isso dentro de uma função. Você pode até nomear algo significativo. Você começará a modificar o código anterior com a lógica de determinação do vencedor dentro dele. É uma boa prática agrupar pedaços de código relacionados juntos e funções. Isso permite a reutilização de código por meio de várias chamadas para a função e a clareza de ler seu código. Após a lista de opções, você adicionará uma nova linha que declara a função show winter. São necessários dois argumentos. A primeira é nomeada opção de usuário e a segunda opção de computador. Na próxima linha, você verificará se o usuário e o computador escolheram o mesmo valor. Se SIL, a escolha do usuário é a mesma que a escolha do computador. Em seguida, na próxima linha, o programa imprime que havia um empate e ambos os usuários escolheram a seleção específica. A próxima linha você adicionará else-if, que só será executada se o usuário e o computador escolherem valores diferentes. Esta linha verifica se o usuário escolheu rock. Se o fizerem, há dois subcasos. O computador escolheu uma tesoura e, portanto, a do usuário. O computador escolheu papel no computador um. Lembre-se, se o computador for escolhido rock, você não chegaria aqui é que um pouco de lógica é capturado por esta linha. O próximo passo é adicionar uma linha e Lyft, que é semelhante a essa linha, mas para papel. Lógica semelhante está contida com o bloco else-if processando as condições de vitória e perda para o papel. Então você faz isso novamente contra IRS e suas condições associadas de vitória e perda. Finalmente, se algo além de pedra, papel ou tesoura foi digitado, ela será capturada pela cláusula else. Ao digitar esta linha de código. Nesse caso, o usuário é informado de que sua garganta estava ruim. O código no loop selvagem está bem próximo de antes, apenas com a nova linha que chama a função show winner. Exclua essas linhas de código, não precisamos delas. Vamos digitar o novo código aqui. Você está pronto para jogar agora, vamos executar o jogo. Todo o tipo ROC. Seja jogado de novo. Aplique mais uma vez e você tem a ideia. Um grande blog, como acabei de demonstrar, pode ser um pouco difícil de ler. Só piora quanto mais condições você tiver que comparar. Esse tipo de código é tão comum que o Python 3.1 L tem uma nova estrutura de palavras-chave chamada correspondência de padrões. Isso é um pouco novo em uma sintaxe em Python que exibe uma série de opções com base em um padrão. Essa estrutura permitirá que você escreva grandes , caso contrário, blocos com menos linhas de código. Se você estiver acostumado a alternar instruções em outros idiomas, é uma custódia disso. Houve algum debate sobre a declaração de correspondência de padrões , mas, no entanto, você pode sentir sobre isso até que o Python 3.10 esteja fora, você está preso se então ou for você. Deixe-me mostrar uma onda usando estruturas de dados em seu código ajuda a simplificar a quantidade de lógica de codificação e reduzir o tamanho do if. Então, então, bloqueie. Vamos adicionar dois novos dicionários, batidas e mensagens logo após a lista de opções. Vamos fazer a primeira mudança no programa anterior, que é a introdução do dicionário beats. Este dicionário está armazenando o que contas, quais condições. Cada chave do dicionário é, ponto contra a lista de coisas que bate. Você entenderá por que usar a lista na próxima lição. Esta linha codifica o fato de que a rocha bate tesoura de papel bate a rocha e a tesoura bate o papel. Você poderia simplificar a mensagem para o usuário alterando o idioma para dizer x bate y. em vez de ter as especificidades da tesoura rock smashes. Mas, em vez disso, o verbo que descreve a ação vencedora dentro outro dicionário chamado mensagens. Cada chave neste dicionário é uma tupla descrevendo o que bate, o quê. O primeiro diz que quando a rocha bate tesoura usa a palavra esmaga. Isso pode ser simplificado apenas tendo o item vencedor B, a chave para este dicionário. Mas a próxima lição adiciona alguma complexidade para a qual isso se prepara. A próxima linha codifica que o papel cobre a rocha e, na próxima linha, a tesoura corta papel. Deixe-me rolar um pouco para baixo. Quando as regras do jogo codificadas em dicionários, o código para mostrar inverno se torna um pouco mais simples. linha 1819 é a mesma que antes de verificar a condição tailandesa. Mas agora você terá que alterar a parte do if-então else anteriormente, a verificação dados incorretos foi feita no final da função. Vou movê-lo para cá. Vamos excluir as linhas de 20 a 36. O método de chaves DOD no dicionário beats retorna uma lista de todas as chaves válidas. escolha do usuário não está nisso. Isso significa que não foi uma escolha válida. O bloco else que começa na linha 22 agora contém todos quem será é qual lógica? Nesta linha, farei uma comparação booleana verificando se as escolhas do computador na lista de coisas que são BY, pela escolha dos usuários. Se o usuário escolheu rock, o rock chave será aplicado a batidas. Retornando a lista contendo apenas tesoura. Se o computador escolher uma tesoura, haverá uma correspondência e a comparação booleana resultante é verdadeira. Esses valores armazenados no usuário ganha. A próxima linha então avalia o usuário chamado booleano ganha. O usuário ganhou do que olha para o verbo apropriado no dicionário de mensagens usando a tupla de escolha do usuário e do computador como a chave para as escolhas de rock e tesoura, o resultado será esmaga. Com o verbo, pronto para ir. Tudo o que resta é que o usuário é a boa notícia. Esta string f mostra a escolha do usuário, a escolha do computador e o verbo associado. Observe que dentro dos colchetes para a escolha do usuário, há mais do que apenas a variável lá. Uma string f permite que você chame métodos em objetos de string que não usam maiúsculas método retorna uma nova string com a primeira letra maiúscula. Isso fará com que o início da frase pareça certo. Claro, o usuário nem sempre ganha. A cláusula else faz a lógica do espelho. Como o computador é um, o verbo é pesquisado usando o reverso da tupla no bloco anterior. Em seguida, o usuário recebe as más notícias. O código é um pouco mais curto do que o bloco grande , caso contrário, da lição anterior. Pode nem valer a pena neste caso, mas quando o jogo ficar mais complicado, você terá economizado muito trabalho. Não há muito para ver aqui que você não viu antes. O código foi refatorado, mas o resultado final é suposto ser a mesma tomada de decisão de três vias não é complexa o suficiente. Parabéns, você acabou de codificar um jogo em Python. Agora você sabe como criar tesoura de papel de rocha a partir do zero. E você pode expandir o número de ações possíveis em seu jogo com o mínimo esforço. Escrever jogos é a maneira divertida praticar a escrita de código. Neste projeto, você implementou uma versão baseada em texto da tesoura de papel rock. Você pede ao usuário a entrada e validou, loop ou código para permitir que reproduções repetidas sejam adicionadas para mostrar a função de inverno para determinar quem ganhou e simplificou sua função show winter substituindo alguns lógica condicional com uma representação de dados armazenada no dicionário. Espero que você tenha encontrado valor neste projeto. Obrigado por sua atenção e verei você na próxima lição. 111. O que é programação orientada de objetos: Olá a todos. Quero dar as boas-vindas à nossa lição sobre programação orientada a objetos em Python três, este é um dos maiores e mais importantes assuntos em toda a programação. E como podem ver, temos muito para cobrir. Esta série irá fornecer-lhe uma compreensão conceitual básica da programação orientada a objetos para que você possa levar suas habilidades de programação Python para o próximo nível. Para apreciar plenamente o assunto, temos que primeiro entender por que precisávamos de programas ou coisas excessivamente complicadas. E há 100 maneiras diferentes de definir o que um programa é formal. Ainda assim, basicamente todos os programas ou conjunto de instruções para manipular dados de alguma forma significativa. Quando eu ensino Python para crianças, eu sempre faço com que eles escrevam um programa que calcula quantos dias eles têm. E esse é um ótimo exemplo de um programa que segue esses três passos. Primeiro, o programa tem que pedir ao usuário sua data de nascimento. são os dados que ele vai aceitar. Em seguida, ele manipula os dados subtraindo a data atual da data de nascimento do usuário. Finalmente, o programa exibe o resultado desse cálculo na tela. É um ótimo programa inicial, mas é muito trivial. Como gerenciamos grandes programas com muitos dados para acompanhar como um videogame. Como você deve ter adivinhado, é aí que a programação orientada a objetos entra. Programação orientada a objetos, ou OOP para abreviar, é um paradigma de programação bastante comum. Formalmente, isso significa que é uma maneira específica de projetar programas, como um estilo que é amplamente utilizado em projetos de software. Nem todos os programas devem ser escritos com isso. Oop, mas muitos são. E muitos idiomas suportados. Muito do código Python com o qual você interage diariamente será escrito usando OOP. Entender isso é uma parte fundamental de se tornar um programador de gripe Python. Ele abre a porta para criar um software muito legal. No coração da OOP é a idéia de que um programa é composto de muitos objetos individuais. Você pode pensar nesses objetos é entidades ou coisas em seu programa. Muitas vezes eles são como os substantivos em seu projeto, como a pessoa, uma casa, um e-mail ou qualquer outra entidade como essa. Esses objetos são como pequenos pacotes de dados que são transmitidos ao longo da vida do seu programa. Por exemplo, uma pessoa pode ter propriedades como nome, idade e um endereço residencial. Estes são os dados individuais que o objeto armazena ao longo de sua vida útil no programa. Quando criarmos esse objeto de pessoa, vamos nos certificar de dar-lhe um nome, idade e um endereço. Objetos também têm comportamentos. Estas são as ações que o objeto pode executar. Nossa pessoa deve ser capaz de andar, conversar e respirar, por exemplo. Frequentemente, esses comportamentos serão necessários para ser referenciado nas propriedades do objeto. Por exemplo, se fizermos nosso comportamento de conversa imprimir o nome e a idade da pessoa, então nosso objeto de pessoa precisaria saber qual é sua idade e nome. Aquelas propriedades que demos antes. Se tudo isso parece um pouco confuso agora, não se preocupe, quando comecei a programar, este foi o primeiro obstáculo real que encontrei. E foi preciso dedicação e prática até que finalmente entendi. Faremos uso pesado de objetos durante todo o resto dessas lições. E você vai adorar a sensação que você tem quando ele apenas clica para você. No próximo vídeo, vamos aprender como definir nossos próprios objetos usando classes Python. Te vejo lá. 112. Cursos em Python: Bem-vindo de volta à nossa série de vídeos sobre programação orientada a objetos em Python. No último vídeo, aprendemos o que é a programação orientada a objetos e qual o problema que ela resolve. Agora vamos dar uma olhada em como podemos definir nossos próprios objetos em programas Python. Para criar nossos próprios objetos, usamos classes Python. Classes são usados para criar objetos praticamente como muitos objetos únicos como queremos. Eles também definem um tipo. Por exemplo, dê uma olhada nesse código. Meu nome de sublinhado é igual a Austin. Aqui criamos uma nova variável chamada meu nome com um valor de Austin. Nos bastidores para variável é realmente referenciar um objeto. O tipo de objeto é STR, abreviação de string, que é construído no tipo de dados Python que você provavelmente já usou antes. Python define uma string é uma classe e, a fim de criar este tipo de objeto de STR, nós instanciamos a classe STR para instanciar uma classe ou para criar uma instância de uma classe, apenas significa criar um objeto a partir dessa classe. Você tem aqui a palavra instanciação jogada em torno muito na programação. Então lembre-se, significa fazer uma aula e criar um objeto a partir dessa classe. Para deixar isso um pouco mais claro, vou usar uma das minhas analogias favoritas. Digamos que estamos escrevendo um programa que cria portas. Começaremos criando uma classe para uma única porta. Esta classe aqui é como a planta para a qual construímos todos os nossos objetos de porta. A classe irá especificar algumas propriedades e comportamentos. Lembre-se, cada um de nossos objetos de porta terá isso e haverá independente de cada objeto de porta. Uma porta pode ter propriedades como altura, cor da tinta, e se ela está ou não bloqueada no momento. Ele também pode ter comportamentos como abrir, fechar e alternar bloqueio. Definimos uma classe de porta, mas também definimos um novo tipo que podemos usar em nosso programa. Vamos criar um objeto de porta com uma altura de 50 polegadas, pintado de laranja. E diremos que construímos, está destrancado. Aqui. Acabamos de instanciar a aula de portas. Lembre-se, isso significa que criamos um tipo de objeto de porta de nossa classe de portas. E não estamos limitados a apenas criar um. Assim como no mundo real podemos construir muitas portas a partir de uma única planta de porta. Podemos iniciar muitos objetos de porta da nossa classe de porta única. Aqui eu instanciei mais um. Observe que cada um desses objetos de porta é único. Eles têm alturas e cores diferentes e cada um deles pode ser bloqueado ou desbloqueado a qualquer momento. Podemos mudar a cor da tinta de uma única porta e isso não afeta o resto. Esses objetos são todos independentes e eles não dependiam mais da classe. A classe apenas diz Python como criar os objetos. Aqui vai uma pergunta. Você pode pensar em qualquer cenário onde classes e objetos poderiam ser usados em um programa do mundo real. No próximo vídeo, vou dar alguns exemplos e então vamos aprender sobre como as classes são realmente construídas em Python. 113. Atributos de aula e Instância: Bem-vindo de volta à nossa programação orientada a objetos em Python. No último vídeo, eu fiz a pergunta, vamos usar classes e objetos em software real. Eu vim com dois exemplos, jogos de vídeo em navegadores web. Para um videogame, podemos definir uma classe inimiga em propriedades Holt como o nome do inimigo, sua vida atual e seu nível de poder. Para comportamentos, eles podem ser capazes de atacar, sofrer danos e, finalmente, se sua saúde for baixa o suficiente, declararam derrota. videogames são um ótimo exemplo de design de software orientado a objetos complexos. Eles são construídos com muitas e muitas classes e, em seguida, eles dependem um do outro de alguma forma ou de outra. O navegador que você está usando agora também pode ser projetado com OOP. As barragens individuais podem ser seus próprios objetos instanciados a partir da classe de tabulação. As propriedades podem ser o texto do título, quer a guia seja ou não a que está sendo visualizada e também a página da Web que a guia está mostrando. Para comportamentos podemos ter roupas e recarregar. Agora, olhe para cada uma dessas propriedades cuidadosamente. Acho que o texto do título está sendo representado como uma string e se a aba está aberta ou não. Bem, isto pode ser um booleano, verdadeiro ou falso. Mas a que horas deve nossa página web propriedade B, não há nenhum tipo de dados incorporado em Python que pode armazenar tudo sobre uma página web. Então, aqui podemos realmente criar uma classe separada chamada página com suas próprias propriedades e comportamentos. Como você pode ver, as propriedades de uma classe Python não estão limitadas a tipos de dados internos em Python como INT e SDR. Nossas próprias páginas personalizadas como página também podem ser usadas como propriedades de outras classes. Quando instanciamos uma classe TAM abaixo, também temos que fornecê-lo com um objeto de página para armazenar, assim como temos que fornecê-lo com um objeto STR para o nome. O objetivo deste exercício foi mostrar a você para pensar software como uma coleção de objetos que interagem uns com os outros. Na minha experiência, a parte mais difícil de aprender OOP não é realmente aprender os próprios conceitos, mas aprender a projetar um software em termos de OOP, planejar seu projeto de software muitas vezes leva muito mais tempo do que realmente revestimento ele. É algo que pode desafiar os novos e os desenvolvedores da temporada. Como você já sabe, uma classe definiu as propriedades e comportamentos de seu objeto. Então agora vamos realmente escrever um. Para definir uma nova classe, começamos com uma palavra-chave classes seguido pelo nome da classe. Fácil o suficiente. E bem, nós realmente não aprendemos como definir propriedades são comportamentos em Python. Então vamos escrever caminhos. Esta é uma palavra-chave especial que diz Python que esta é uma classe vazia. Antes de podermos adicionar propriedades à nossa classe, temos que aprender como elas funcionam em Python. Primeiro, as propriedades são realmente chamados atributos em Python. Estes são dois tipos de atributos, atributos de instância e atributos de classe. Atributos de instância são o que vimos antes. Estes são os atributos que são independentes para cada objeto, como cor da porta, ou a altura. No exemplo anterior. Neste exemplo, nossas classes de cão para atributos instantâneos, nome e idade. Este sublinhado, sublinhado, init, sublinhado, sublinhado. Esta é uma função muito especial que pertence à nossa classe. Isso é chamado de inicializador, e é uma espécie de semelhante a um construtor. Se você já viu isso em outro idioma, nós mesmos não chamamos essa função. Em vez disso, Python irá chamar automaticamente esta função quando instanciar a classe. Em outras palavras, esta função é usada para construir um novo objeto a partir da classe. O objeto do inicializador é fornecer ao nosso objeto valores iniciais de atributo. Você pode ver este inicializador leva três parâmetros, auto-nome e idade. Quando instanciamos a classe cão, você precisará passar os valores para nome na idade, e então esta função irá atribuir os novos objetos esses valores. Self é uma palavra-chave muito especial, e o fato de termos que incluí-lo em nossos parâmetros é uma dessas pequenas rolhas Python. Nós não passamos um valor para si mesmo quando criamos o objeto. Em vez disso, self é usado para se referir ao objeto atual que está sendo criado durante a instanciação. Então, quando dizemos “self” é igual a idade, estamos dizendo “pegue o valor da idade”, passamos e atribuímos isso aos novos objetos. Não idade atributo, e o mesmo vale para o nome. Lembre-se antes de como dissemos que cada objeto tem seus próprios valores independentes para seus atributos, como como uma porta pode ser laranja e outra cinza. Bem, isso não tem que ser o caso. É aqui que os atributos de classe entram em jogo. Ao contrário dos atributos instantâneos, que são independentes para cada instância da classe, classe, atributos são os mesmos para cada instância. Pense assim com atributos instantâneos, poderíamos pintar uma porta de uma nova cor e isso não afetaria as cores das outras portas. No entanto, se fizermos da cor um atributo de classe e a definirmos para amarelo, então todas as portas seriam amarelas por padrão quando forem instanciadas. Este é apenas um valor padrão para a classe. Isso não significa que temos que instanciar todas as nossas portas. Alterar a cor de uma porta mudará todos eles. Se você está pensando estática agora, isso é um pouco diferente. No exemplo da classe amanhecer, espécie é definida fora se a função inicializador, que significa que é um atributo de classe. Isso significa que cada cão que instanciar será por padrão um mamífero. E não podemos mudar isso quando criamos um novo objeto Dog. No próximo vídeo, começaremos a programar nossa aula de cães e veremos como funciona a instanciação de classes em Python. 114. Adição de atributos a um curso de Python: Bem-vindo de volta à nossa série sobre programação orientada a objetos em Python. No último vídeo, aprendemos como as classes Python podem definir classe e atributos de instância para entender melhor como as classes são instanciadas. Vamos para o shell Python. Tudo bem, então eu estou aqui no shell Python e eu vou começar criando uma nova classe Dog. E eu vou apenas escrever passe, que vai dizer Python que queremos um objeto em branco. Agora eu vou simplesmente chamar de cão como este. Python vai instanciar isso e ele vai realmente nos dizer o endereço de memória do nosso novo objeto Dog. Esse é esse número de aparência chique bem aqui. Agora vamos criar outro objeto cão. Você acha que este novo objeto irá compartilhar o mesmo endereço de memória que o primeiro? Ou vai ser diferente? Se pressionarmos aqui, você verá que este novo objeto tem um endereço de memória ligeiramente diferente. Isso ocorre porque cada incidente da nossa classe Dog é único. Claro, ambos os objetos são criados a partir da mesma classe, mas ainda são objetos diferentes na memória. Se nós realmente preencher nossa classe com o inicializador, poderíamos atribuir atributos diferentes para cada objeto. E só para dirigir este ponto para casa, eu vou criar dois novos cães e vou armazená-los nas variáveis a e b. Então, neste ponto, a e B são ambas variáveis que apontam para objetos na memória, objetos e tipo cão. Podemos facilmente verificar se eles são o mesmo objeto usando o operador duplo igual. E se eu pressionar enter, vamos ver que eles não são um e B apontou objetos cão diferentes, mesmo que ambos os objetos estão em branco. E para provar que ambas as variáveis são tipo de cão, eu vou usar a função embutida do Python L, Dê-lhe um como um argumento. Como você pode ver que esta variável está apontando para um objeto que foi instanciado a partir da classe cão. Agora vamos finalmente construir uma classe de cão real e criar alguns objetos de cão reais. Estou aqui no Python ocioso, e vou começar definindo uma nova classe chamada cão. Em seguida, vou digitar espécies iguais a mamíferos. Isto vai criar um atributo de classe para o nosso cão. Isso significa que cada novo cão que criamos será um mamífero por padrão. Mas agora eu quero escrever alguns atributos de instância exclusivos. Então eu vou adicionar em um inicializador para a classe digitando minha função init. E agora vamos exigir três parâmetros, auto, nome e idade. Lembre-se, nós realmente não fornecemos um valor para si mesmo, mas precisamos fazer algo com esses nomes e parâmetros de idade. Então todos dizem a Python que queremos atribuí-los a um novo objeto que está sendo criado. Aqui, auto-referências ao objeto atual que está sendo criado. Então self.name é igual a nome, significa atribuir o parâmetro name ao nome deste cão. E é isso. Criámos a nossa aula de cães. Vamos realmente usá-lo para baixo. Vamos criar uma nova variável chamada Tommy. E isso vai apontar para um objeto de cachorro. Criamos um novo objeto digitando o nome da classe seguido pelo parêntese, quase como se fosse uma função. Quando fazemos isso, Python é realmente vai chamar o inicializador nos bastidores. E também precisaremos fornecer nossos argumentos de nome e idade. Então aqui todos fazem o nome Tommy e nós lhe daremos uma idade de cinco anos. Em seguida, vamos fazer outro cão chamado Lily, e vamos dar-lhe uma idade de sete anos. Parabéns, se você está acompanhando, você acabou de criar um instanciado sua primeira classe. Agora temos dois cães, um chamado Tommy com cinco anos, e o outro, Lily, com sete anos. Mas como realmente acessamos os dados dentro desses objetos? Para fazer isso, podemos usar o modificador de acesso, que em python é o ponto. Então, vou digitar uma declaração impressa. Direi que o branco é o branco e o branco é o branco. E então eu vou chamar a função de formação do DOD nesta string, que nos permitirá preencher esses espaços em branco. Porque temos quatro espaços em branco, vai precisar passar na função de formato Don para argumentos. Então eu vou passar em nome de Tommy Dot, Tommy Dot, idade, Lily, não nomeie Lilly Dawn idade. Estes vão acessar todos os atributos em ambos os nossos objetos. Em seguida, veja se ambos os cães têm o atributo mamífero. Vou digitar se Tommy não é igual ao mamífero da corda, então eu quero imprimir em branco é em branco. Então, como antes, vou preencher esses espaços em branco com o nome de Tommy e espécie de Tommy usando a função de formato de ponto. Tudo bem, vamos executar o código. E o lado acima aqui podemos ver exatamente o que estávamos esperando. Tommy tem 5 anos e Lily tem 7, que é da nossa primeira impressão digital. E porque Tom é um mamífero, também vimos que Tommy é um mamífero impresso na tela. Agora vamos mudar um pouco as coisas. Depois de criarmos novos objetos de um cão, vamos mudar seus atributos. Então eu vou subir algumas linhas e eu vou digitar Lily dot h igual a oito, e então Tommy fez espécies iguais a rato. Agora pausar este vídeo e dar uma olhada neste código e pensar sobre o que ele vai imprimir. Tudo bem, vamos dar uma olhada. Agora vemos que o Tommy tem cinco anos e Lily é oito. Isso é porque uma mudança de idade da Lily depois de criarmos o objeto. E reparem que já não vemos que o Tom é um mamífero. Isso é porque mudamos Tommy por ser um mamífero para um rato. E novamente, fizemos isso depois de criarmos o objeto. Quando atribuímos um valor a esses atributos, o inicializador não foi usado e isso só é usado quando criamos novos objetos, não modificamos seus atributos. Além disso, se você notar aqui, ambos os objetos Doug são completamente independentes um do outro. Mesmo que eles vieram da mesma classe. Mesmo que eu mude Tommy por ser um mamífero para um rato, Lily ainda é um mamífero. E isso ali está apenas riscando a superfície do poder da programação orientada a objetos. No próximo vídeo, vamos dar uma olhada nos métodos de instância, que é a maneira Python chique de dizer comportamentos de classe. Te vejo lá. 115. Adição de métodos a um curso de Python: Bem-vindo de volta à nossa série e programação orientada a objetos em Python. No último vídeo, criamos esta aula Dawn aqui, e imprimimos algumas informações sobre cada um dos nossos objetos de cão na tela. Se você se lembra, criamos objetos de porta que podem ser abertos, fechados e registros. Eu chamo esses comportamentos apenas para demonstrar os conceitos. Mas em Python, estes são realmente chamados de métodos de instância. Um método é apenas basicamente uma função que pertence a uma classe. Ele está usando exatamente da mesma maneira como uma função, exceto como o inicializador, devemos incluir um parâmetro self. Vamos realmente criar alguns métodos de instância. Primeiro, precisamos de uma maneira para o cão relatar seus atributos e uma boa forma formatada. Vamos criar o novo método de instância chamado descrição. E lembre-se que precisamos incluir o parâmetro self aqui. E agora vamos digitar return a blank is blank years old, e vamos usar a função de formato prático para preencher esses espaços em branco passando no self.name, self.age como os argumentos. Observe aqui, como não estamos imprimindo diretamente para o console. Em vez disso, temos este método para retornar uma string formatada agradável com um atributos de dança cozido nele. Então, precisaremos imprimir manualmente mais tarde. Em seguida, devemos adicionar uma maneira para o cão falar alguma coisa. Então vamos criar um novo método de instância e vamos chamar este falar. Isso levará o parâmetro da célula como antes, mas quero que o trabalho dela seja capaz de dizer o que lhe dissermos. E vamos adicionar outro parâmetro chamado som. Isso precisará ser fornecido quando chamarmos esse método mais tarde. Finalmente, vamos retornar uma string formatada onde o nome do ponto do cão diz o som que passamos como antes. Agora vamos apagar todo esse código antigo da última vez e vamos criar um novo objeto Dog chamado Tommy com o nome de Tommy e uma idade de seis anos. Assim como com atributos, podemos usar ponto para acessar métodos instantâneos para. Agora você pode ser tentado a escrever Tommy Dot descrição aqui. E enquanto tecnicamente isso não é errado, isso não iria realmente emitir nada para o console. Isso ocorre porque temos o método de descrição DOD retornando uma string formatada em vez de imprimi-la diretamente. E assim este código aqui vai obter essa string formatada, em seguida, não fazer literalmente nada com ele. Se queremos realmente vê-lo, vai precisar passar o retorno desta chamada método para a função de impressão. Próximo slot para usar o nosso método de fala vai escrever impressão Tommy, não fale, e então vamos passar no gráfico, gráfico. E agora, se rodarmos o código, veremos que à direita temos Tommy tem seis anos de idade, seguido pelo gráfico de Tommy Says, gráfico. Como você pode ver são métodos de instância trabalho e eles podem acessar ambos os atributos que pertencem ao objeto atual, bem como novos dados que passamos na forma de um parâmetro de método. Vamos criar mais um método de instância que será chamado toda vez que o cão celebra o aniversário. Voltaremos para as nossas aulas aqui e chamaremos este novo método de aniversário. Agora, no corpo do método, eu vou digitar em auto idade mais um, que aumentará o atributo de idade do cão em um. Em outras palavras, cada vez que este método é chamado, o atributo idade interna cães aumentará em um. Agora, no fundo, posso dizer o aniversário do Tommy Dot e depois imprimir descrição do Tommy DOD de novo. Observe como não tivemos que colocar uma chamada de método de aniversário dentro da função de impressão. Isso ocorre porque a função de aniversário realmente não retorna nenhum dado que podemos imprimir. Só muda os atributos internos da idade do nosso cão. Então, agora, se eu rodar o código, podemos ver que o Tommy é um gráfico de seis grafos e agora Tommy tem sete anos de idade. Neste ponto, estamos quase no final do nosso tutorial OOP, mas eu tenho que avisá-lo, a última parte pode ser um pouco difícil de entender se você já não tem pelo menos uma compreensão básica de tudo o que cobrimos até agora. Eu sugiro fortemente praticar esses conceitos criando suas próprias classes Python e, em seguida, instanciando-os. Lembre-se, uma classe pode ser praticamente qualquer substantivo. Então, olhe ao redor e veja se você pode modelar algo em seu código e se perguntar algumas perguntas sobre quando você projetar sua classe, quais atributos como o objeto tem para todos os objetos têm o mesmo valor para esse atributo por padrão? Ou todos eles são conhecidos desde o momento em que são criados? Que comportamentos o objeto realmente exibe? E como esses comportamentos podem mudar o atributo do objeto? Se você estiver realmente pronto para um desafio, crie uma classe em que um de seus atributos seja, na verdade, outro tipo personalizado que você define, assim como fizemos com a classe tab armazenando um objeto de página. Se você pode fazer isso, então você definitivamente deve ter uma compreensão sólida sobre este material e você estará pronto para seguir em frente. E por outro lado, se você ainda está lutando com isso, não se sinta mal. Como mencionei no início, este é um conceito muito difícil para muitos novos programadores entenderem, incluindo eu mesmo. Isso requer que você pense sobre o seu software de uma forma que provavelmente é completamente estranha para você. E isso não é algo fácil de dominar. Se você está confuso sobre algo ou você acabou de esquecê-lo, é uma boa idéia assistir novamente partes anteriores da seção. Dê a si mesmo muito tempo para praticar. E uma vez que você sente que você tem uma compreensão sobre o conceito, volte e aprenda sobre o último conceito chamado herança. Obrigado por assistir. 116. Introdução à vigas do OOP: Bem-vindo de volta à nossa série sobre programação orientada a objetos em Python. No último vídeo, aprendemos sobre métodos de instância que são usados para representar os comportamentos são objetos têm toda a idéia de classes criar objetos, pequenos pacotes de dados associados e ações é uma coisa realmente poderosa. Mas também é suscetível a má prática de codificação chamada seca. Suportes secos para não se repita. Isto diz que quando escrevemos código, devemos evitar copiar e colar os mesmos pedaços de código sempre que possível. Se você está executando programação Python não-trivial e você se encontra copiando e colando atributos e métodos instantâneos entre um monte de classes diferentes. Isso significa que provavelmente é hora de repensar como você está projetando seu software. Dê uma olhada neste exemplo. Digamos que estamos escrevendo um programa que deveria construir, manter muitas pessoas diferentes. Como você provavelmente pode imaginar, cada pessoa vai ser um objeto. Mas aqui está a cabana. Podemos ter objetos de pessoas em geral, e então podemos ter um tipo especial de pessoas chamadas de bebê. Um bebê pode fazer tudo que uma pessoa normal pode fazer, exceto que pode fazer as coisas um pouco diferente, como falar. Além disso, ele também pode ter alguns comportamentos únicos que são pessoa geral não tem, como a capacidade de tirar uma soneca sempre que quiser. Ser um bebê parece ótimo. Como você deve ter adivinhado, vamos precisar de duas aulas diferentes aqui, uma para a pessoa e outra para o bebê. Você vai notar aqui que ambas as classes são exatamente as mesmas, mas a classe do bebê agora tem mais um comportamento chamado cochilo. Agora poderíamos projetar nosso software dessa forma e funcionaria bem. Mas lembre-se, um bebê tem que ser capaz de fazer tudo que uma pessoa mais geral pode fazer, embora um pouco diferente às vezes. Isso significa que nossa classe bebê vai ter exatamente os mesmos métodos de instância que uma classe pessoa tem na maioria desses métodos estão indo para olhar exatamente o mesmo. Mas agora o que acontece se quisermos fazer uma mudança na classe Pessoa? Se mudarmos a ação de algo como saltar para girar, então também temos que mudar os métodos de ação do bebê também. E se adicionarmos outra aula como adulto ou adolescente, então também teríamos que manter esses dois. Copiar código pode tornar as coisas mais fáceis no momento, mas pode tornar nosso software realmente difícil de manter mais tarde, especialmente à medida que ele cresce. Para resolver este problema. Vamos dar um passo atrás e pensar sobre as relações que existem entre essas duas classes. Eu acho que você concordaria que um bebê é uma pessoa, certo? É por isso que ele compartilha os mesmos comportamentos que a classe Pessoa. Então, e se houvesse uma maneira de fazer a classe do bebê herdar automaticamente cada atributo e método de instância da pessoa, mas depois modificá-los um pouco para atender às necessidades da classe do bebê. Então poderíamos até adicionar nosso próprio comportamento como um cochilo que seria exclusivo para a classe do bebê. Isto aqui é chamado de herança de objetos. E se usado corretamente, isso torna o gerenciamento de um monte de classes semelhantes muito mais fácil. Herança nos permite fazer uma classe, a classe filho, ou a classe derivada, ou de outra classe chamada classe pai ou classe base. No Python, a classe filho herda automaticamente cada atributo e método de instância da classe pai. Mas também podemos redefinir certos atributos ou métodos. Então, se quisermos que nosso objeto bebê fale de forma diferente do que um objeto de pessoa falaria. Podemos fazer isso? Se queremos que nosso bebê objeto tenha a capacidade de cochilar, podemos fazer isso também. E se precisarmos fazer a nossa pessoa girar em vez de saltar, podemos modificar a classe pessoa e a classe do bebê que irá automaticamente pegar com essas mudanças. Não há necessidade de editar código em mais de um lugar. Para entender a herança, dê uma olhada neste gráfico à direita. E no topo do gráfico está o objeto. Em muitas línguas, Python incluído objeto é a classe pai de todas as classes na linguagem. Isso inclui a construção de classes como o INT ou o STR, bem como quaisquer classes personalizadas que criamos. Neste diagrama, você pode ver que o bebê herda de Pessoa, que por sua vez herda do objeto. Como veremos mais tarde, Python vê qualquer objeto bebê que criamos como também uma pessoa e um objeto. 117. Exemplo de vigília: Bem-vindo de volta à nossa série sobre programação orientada a objetos em Python. No último vídeo, aprendemos sobre a idéia de herança, que nos permite definir uma classe filho que herdou automaticamente atributos e métodos de sua classe pai. Agora vamos ver como a herança funciona em ação. Então eu estou ouvindo pelo editor Python e a primeira coisa que vamos fazer é definir uma nova classe chamada Person. Verei que a descrição é igual a pessoa geral, que será nosso único atributo de classe. Agora vamos criar nosso método inicializador e ele vai dar-lhe parâmetros de nome e idade. Como de costume, vamos definir os atributos iguais a esses parâmetros. Agora eu queria encontrar alguns comportamentos que cada pessoa terá. Vou criar um novo método de instância chamado Speak, e o único parâmetro sendo self. E eu vou fazer esta impressão do meu nome ficar em branco e eu tenho anos em branco. Então, para preencher essas lacunas, usarei a função de formato e passarei no self.name. Ego.idade é argumentos. Em seguida, quero que a nossa pessoa seja capaz de comer qualquer comida que lhes dermos. Então eu vou dizer aqui, def, comer auto-comida, ponto e vírgula, e então eu vou imprimir um espaço em branco, cada um em branco. E para preencher esses espaços em branco vai passar em auto-nome, bem como nosso parâmetro auto-alimento. Por último, vamos dar à nossa pessoa a capacidade de realizar uma ação. Então eu vou criar um último método de instância chamado ação. E quando isso é chamado, todos dizem saltos em branco e eu vou passar em auto nomeado para preencher o espaço em branco. Tudo bem, então agora que temos nossa classe geral de Pessoa, vamos criar uma subclasse chamada Baby. Para fazer isso, vou digitar bebê como antes, mas então vou colocar alguns parênteses. Dentro desses parênteses precisará esclarecer o que a classe pai do bebê será. Então vamos digitar pessoalmente. E agora, tecnicamente, se eu escrevesse caminhos no corpo da classe, então nosso bebê será utilizável, mas eles farão exatamente a mesma coisa que essa pessoa faria. Então, queremos mudar isso. Primeiro, vou redefinir nosso atributo de classe de descrição. Vou ajustá-lo para igual a algo como um bebê, e isso deve funcionar. Esta redefinição aqui é chamada de sobreposição porque qualquer objeto bebê que criamos usará uma descrição específica em vez disso com uma descrição herdada automaticamente da classe pessoa. Para fazer isso, vou digitar def falo com self como o parâmetro. E então eu vou dizer para imprimir mamãe, que é apenas alguns doadores de bebê do que eu inventei. Desta forma, onde chamamos de método de falar em um bebê. Ele vai dizer este g tagarelice em vez de tudo o que a classe pai teria dito. Por último, quero dar a esses bebês e funcionalidade exclusiva. Vamos dar ao bebê a capacidade de cochilar sempre que quiser. Todos dizem def, cochilo com um perímetro de auto. E depois escrevo em branco, tirarei uma soneca. E no lugar do espaço em branco, vou dizer o nome próprio. Agora, qualquer objeto bebê específico que criarmos terá a capacidade de cochilar, mas um objeto pessoal mais geral não terá. Tudo o que temos que fazer é instanciar essas aulas e colocá-las para trabalhar. Vou criar um novo objeto de pessoa chamado pessoa, e ele terá o nome de John em 30 anos. Então eu quero chamar todos esses métodos de instância da pessoa. Então eu vou digitar pessoa ponto falar em pessoa ponto comer. E vamos dar-lhe peixe. E finalmente pessoa.Toda ação para vê-lo saltar. Agora vamos criar um objeto bebê chamado Baby. Preciso fornecer um nome e uma idade para o inicializador do bebê. Mas se você olhar, o bebê não tem um inicializador. Isso é porque ele herdou automaticamente da classe pessoa. Lembre-se, este bebê também é considerado uma pessoa e, como tal, ele precisa preencher os atributos instantâneos da pessoa também. Então vamos dar a este bebê um nome de Van ISIL e uma idade de um. Então vamos chamar os mesmos métodos de instância do nosso objeto bebê. Vou imprimir ambas as descrições da nossa pessoa e a descrição do bebé. Vamos rodar o código. Todo esse exercício nos mostra como podemos definir uma classe filho ou uma classe derivada que herda automaticamente tudo da classe pai ou da classe base. Podemos substituir atributos e métodos como descrição e falar. E podemos até estender nossa classe filho para adicionar novas funcionalidades como fizemos com o método NAT. Só para tornar isso ainda mais claro, vou passar para uma nova linha e digitar ponto de pessoa. Se você se lembra, o Don é como o modificador de acesso que nos permite acessar atributos e chamar métodos de um objeto. Como este objeto é uma pessoa, observe como intellisense ele não vê o método NAT. Isso porque é específico para a classe filho e, como tal, apenas objetos filho a têm. No entanto, se eu excluir isso e eu mudei para bebê e eu bater ponto, você pode ver que nós temos acesso a tudo definido na classe Person, bem como o Método Net específico. Mas agora e se nos disserem que precisamos fazer uma mudança no método de ação, talvez agora queiramos que ambas as pessoas girem em vez de saltar, vez de ter que modificar o código em várias classes diferentes. Tudo o que temos que fazer agora é mudar a palavra salta para a palavra gira em nossa classe pessoal. Agora, se rodarmos este código, vocês notarão que John e bandas estão girando em vez de pular. E não tivemos que fazer uma única modificação na classe do bebê. Esta é uma das razões pelas quais a herança é tão poderosa. Lembre-se de como anteriormente eu disse que nos bastidores, Python vê cada objeto como o objeto de tipo. Bem, agora que temos nossas aulas codificadas, posso te mostrar que isso é verdade. Para provar que um bebê é uma pessoa, vou imprimir o resultado desta função especial chamada é instância. Esta função nos dirá que o objeto específico é um tipo específico. Esta função leva dois argumentos, então eu vou passá-lo no objeto bebê para o primeiro e quero verificar se o objeto bebê é uma instância de pessoa. Se eu rodar o código aqui, você verá que no lado direito vemos a verdade. E isso porque um bebê é uma pessoa, o objeto bebê do tipo bebê, mas também o tipo de pessoa porque ele herda tudo da classe pessoa. Agora vamos ver se o nosso objeto bebê é do tipo objeto. Vou mudar a palavra pessoa aqui para objeto minúsculo. E se executarmos esse código, veremos que nosso bebê é de fato um objeto. Porque o bebê é uma pessoa e a pessoa herda do objeto. Portanto, bebê herda de objeto para como eu mencionei antes, cada classe em Python herda de objeto. E nós realmente não temos que escrever isso dentro da declaração de classe. A razão para a classe de objeto ainda existente está além do escopo deste tutorial. Mas por enquanto, saiba que nossos objetos de bebê são tecnicamente vistos como um bebê, uma pessoa e um objeto. E isso é um pouco de uma breve introdução à herança. Não cobrimos tudo, mas isto dá-te uma lista geral de como funciona a herança. Como você pode ver, a herança pode ser extremamente benéfica, mas se não for usada corretamente, pode ser mais uma dor de cabeça do que qualquer outra coisa. Herança é um dos pilares fundamentais da programação orientada a objetos, mas não é o único. E há ainda mais na herança que não cobrimos aqui. Mas este tutorial é focado mais sobre os princípios fundamentais da OOP, em vez de quaisquer características específicas de herança, polimorfismo, encapsulamento. O p é um tópico enorme e isso é difícil de dominar. Mas espero que agora você tenha pelo menos uma apreciação básica de quão grande software é projetado com classes e objetos. Na minha opinião, a programação torna-se muito mais divertida com a compreensão do OOP. Porque você pode ir além de escrever programas triviais como um jogo de adivinhação numérica, e passar a escrever software real usando frameworks e bibliotecas como Django e mapa lib, codificação feliz. 118. Scripts, módulos, pacotes e bibliotecas 2022: Python usa muitas terminologias sofisticadas com as quais você pode não estar familiarizado se você é novo na programação ou se você vem de uma linguagem diferente. Antes do python, meu plano de fundo estava principalmente em libras c e o ponto NET Framework da Microsoft. Lembro-me de tentar aprender Python, mas estar meio confuso com todos esses chavões. Meu objetivo nesta lição é esclarecer um pouco disso que não seja tão confuso para você mais tarde. O script Python é melhor definido como um arquivo Python que contém comandos e ordem lógica. Para que isso seja considerado um script, o programa precisa fazer algo, realmente, qualquer coisa quando é executado pelo intérprete Python. Para entender melhor isso, dê uma olhada nesses dois programas. Ambos os programas contêm uma função que retornará a soma de dois valores. No entanto, apenas o programa ou a direita chamarão essa função e imprimirá seu resultado. O arquivo à direita deve ser executado diretamente. Então, podemos ver que é um script Python. Por outro lado, o programa à esquerda não parece ser feito para fazer qualquer coisa. Executar esse arquivo não produzirá nenhum tipo de saída, pois a função nunca foi chamada, não se destina a ser executada diretamente. O arquivo à esquerda é melhor classificado como um módulo. Isso porque podemos importá-lo para outros arquivos para utilizar suas classes, funções, variáveis e outros membros. Está definido. Vou alterar o programa à direita para que, em vez de definir a função adicionar parênteses, importamos do módulo à esquerda. Isso tem o efeito de tornar a função de adição à esquerda acessível ao script à direita. Scripts curtos de história tão longa devem ser executados diretamente, enquanto os módulos devem ser importados. script geralmente contém instruções fora do escopo de qualquer classe ou função. Considerando que módulos para encontrar classes, funções, variáveis e outros membros para uso em scripts tão importantes. Os scripts e módulos de palavras são frequentemente usados de forma intercambiável. Portanto, esteja ciente de que você pode ver outras pessoas usá-las de maneiras que não seguem estritamente essas definições. Os pacotes são uma coleção de módulos relacionados. Um pacote pode ser um módulo Python individual, mas na maioria das vezes eles são uma coleção de vários módulos relacionados que são agrupados. Este aqui é o pacote de data util que permite realizar operações avançadas relacionadas a dados. Ele é empacotado em uma pasta chamada date util. Dentro há vários módulos individuais, bem como pastas contendo outros módulos que podem ser importados para seus scripts Python. Esses são módulos porque eles não fazem nada de interessante por conta própria. Quando você importa um para o seu próprio script, nada realmente acontece. Você precisa usar algo definido dentro dos módulos, como uma função de classe ou uma variável. Este arquivo especial da Intel diz ao Python que este é um pacote potencialmente contendo mais módulos aninhados em subpastas. Não podemos falar sobre bibliotecas sem mencionar a Python Standard Library. A Python Standard Library é uma grande coleção de módulos e pacotes que vêm empacotados em sua parcela do Python. Isso significa que você não precisa baixá-los de qualquer lugar. Você pode importá-los para seus scripts e começar a usá-los imediatamente. Date util é um exemplo de um pacote de biblioteca padrão, mas também há outros como e-mail e JSON. A principal vantagem aqui é que muito disso, até certo ponto, é subjetivo. Scripts são programas Python executáveis que fazem algo quando executados. Módulos ou arquivos Python que se destinam a ser importados para scripts e outros módulos para que sejam membros definidos , como classes e funções, possam ser usados. Pacotes são uma coleção de módulos relacionados que visam atingir um objetivo comum. Finalmente, a biblioteca padrão Python é uma coleção de pacotes e módulos que podem ser usados para acessar a funcionalidade interna. Em um mundo ideal, você importaria todos os módulos necessários para scripts Python sem problemas. Infelizmente, isso geralmente não é o caso. No próximo vídeo, você receberá uma introdução aos módulos e mostrarei como escrever um módulo. Obrigado por assistir. 119. Escrevendo um módulo: Neste vídeo, você terá uma introdução aos módulos escrevendo um pequeno módulo próprio. Existem três tipos diferentes de módulos em Python. Módulo pode ser escrito no próprio python, mas módulos também podem ser escritos em C e, em seguida, carregados dinamicamente em tempo de execução. E também há módulos internos que estão intrinsecamente contidos no próprio intérprete. E você pode já ter importado alguns deles no passado, como matemática ou importação de data eline aleatória. Para este vídeo, eu vou fazer você tentar a primeira opção, escrevendo um módulo simples no próprio Python. Deixe-me fazer você experimentar isso e um editor. Primeiro de tudo, vamos fazer um novo arquivo e nomeá-lo mod dot PY. Mod dot PY é um arquivo Python padrão. Dentro dele você está indo para criar uma string objetos com pequena lista e definir uma função. Vamos chamá-lo de print_i.Bonito leva um argumento chamado ARG e imprimir a impressão usando uma string F. Houve uma declaração de argumento que o F é igual ao arco que você está inserindo, chamando a variável no encolhimento F. Então faça uma aula. Pedirei que chame isso de classe capital. Aí está sua classe de classe. E agora essa aula não faz nada. Ele apenas passa, salve o arquivo e execute-o. O que você pode fazer, em seguida, a partir do shell Python é digite na importação. Como você estava no mesmo diretório onde você criou o arquivo, você pode dizer modo de importação. Certo, o que isso fez? Importando mod? Você importou todos os objetos que faziam parte desse código. Você poderia dizer, OK, bem, o que é isso? Mod dot um vai mob don a. é que lyse criado anteriormente para mod dot S. Bem, isso é uma string. Se você quiser usar a impressão, você poderia dizer, ok, model.predict agora está disponível também. O argumento é O que está em print_i imprime que o ARG é igual a dois o que está para cima? E você pode fazer um novo objeto chamado x usando MOD dot classy. O que é x? Bem, x é um objeto elegante do módulo mod. Legal. Então agora você tem acesso a todos esses objetos diferentes importando esse módulo, permitindo muita reutilização do código. Agora que você importou algo, no próximo vídeo, você se concentrará em onde o intérprete procura os arquivos que você está importando. 120. Caminho de pesquisa de módulos: Neste vídeo, você vai explorar o caminho de pesquisa do módulo. Então, onde você pode importar um módulo de. Quando o intérprete executa a instrução import, ele procura esse arquivo. No seu exemplo aqui, foi Math.pi. Ele vai procurar por isso e diretórios holísticos, as possibilidades ou o diretório atual, o significa de onde o script de importação foi executado. E também procura na variável de ambiente de caminho Python, que tem uma lista de diretórios. Quando você instala o Python, há um conjunto de diretórios que são configurados como parte da parcela do Python. Além disso, quando você importa de módulos de construção, é daí que o código vem. E há uma maneira de ver todos esses, para ver esta lista de diretórios. Deixe-me mostrar-lhe que no código dentro do diretório Python 39, há um arquivo math.pi. Se você salvou seu arquivo math.pi nesse diretório, você pode digitar import em mod. O arquivo Math.pi está bem ali. Ótima. Então agora Ahmad don a está disponível, MA dot S está disponível. Ok. Se você quisesse ver todos aqueles lugares que podem ser importados. Atualmente, há uma ferramenta chamada o módulo SYN que faz parte da biblioteca que você pode importar. E isso pode mostrar o caminho atual do Python e os diretórios que foram configurados no Python que foi instalado, importar SY S, que é um módulo que inclui parâmetros específicos do sistema e funções que você pode acessar. E um deles é o caminho syst dot. Então o caminho do ponto do syst irá mostrar-lhe uma lista. Opa, esqueci o ponto. Espero que você possa ver que aqui com os colchetes que estes são todos os objetos seu intérprete vai procurar quando você digitar a palavra importar e, em seguida, procurar por um módulo específico que você está importando. Este é o diretório padrão em que você está, diretório atual. Então ele iria procurar bem ali. Então, a partir daí, ele vai para uma versão do Python que você instalou. Vou sair daqui. Então esses são todos os locais que você pode salvar um arquivo, seja no diretório atual ou em qualquer um desses outros diretórios que você vê depois de executar o caminho do ponto do syst, se você quiser adicionar locais para que ele possa importar? Isso é uma possibilidade de, para provar este ponto. Vou fazer com que este não seja o diretório atual. Agora, se você fosse digitar import e, em seguida, mod, ele vai dizer que o agendamento não foi encontrado, ele está atualmente nesse diretório ou em qualquer um dos outros locais que se importarmos sys e usar this.tab, não em nenhum desses localizações que importam estão pesquisando em. Então, onde você deve estar colocando seu arquivo de módulo para se certificar de que seu script que você está usando o comando import de confiná-lo. Você tem algumas escolhas. Você poderia colocá-lo no mesmo diretório. O script de entrada é escrito em, que é considerado um normalmente o diretório atual. Você pode modificar a variável de ambiente de caminho Python, ou você pode colocá-la em um dos diretórios já nesse caminho Python. Você também pode colocá-lo em um dos diretórios que estão configurados como parte de sua parcela Python. Agora, há uma outra solução que pode ser feita em tempo de execução. Nesse caso, você pode realmente modificar a lista de caminhos do SIS. Para fazer isso, você vai usar um append uma instrução, assim como você dependeria de qualquer outra lista. Então, neste caso particular, a partir do caminho definido, você pode acrescentar. E como argumento, você vai entrar em uma string bruta. Então você começa com r e a citação única. Agora você precisa do caminho do diretório que você pode simplesmente digitar. Fechando minhas aspas aqui, isso é um erro de nome. Consegues adivinhar porquê? É porque eles não definiram o pacote sys. Então vamos digitar import dot diz reexecutar esta linha de código. Então, o que é que isso fez? Bem, se você olhar para este caminho de ponto syst agora mesmo no final dele, ele tem upended este local particular, este diretório para o caminho. Se você digitar import mod, agora ele pode importá-lo. Ótima. Uma coisa que você precisa lembrar, no entanto, se você fosse anexar esses locais, são aqueles diretórios para você importá-los em que só dura para esta sessão específica. Então, se você sair e começar de novo para tentar importar mod, ele não está disponível porque se você importar sys e usar seu caminho novamente, você pode ver que ele não faz mais parte dessa lista. Então, isso precisaria fazer parte do seu script de entradas. Em seguida, você adicionaria o caminho do SIS anexado ao diretório. No próximo vídeo, você vai dar um mergulho mais profundo nessa declaração de importação. 121. A declaração de importação: Neste vídeo, você vai dar um mergulho profundo na declaração de importação. Formas rápidas. A instrução de importação pode assumir sua forma mais simples? É como o que você já usou no vídeo anterior, importar e, em seguida, o nome do módulo. Nesse caso, o conteúdo do módulo não é diretamente acessível para a cor, então você precisa usar a notação de pontos. O módulo cria um namespace separado. Deixa-me mostrar-te como é isso. Agora você já praticou isso, mas você pode digitar import mod e, em seguida, importaria seu módulo. Agora, o truque para isso é que os objetos que você já importou não estão no mesmo namespace local, eles não estão na tabela de símbolos local. Então, se você fosse digitar a letra a e, em seguida, objeto não está disponível, S não está disponível. Print_i, qualquer um desses objetos não está disponível. Você precisaria usar uma notação Don começando com o nome do módulo primeiro depois de adicionar o DOD. Agora eu posso acessar um ou você pode acessar s ou mesmo print_i. Como uma nota, você pode importar vários módulos de cada vez, simplesmente incluindo uma vírgula entre os nomes de cada um. Como alternativa, objetos individuais do módulo podem ser importados assim de e, em seguida, importar o nome do módulo e, em seguida, os nomes dos objetos são importados. E então você usaria os nomes de objetos onde você pode usar vários com vírgulas entre eles. Os objetos individuais são diretamente acessíveis à cor, então eles são importados diretamente para a tabela de símbolos de cores, que significa que você não precisa separar o namespace Nesse ponto. Deixa-me mostrar-te como é isso. Então agora esses foram importados da tabela de símbolos local. S está realmente disponível e assim é imprimir no namespace local não é necessário que você use a notação de ponto. Há uma necessidade de ter cuidado no entanto, se você fosse criar um objeto a, e digamos que um tem algumas strings em uma lista. Há um. Mas se você importasse um do módulo do nó, o que acontece com o local existente a? Bem, ele foi substituído, e assim isso cria uma colisão, se você preferir, sobrescrevendo o objeto existente. Portanto, há uma necessidade de ter cuidado com o namespace aqui em nomes genéricos simples. Agora também é possível importar tudo de um módulo ao mesmo tempo. Nesse caso, será de e, em seguida, a importação de nome do módulo e, em seguida, um sinal de asterisco. Você provavelmente já viu isso antes em um script ou dois, que este lugar é todos os nomes dos objetos na tabela de símbolos local. A única coisa que não será importada como qualquer coisa que começa com um sublinhado, mantendo-o privado para o próprio módulo. Isso não é necessariamente recomendado a menos que você saiba todos os nomes que não vão entrar em conflito ou substituir quaisquer nomes existentes, você pode ter algum problema. Isso levará todos os objetos nomeados do módulo para o SymbolTable local. Então, agora as aulas lá. O objeto de string S. Eu vou sair novamente. Você também pode ter objetos individuais e, em seguida, tê-los nomeados em nome alternativo que seria parecido com este de importação de módulo, qualquer que seja o nome do objeto. E então como o que você gostaria que o objeto fosse renomeado, como você pode fazer isso várias vezes, que torna possível colocar os nomes diretamente no SymbolTable local. Portanto, evitaria conflitos com nomes existentes. Você ainda precisa ter cuidado com o que você escolher como nomes alternativos. Neste exemplo, você ainda tem variáveis locais que são nomeadas um e outro chamado S, que é uma string. Aqui estão os dois objetos um e como. Então, se você importasse a e S do seu módulo, ele escreveria sobre esses dois. E o que você pode fazer é dizer a partir de uma importação mod pedindo para dar-lhe um novo nome, talvez nomeá-lo como apenas string. E a é uma lista. Então, novamente, você pode usar essa vírgula para fazer várias importações de uma só vez. Então agora um ainda está lá e S ainda está lá. Mas string é onde você importa. E uma lista também é o que você importa a partir do módulo. Outra possibilidade é importar todo o módulo sob um nome alternativo. E neste caso, você importar módulo é o que você gostaria que o outro nome fosse. Um comum seria importar pandas como PD, portanto, não ter que soletrar tudo. Se um módulo tem um nome muito longo, algumas pessoas gostam de encurtá-lo. Você diria importar mod a, mod S, e então você daria um nome diferente. Então diga o nome, diga o meu módulo. Então agora o meu módulo está aqui e tem um rabo. Módulos também podem ser importados de dentro de uma função. Deixa-me mostrar-te como é isso. Neste último exemplo, crie uma função e eu vou ter que você nomeá-lo importador. Dentro da função, você poderia dizer a partir de MOD print_i importante e, em seguida, usar a impressão dentro dele. Então agora, MOD não está aqui e print_i não está disponível. Mas se você executar importador e chamar essa função, ele importou impressão do módulo mod e em seguida, chamá-lo com o argumento Olá todos. Em seguida, você vai verificar a função DIR. 122. Função de dir(): Este vídeo é sobre a função DIR. Depois de aprender as várias maneiras que você poderia importar um módulo ou o conteúdo do seu módulo e como isso afeta chamar esses objetos. Você pode estar interessado em aprender como exibir o Definir nomes que estão dentro de um namespace. E é aí que entra o DIR ou a função de diretório. É uma função embutida e retorna uma lista de nomes definidos em um namespace. Se você não fornecer nenhum argumento, ele produzirá uma lista ordenada alfabeticamente de todos os nomes que estão atualmente na tabela de símbolos local. Vamos dar uma olhada nisso. Ao executar DIR apenas por si só, você verá esses objetos. Se você criar um novo objeto, Faça uma lista com o nome ganha. E se você executar o DIR, agora você verá quando há um objeto que também está disponível como uma tabela de símbolos local. Se você fosse criar uma equipe de nomes de classe, é uma classe muito simples que apenas passa. E você deveria criar o objeto, digamos, X, que faz parte da equipe de classe. Agora, se você digitar DIR, você pode ver aqui equipe, e então você pode ver os outros objetos, ventos e x. Então estes são os objetos que estão agora na tabela de símbolos local. Seus nomes são, vamos importar o módulo MOD e digite DIR. Os objetos individuais fazem parte deste módulo mod não são uma parte da tabela de símbolos local. Eles teriam que ser acessados digitando mod Dante ou mon dot S usando sintaxe de notação ou impressão de pontos mod. Mas se você fosse importar equipes individuais, você aprenderia como fazer a última vez importar uma equipe que você não pode importar, mensagem de erro aparece. Agora, se você digitar DIR team, essa classe está lá e um, esse objeto está lá, você pode fazer um objeto Y da classe equipe. Está disponível. E, em seguida, outras maneiras que você pode importar é importar, mas com um nome diferente. Então você pode importar S e dar-lhe a string de nome. Então agora DIR iria trazer string é agora na tabela local também, S não é, ele não está definido, mas string é. Então, até agora, você tem usado a função interna DIR sem qualquer argumento. E se você der um argumento? Bem, uma das maneiras que você pode usá-lo é dar-lhe o nome do módulo interno como um argumento. Então, nesse caso, a função DIR lista todos os Definir nomes dentro desse módulo. Se você importasse mod sozinho, você pode vê-lo aqui, mas você não pode ver os nomes dos objetos que foram importados quando você importou mod. Estes estão na sua própria tabela de símbolos. Para vê-los, digite DIR abrir e fechar parênteses. E então, como argumento, coloque-o em mod. Ele tem sua própria classe de equipe e assiná-lo a função string, uma função print_i, ea string S juntamente com seu próprio nome. Vou mostrar-lhe um pouco mais sobre o nome no próximo vídeo. E a última que discutimos, tanto quanto a importação foi usando um curinga para mod importation asterix, O que isso coloca no diretório? Bem, ele coloca todos os objetos e então há o Team Mod. O módulo ainda está lá a partir de quando você importá-lo, ele antes. Mas print_i e S e um estão todos agora na tabela de símbolos local. No próximo vídeo, você aprenderá sobre como executar um módulo como um script. 123. Executando um módulo: Neste vídeo, você vai aprender como executar um módulo como um script. Um módulo também é um script Python? Bem, sim, qualquer arquivo dot py que contenha um módulo é essencialmente também um script Python. Deixe-me ter você dar uma olhada nisso. Se fôssemos abrir o código para mod DOD PY, como você pode ver, é muito simples. E se você executasse pi modificado é um script. É possível, com certeza, desde que você esteja no mesmo diretório, mas é apenas para encontrar objetos e, em seguida, ele realmente não faz nada com eles. Agora, se você pudesse modificá-lo, você poderia imprimir como imprimir um print_i run, até mesmo definir X como um objeto elegante e depois imprimir x. ok? Então eu estou recebendo , deve ser um pouco mais interessante. Ok, executá-lo. Então ele imprimiu a string, imprimiu a lista, mostrou o argumento para print_i. E então ele mostra que quando isso está sendo executado, o nome do módulo é objeto principal e elegante. Como é que isso se parece quando se importa? Agora, inicie o Python Shell. Se você fosse executar importação MOND, o que vai acontecer? Vai rodar todo esse código. Uma nota que você pode notar aqui, é usada para salvar o principal. Agora diz mod e emite. Isso provavelmente não é o que você quer. Você provavelmente quer quando você executar model e pi for para mostrar a saída. Mas quando você importa mod, talvez você não queira que essa saída aconteça. Você pode querer ser capaz de mostrar a saída para fins de teste, mas talvez você não queira ter um cada vez que você importá-lo. Seria muito melhor se a saída fosse opcional. Então há algo para ajudar. Há algo que você pode fazer se você não quiser que esse módulo gere qualquer LPA quando você está simplesmente importando. Havia uma ferramenta que pode ajudar com isso. Ele usa o que é chamado de variável. Fazer sob variáveis são as variáveis que dobrarão sublinhados antes de seus nomes. Nesse caso, a variável gênero é na verdade um nome. O nome será automaticamente definido para o nome do módulo quando for importado. Isso é diferente de quando um script Python é executado como um script autônomo. Nessa circunstância, o nome é definido para a cadeia de caracteres principal. Então, como você pode usar isso? Vou sair daqui. Volte para o meu Dot Pi. E eu vou mudar esse código um pouco antes de tudo isso começar. Crie uma instrução if. Na instrução if, você vai usar essa variável que sob variável de nome. Então, se esse nome é igual a domínio, que é o que aconteceu quando você executa o script por si só não importando. Então vá em frente e faça toda essa atividade. Vou mandar você examinar toda essa informação. Então, só se o nome for principal. Então, desta vez, se você fosse executar o Math.pi e você pode ver que executá-lo por si só. O nome é principal. E se você importasse mod, não importa, o que é muito legal. Então, novamente, vamos voltar para DIR e aqui está mod importado, certo? Mas qual é o nome atual? Bem, o que está acontecendo aqui como a sessão principal? Se você dissesse, qual é o nome mod? Bem, o nome mod é MOD. No entanto, se um arquivo for executado como um script autônomo, o nome será definido como a string como Maine. E é assim que você pode usar esse teste. Bastante arrumado. Uma razão pela qual você pode querer executar o módulo é um script autônomo é testar o conteúdo dele. Então, neste próximo exemplo é tudo sobre fazer um novo arquivo. Chame isso de fato dot py. E dentro fato PI do DOD, você vai definir uma função bem simples que é um fatorial e apenas chamá-lo de fato novamente. Você pode configurar a mesma instrução condicional. Se o nome atual é igual à string main, então você sabe que ele está sendo executado como um script autônomo. Você está importando outro módulo, o CIS ou módulo do sistema, e você vai usar uma ferramenta chamada ARG v, então permite que você use argumentos de linha de comando. Ser capaz de fazer alguns testes. Você vai preparar outra declaração “if”. E aqui está ele procurando por seu argumento opcional que você pode adicionar quando você executar o código como um script. Em seguida, ele vai imprimir a saída dessa função fato depois converter este argumento em um inteiro de uma string. Salve esse arquivo e para testar se você pode importar fatos, vá em frente e inicie uma nova sessão shell. Então fatores disponíveis e é preciso um argumento de fim. Vamos dizer qual é o fatorial de cinco? Então isso mostra o fato funciona como um módulo. No próximo vídeo, você explorará o recarregamento de um módulo. 124. Reloading um módulo: Neste vídeo, vou mostrar-lhe sobre a recarga de um módulo até agora, você pode simplesmente importar um módulo uma vez, mesmo que você tente, um módulo é carregado apenas uma vez por sessão de intérprete. E isso vai funcionar bem para funções em definições de classe e importar todos esses objetos inicialmente. Mas, às vezes, os módulos também podem conter instruções executáveis. Normalmente, as instruções executáveis são apenas para inicialização, e faz sentido que essas instruções só serão executadas na primeira vez que o módulo for importado. Normalmente tudo bem, deixa-me que dês uma vista de olhos nisso. Vá em frente e reabra o Math.pi. E dentro dele, eu vou ter que ir em frente e limpar isso se o nome for igual a principal. Basta manter uma declaração de impressão simples para imprimir AI fora. Na verdade, modificar um pouco e usar um F String. E isso pode mostrar que toda vez que este módulo é importado, ele iria imprimir isso, certo? Então guarde esta linha extra. Certo, aqui no terminal. O que aconteceu se eu importar mod? Bem, você pode vê-lo aqui. Inicialmente, como importou mod, ele foi em frente e fez a declaração de impressão dentro de lá usando a força F. E aqui dentro um mod Dante está disponível. Agora, e se você importasse mod novamente dentro da mesma sessão? Nada acontece é montane parado aqui? Sim, na verdade, todos os objetos estão disponíveis. Então, por que não executaria esse código novamente? Will, esse é o problema. Ele só vai importá-lo uma vez e ele não precisa reimportá-lo novamente. Então é uma espécie de coisa de eficiência. Bem, e se precisasse recarregar isso? É possível recarregar um módulo? Se precisasse mesmo? Há duas opções aqui. Por um lado, você pode reiniciar o intérprete e você já praticou isso várias vezes. Ou há um módulo que você pode importar chamado lib, e que inclui uma função chamada reload. Deixa-me mostrar-te o que é isso. Então, às vezes, você pode querer recarregar isso no, especialmente se você talvez alterou o código e você não deseja reiniciar o intérprete. Como talvez você tenha mudado isso um pouco e você salvar, e agora você quer importar mod. Esses objetos ainda estão lá e a importação de mod não imprimiu nada. Novamente, se você estiver fazendo alterações em seu módulo, você precisará usar outra ferramenta. E essa ferramenta é algo que pode ser importado do lib de importação. E dentro de libs de importação, uma função chamada Recarregar. Agora que você importou, reload vai recarregar o módulo e, em seguida, retorná-lo novamente. Então, neste caso, o módulo é chamado mod dois importantes lib dot reload Maud seria realmente recarregado aqui. Na verdade, foi recarregado da fonte aqui. Então agora você tem uma ferramenta útil que você está fazendo alterações em seu módulo. Você pode recarregá-los usando o import live e a carga funcionária. No próximo vídeo, começaremos a explorar pacotes Python. Obrigado por assistir. 125. Como instalar um pacote em Python usando PIP: Ei pessoal, de volta ao nosso curso Python novamente, Python tem uma biblioteca padrão de pacotes, mas muitos desenvolvedores escreveram seus pacotes para estender ainda mais as capacidades do Python. Estes são pacotes de terceiros. Você pode instalá-los com a ajuda da ferramenta de tubulação do Python. Esta ferramenta baixa e instala pacotes Python com segurança em seu computador a partir de ponto e vírgula HTTPS, barra dianteira dianteira PY PI.org, o site Python Software Foundation. Imagine que o índice de pacotes Python é algum tipo de aplicativo gratuito para módulos Python. Vamos acender a página web. Estas são as últimas atualizações dos pacotes ou módulos Python, se preferir. Clique em procurar projetos a partir deste link e você pode ver milhares de pacotes prontos para instalá-los. Vamos voltar para a ferramenta PIP. O arquivo executável para a ferramenta PIP é chamado pip no Windows e PIP3 no OS X e Linux. No Windows, você pode encontrar Pip no seguinte diretório. Enquanto Pip vem instalado automaticamente com Python 3.9 e no Windows, bem como OSX, você deve instalá-lo separadamente online x. agora eu vou mostrar-lhe como instalar pacotes de Python usando Pip. Vou demonstrar como desinstalar um pacote que não é mais necessário. Agora, se você estiver usando o Windows, você será capaz de instalar o pacote Python abrindo prompt de comando do Windows e, em seguida, digitando este comando. Vamos ver os passos um por 1. Primeiro digite o prompt de comando na caixa de pesquisa da janela. o botão direito do mouse no prompt de comando do Windows e selecione Executar como administrador. Ao executar o prompt de comando como administrador, você evitará quaisquer problemas de permissão no prompt de comando tipo CD barra invertida, pois esse comando garantirá que seu ponto de partida tenha apenas o nome da unidade. Pressione Enter. Agora você verá o nome da unidade de c, localize seu caminho Python. A pasta de scripts pode ser encontrada dentro da pasta do aplicativo Python onde você instalou originalmente Python. No meu caso, se eu abrir o Windows Explorer, o caminho Python é este. Então, se eu clicar com o botão direito do mouse, posso copiar este endereço como texto. Agora, no prompt de comando digite cd seguido por seu caminho Python, Eu posso colar o endereço iria controlar mais V, pressione enter. Agora digite esse comando pip install para instalar seu pacote Python. Uma vez que, no nosso caso, gostaríamos de instalar o pacote pandas. Em seguida, digite o seguinte comando no prompt de comando. Finalmente pressione Enter e você notará que o pacote aqui, é Panda, será instalado. Você pode verificar rapidamente o Pankaj foi instalado com sucesso em Python abrindo o Python ocioso e, em seguida, executando o comando import pandas. Se nenhum erro aparecer depois que você pressionar F5 para executar o comando Importar, então o pacote foi instalado com sucesso, missão realizada para desinstalar um pacote usando Pip, basta digitar os seguintes comandos no prompt de comando. Não se esqueça de definir o caminho Python antes de digitar este comando. Finalmente digite y e pressione Enter para prosseguir com a remoção do pacote. Obrigado por assistir. 126. Pacotes de Python: Até agora você só tinha um único módulo para importar. Mas o que acontece é que você começa a construir um aplicativo muito maior vontade, que é onde pacotes Python podem entrar quando você está tentando manter o controle de um número crescente de módulos. A criação de um pacote é normalmente a solução. Pacotes permitem uma estrutura hierárquica a do namespace Module, novamente usando a notação de pontos. Então aqui está um exemplo de estrutura de pacotes e você vai começar a jogar com isso em um momento. No nível superior, você novamente tem um diretório, E digamos que o diretório é chamado pacote pk GY. E dentro dele, ele inclui mod E1 dot pi, e então ele tem um segundo módulo, mod dois dot py. Então agora ambos os modelos estão dentro da hierarquia de diretórios do pacote. Bem, como você importá-los e trabalhar com esses módulos? Deixe-me ter você praticar dentro do diretório Python. Eu já criei um novo diretório, pk G. Então aqui está o diretório pk G e incentivo em eu criei dois módulos, modo um e modo dois. Ele abre esses dois arquivos. Então o modo um vai ter uma função chamada carga de dados. Os dados de carregamento quando chamado, vai imprimir uma linha de texto sobre o módulo. Ele também tem uma classe. Esta classe vai ser a classe do cliente. Mod dois vai ter uma função chamada módulo Clean Data , tem uma classe também. Esta classe será a classe local. Ótima. Então, a partir das janelas mostradas, Por que as maneiras que você importaria pacotes ou módulos de pacotes? Bem, você pode usar a notação de pontos. Na verdade, você poderia importar os dois ao mesmo tempo. E você poderia criar um objeto e x vai ser um local marcando o local, se você quiser. Ótima. Então x é o objeto de localização do mod dois do pacote PKA G. Nice. Então essa é uma maneira é apenas importá-los. Outra maneira seria importar itens individuais. Então agora dentro daqui, carregar dados está no SymbolTable local e está disponível e você pode vê-lo em execução. Então, novamente, você pode importar do pacote itens individuais dos módulos individuais usando a notação de pontos. Ou você pode usar a técnica alternativa de nome. Digamos que você queira importar essa classificação. Mas em vez de chamar um local, você quer chamá-lo de primário. Agora você pode criar um novo objeto usando essa classe. Então agora y é um objeto local. Novamente, ele está usando o nome que você deu a ele um primário. Outra maneira que você aprendeu a importar antes foi usando a instrução from. Você não pode importar diretamente o modo um, como você pode ver nesta mensagem de erro. Mas a partir de P KG, você pode importar mod one. Então, em vez da denotação de ter pico AGE primeiro, você realmente usaria apenas mod one. E da mesma forma, se você quiser, você pode carregar a partir do EKG de importação de títulos T2 e, em seguida, ele daria um nome diferente. Digamos foo. Foo limpou os dados e se você quisesse, você poderia chamar essa função. É bom praticar todas essas técnicas novamente. Obrigado por assistir. 127. Crie de gráficos e formas usando módulo de tuple: Como já aprendemos, um módulo em Python fornece código útil para ser usado por outro programa. Python tem um módulo especial chamado Turtle que podemos usar para aprender como os computadores desenham imagens em uma tela. O módulo tartaruga como uma forma de programação de gráficos vetoriais, desenho com linhas simples, pontos e curvas. Primeiro, para usar a tartaruga, vamos importar o módulo tartaruga, usado o código. Agora que importamos o módulo tartaruga, precisamos criar uma tela, um espaço em branco para desenhar como uma tela de artista. Para fazer isso, chamamos a caneta do módulo tartaruga, que cria automaticamente uma tela de desenho. Digite isso no shell Python. Você deve ver uma caixa em branco ou a tela com uma seta no centro. A seta no meio da tela é a tartaruga. Claro que não é muito Lago Tartaruga. Você envia instruções para a tartaruga usando funções disponíveis na variável que acabamos de criar, semelhante ao uso da função caneta no módulo Tartaruga. Por exemplo, a instrução de avanço diz à tartaruga para avançar, diga à tartaruga para avançar 50 pixels, digite o seguinte comando. Agora vamos dizer à tartaruga para girar 90 graus com o seguinte comando. A tartaruga esquerda 90 comando aponta a seta para cima. Agora vamos desenhar um quadrado e o seguinte código para as linhas que você já inseriu. Para apagar a tela, tela e coloca a tartaruga de volta em sua posição inicial. Você também pode usar claro, que apenas limpa a tela e deixa a tartaruga onde ela está. Também podemos virar nossa tartaruga para a direita ou movê-la para trás. Podemos usar para tirar a caneta da página. Em outras palavras, para dizer à tartaruga para começar a secar e para baixo para começar a desenhar. Estas funções são escritas da mesma forma que as outras que usamos. Vamos tentar outro desenho usando alguns desses comandos. Desta vez vamos fazer a tartaruga desenhar duas linhas. Primeiro movemos a tartaruga para trás 100 pixels com T para trás 100, e depois usamos t up para pegar a caneta e parar de desenhar. Em seguida, com o comando t direita 90, nós giramos a tartaruga direita 90 graus para apontar para baixo em direção à parte inferior da tela. Com t forward 20, avançamos 20 pixels. Nada é desenhado por causa do uso do comando up na terceira linha. Viramos a tartaruga para a esquerda 90 graus para a direita com T esquerda 90. E então, com o comando Down, dizemos à tartaruga para colocar a caneta de volta e começar a tentar novamente. Finalmente, desenhamos uma linha para frente paralela à primeira linha que desenhamos com t forward 100, e desenhamos as duas linhas paralelas. Além disso, você poderia usar um loop for para fazer um quadrado como este. Agora, com algumas mudanças simples em nosso loop, podemos criar agradável usando o código semelhante, podemos criar vários moldados de um quadrado básico para uma estrela espiral. Como você pode ver usando para loops, tornamos muito mais simples desenhar essas formas. Agora vamos tentar desenhar um quadrado preenchido, mas primeiro, limpe a tela para secar o quadrado cheio. Primeiro, precisamos definir uma função quadrada que desenha um quadrado. Comece a encher. Teste sua função, chamando-o com tamanho 50 e, em seguida, n preenchimento. Espero que você aprenda a usar o módulo de tartaruga para desenhar algumas formas geométricas básicas usando loops para controlar o que a tartaruga faz na tela. Se você tiver alguma dúvida, por favor me avise. 128. Abrigar, ler e escrever para um arquivo: Olá e bem-vindo a esta série de tutoriais em vídeo sobre como trabalhar com arquivos e Python. Ao longo desta seção, você vai aprender praticamente qualquer coisa que você poderia querer saber sobre um arquivo básico operações em Python. E minhas operações básicas de arquivo, quero dizer criar, excluir arquivos e diretórios, movê-los, copiá-los, renomeá-los, trabalhar com arquivos, trabalhar com arquivos temporários, atravessar diretório e obter propriedades de arquivo. Esta lista continua e sobre, mas praticamente tudo aqui eu vou cobrir e até mesmo algumas coisas que não estão bem nesta lista. Se você está olhando para acompanhar em seu próprio terminal, eu recomendo que você dê uma olhada nos arquivos de recursos que eu incluí porque isso irá conter todos esses diretórios de exemplo que eu vou estar passando nesta seção organizado por menos de, poderia ser realmente conveniente para você. Então, geralmente em cada lição vou introduzir a lição, introduziu algumas das funções que vou usar. E então eu vou mostrar-lhe um diretório de exemplo e você deve olhar para ele em seu próprio terminal para que você possa acompanhar. Tudo bem, vamos entrar. Nesta lição, eu vou cobrir Python com padrão de abertura, também conhecido como padrão de gerenciador de contexto, que eu acho que é o padrão básico mais importante para trabalhar com arquivos e Python porque permite que você crie e leia de arquivos existentes em seu sistema de arquivos. Para entender a largura aberta como padrão, primeiro você precisa entender a função aberta, que é realmente bastante simples. Ele leva nome de arquivo e um modo, e ele abre o nome de arquivo dado diretório atual, a menos que especificado de outra forma no modo que você passar. E então, uma vez que esse arquivo está aberto, é quando você pode fazer operações nesse arquivo ou você pode passá-lo para ler a partir dele. Então, os modos de arquivo básicos, e há muitos mais. Mas estes são os três que eu vou mostrar-lhe para começar com o nosso modo de escrita w, que limpa o conteúdo do arquivo existente criando arquivo que não existe e permite que você escreva o arquivo. Há modo vermelho, modo r, que lhe dá um acesso somente leitura ao conteúdo dos arquivos. E lançaremos um erro se o arquivo ainda não existir. E então há o modo de acréscimo a, que grava no final do arquivo para que ele não limpe o conteúdo do arquivo existente. Então, as zonas são os três modos de arquivo básicos explorados ao longo do resto desta lição. Então vamos para o shell Python. Então o que eu posso fazer é dizer algo como test.txt como um nome de arquivo. E então eu vou abri-lo no modo de gravação para que eu possa escrever para ele. E então ele é criado porque test.txt ainda não existe. E então eu preciso dizer é assim com aberto como e então eu dar um nome a este. Normalmente eu acho conveniente dizer algo como escrever arquivo sublinhado para que eu me lembre o que exatamente eu estou escrevendo dois neste caso. Então eu posso dizer algo como o arquivo certo ponto certo. Ou posso escrever qualquer texto que eu queira escrever. Posso dizer algo como “olá “, isto é um arquivo. Pressione Enter e escrever função retorna o número de caracteres escritos aqui. Vejamos o diretório principal do Pythons. Consegue ver este arquivo? Está aqui, test.txt. Você pode verificar esse arquivo dizendo com test.txt aberto no modo de leitura como arquivo de leitura. E então eu posso apenas dizer print, ReadFile dot read, e não read função apenas retorna todo o conteúdo desse arquivo. Então, como você pode ver, este é realmente arquivos existentes e ele tem o conteúdo. Olá, sou um arquivo. Há mais um modo que te mostrei. Então eu vou mostrar-lhe agora test.txt e modo de acréscimo é o arquivo certo. E então eu posso dizer arquivo certo, não invadir. E eu vou colocar uma nova linha aqui para que haja uma nova linha no arquivo. E eu vou dizer, aqui está um pouco mais de texto. E, novamente, farei exatamente a mesma coisa que fiz aqui. E como você pode ver, eu adicionei a ele. Mas se eu fosse abri-lo novamente no modo de escrita e depois escrever para ele, todos os textos foram excluídos. Vamos verificar o arquivo do diretório principal do Python. E como você pode ver que isso é de fato verdade porque no modo de gravação realmente apenas direitos sobre tudo o que existe no arquivo já, enquanto o modo caneta apenas acrescenta ao texto existente. Então é assim que você pode abrir, ler e escrever em um arquivo de algumas maneiras diferentes. Uma última coisa que eu quero abordar nesta lição é que a prática recomendada é sempre fechar o arquivo depois de abri-lo, digitando ponto direito close. Caso contrário, será deixar este FileResource aberto com o seu sistema operacional irá interpretar como a necessidade de ter esse arquivo aberto e ele vai tipo de snarl até seus recursos do sistema operacional. Então é assim que você pode usar a largura aberta como um padrão para criar, ler e gravar arquivos. Na próxima lição, abordarei como obter a listagem de diretórios, como ver todas as coisas que estão em seu diretório que foram criadas. 129. Como começar uma Listagem e atributos de arquivos: Nesta lição, vou abordar como obter uma listagem de diretório. Basta colocar uma lista de todas as coisas que existem no seu diretório atual ou em qualquer diretório que você possa escolher. E isso é realmente importante porque praticamente qualquer tarefa que você quer fazer em Python ou outra linguagem de programação onde você está trabalhando com arquivos, você vai ter que fazer algo lá onde você quer olhar através de todos os arquivos do seu diretório atual e faça algo com eles. Aqui estão algumas funções básicas de listagem de diretórios ao longo desta série, muitas vezes vou mostrar-lhe algumas maneiras diferentes de fazer a tarefa. Então eu vou te mostrar como se faz. Então, com tudo o que disse, a primeira função aqui é a lista de pontos OS DIR, que leva em um nome de diretório e, em seguida, retorna uma lista de arquivos e subdiretórios nesse diretório como uma string. A alternativa um pouco mais sofisticada é OS dot scan DIR, que retorna um iterador em vez de uma lista. Esse iterador não é de strings, mas sim de objetos de arquivo que têm algumas propriedades para eles, que os torna um pouco mais fáceis de trabalhar quando você realmente deseja tratá-los como arquivos. E, em seguida, o módulo live path tem um paradigma muito semelhante para verificar DIR, exceto que ele funciona em um objeto de caminho. E eu vou mostrar-lhe como inicializar um objeto de caminho e trabalhar com ele sobre o Python Challenge é o segundo. Meu diretório Python tem um par de subdiretórios e vários arquivos nele. E cada sub-diretório tem um par de arquivos diferentes para. Ok, vamos entrar no código um pouco aqui. A primeira coisa a fazer é obter algumas importações indo, importar OS. E então eu também vou dizer caminho lib import path, só assim eu tenho todas as minhas importações aqui em um só lugar. Então, a primeira coisa que você pode fazer se você quiser obter uma listagem de diretório é que você poderia apenas dizer OS dot list DIR. E então, como você pode ver no meu shell prático, ele leva em um parâmetro de caminho opcional. Se você não passar o caminho, ele irá apenas usar o diretório atual. Como você pode ver se você se lembra do meu diretório Python, ele tem todos os arquivos e pastas. Mas como você pode ver aqui, todos estes são apenas cordas nuas e assim é a lista de cordas. Então isso não é super flexível. Se você realmente quiser obter informações sobre isso, você pode dizer algo como talvez caminho OS é arquivo e então você pode chamar isso em um arquivo ou o que quer que seja. Mas você tem que fazer todo o circulo Kunshan para descobrir algumas informações sobre este arquivo. Consegue adivinhar por que é falso? É porque não escreveram a extensão “dot py”. Vamos tentar de novo. Este não é o caso de algo como digitalização DIR. Você pode dizer algo como para o nome e OS não digitalizar DIR. E isso também terá um parâmetro de caminho opcional. Você pode dizer que se o nome Don é Arquivo. E eu não tenho certeza exatamente por que isso não tem sublinhado e isso tem um sublinhado. Gostaria de poder lhe dizer mais sobre o porquê, mas quem sabe? Para que você possa apenas ser atribuído diretamente do objeto. Porque como você pode ver. Objetos são entradas DIR em vez de apenas strings simples. Assim, as entradas DLR têm informações dentro deles, enquanto as strings, você tem que fazer um pouco mais de trabalho como o programador para aprender que os comandos necessários para realmente obter essa informação sobre essas coisas. Então isso é algo a notar aqui, é que o DIR de verificação de pontos do OS é um pouco mais orientado a objetos, enquanto o DIR de lista de pontos OS funciona um pouco mais como um sistema de arquivos Linux tradicional. Nós estamos praticamente tudo é uma corda e você só tem que fazer o trabalho por conta própria para descobrir as informações sobre isso. Então o caminho vivido leva uma psicologia semelhante, exceto que você tem que criar o caminho como um objeto explícito. Portanto, o caminho DIR é igual ao caminho. E então eu vou apenas passar no diretório atual dot slash. E então você pode fazer exatamente o mesmo que você pode fazer com OS dot scan DIR. É só que ele chamará ITER DIR diretamente no caminho. Então é exatamente a mesma coisa aqui. Como você pode ver, este nome tem um pouco de uma função de impressão diferente. Mas este nome ainda é um objeto onde ele tem um pouco mais de informação do que apenas uma string nua. Então isso é relativamente útil. E todas essas coisas que você pode usar em qualquer caminho que você gosta. Não está apenas no diretório atual. Então, são três maneiras diferentes de obter um diretório listando o módulo do sistema operacional e o módulo do caminho lib. Todos eles têm suas vantagens e desvantagens. OS dot list DIR é realmente simples e fácil. OS dot scan DIR e caminho lib dot path tem um pouco mais nuance e você pode fazer um pouco mais de coisas com eles. Mas você não tem necessariamente o mesmo tipo de facilidade que você faz com OS dot list DIR. Então todas as coisas a considerar agora que você tem uma lista com os arquivos no diretório atual. Mas o que acontece quando você deseja realmente obter os atributos desses arquivos? Como na última vez que foram modificados ou quando foram criados, ou seu tamanho ou suas permissões ou algo assim. Existem três opções diferentes para obter informações de arquivo. O primeiro é sempre dots stat, que leva em um caminho como uma string e, em seguida, retorna um objeto de resultado de rota stat que tem um arquivo de dados nele. Então esse objeto de resultado stat é algo que você pode acessar campos desse objeto e obter os dados do arquivo. Em seguida, OS dot scan DIR e caminho lib dot path dot ITER DIR fornecem essas informações com os objetos que eles retornam em seus iteradores. Então vamos dar uma olhada na concha. Certo, arquive dados. Como você obtê-lo? Bem, vamos tentar isto. Primeiro. Eu só quero obter o conteúdo deste diretório. E como você pode ver, há muitos arquivos para escolher. E o primeiro método que eu olho para ele nos slides com a função de ponto de sistema operacional que apenas leva em um caminho de arquivo, nome de arquivo e fornece um objeto de resultado de estatísticas de ponto do sistema operacional. Como resultado, você terá todos os tipos de coisas diferentes, número de links para criação e tempo de modificação. Alguns deles serão até diferentes por sistema no Windows, no Linux, no Mac, e alguns deles terão valores diferentes. Agora vou mostrar as duas maneiras pelas quais eu realmente quero obter esses dados. Eu poderia salvar para OBJ e OS dot scan DIR no diretório atual. E então vamos fazer um pouco mais de uma saída informativa. Digamos que algo como o tempo Mod é igual ao OBJ Darmstadt. E é assim que você obtém as estatísticas para um objeto DIR de varredura. E então eu posso dizer ponto STM tempo. E agora podemos ver algo agradável como f aspas duplas nome do ponto OBJ foi modificado pela última vez em. E então eu poderia dizer tempo ponto c hora do tempo mod. E assim isso deve dar a tudo um formato legível agradável. Ele diz a você cada nome de arquivo e a hora em que foram Last Modified, em seguida, o caminho viveu na opção Path. Aqui funciona quase exatamente da mesma maneira, exceto que você precisa criar o objeto path primeiro antes de começar a iteração através dele. Então, essas são três maneiras diferentes de obter estatísticas de arquivos usando Python. Na próxima lição, vou abordar algo que ainda não abordei, que é como criar diretórios. 130. Criação e deletar Directorias: Nesta lição eu estou indo para vir ou como fazer diretórios e até mesmo árvores de diretórios inteiros. Como de costume, existem algumas maneiras diferentes de fazer isso com o módulo do sistema operacional. Se você quiser criar apenas um único diretório, você pode usar o diretório MKDIR make OS dot com o nome do diretório, que cria um único subdiretório com um determinado nome. Importante notar que isso não criará um diretório e subdiretórios. E se você precisar disso, você precisa usar o ponto OS, fazer DEA, IRS. E então você pode passar em um nome de caminho completo com vários subdiretórios e ele irá criar a árvore de diretórios completa conforme necessário. Com o módulo lib path, você pode usar path list.pop dot MKDIR, que funciona essencialmente da mesma maneira que O S dot MKDIR, na medida em que ele também não criará árvores de diretórios completas. Nesta lição, eu vou usar realmente qualquer diretório de exemplo específico porque eu estou indo apenas para criar diretórios como eu preciso deles. Vamos passar direto para o shell Python. Certo, vamos fazer alguns diretórios. Os feitos. Mkdir é a primeira e a maneira mais básica de fazer isso. Ele leva em um parâmetro de caminho e, em seguida, ele também pode tomar um parâmetro de modo e, em seguida, o parâmetro DIR FDI. Então, se eu quiser criar um diretório chamado test, isso é muito simples de fazer. E então eu posso usar a lista DIR para ver que ele está sendo criado. Agora, se eu quiser fazer algo um pouco mais específico, e eu queria dizer algo como OS dot MKDIR, test2 barra subtarefas. Então você verá que realmente não funciona porque test2 ainda não existe. Assim, subtestes não podem ser criados pelo MKDIR. Se eu precisar fazer algo assim, eu posso usar OS dot, fazer DEA, IRS, que vai fazer este diretório, e então ele vai fazer tudo isso. Ele só vai fazer tudo o que eu preciso para chegar a este diretório final. Então, como você pode ver, lista DIR e teste dois estão lá. Em seguida, se eu chamar na lista DIR no teste dois, então você pode ver que ele tem sub-testes pasta exatamente como eu precisava. Então isso é realmente muito simples e incrível. A razão pela qual MKDIR existe desta forma e a razão pela qual ele tem o comportamento é apenas para ser realmente uma espécie de válvula de segurança, um mecanismo de segurança para ter certeza de que você realmente sabe o que está acontecendo com seu sistema de arquivos em todos os momentos. Fazer DEA IRS é incrível. Mas também pode causar comportamento inesperado se você é o único no diretório e você faz toda uma cadeia de subdiretórios e, em seguida, você acaba em um lugar totalmente inesperado. Considerando que MKDIR é construído para tipo de erro L antes que isso aconteça. Para que você possa lidar com isso. Outra coisa a observar aqui é que ambos lançarão uma exceção se você tentar criar um diretório que exista. Se eu disser OS dot teste MKDIR ou um oeste não fazer DEA IRS teste, em seguida, Python vai me jogar um arquivo existe erro porque ele está tentando criar algo que já existe. A alternativa caminho caminho ponto lib alternativa, que pode ser realizada desta forma. Você pode evitar esse problema se você está tentando fazer isso. Então você pode dizer algo assim. Um novo caminho é igual a teste de caminho. E então você pode dizer um novo ponto caminho MKDIR. E você pode usar o parâmetro exista okay e defini-lo como true se você não quiser que ele lance um erro se ele já existir. Agora o problema é com isso, é claro, é que ele acaba não fazendo nada porque ele não faz um diretório porque ele já existe. Isso é definitivamente algo importante para notar, é que mesmo se você não quer que esse erro aconteça, você provavelmente ainda deve vento para saber que algo está acontecendo lá, porque caso contrário, você poderia correr em problemas em que você acha que está criando algo novo, mas realmente você está criando algo e já existe um diretório existente. Portanto, este comportamento você pode eliminar se você precisar dele, mas você pode não querer em todos os momentos. Então essas são as diferentes maneiras de criar diretórios e Python. E eu acho que é realmente simples e direto. Use path dot live MKDIR se você quiser usar mais framework orientado a objetos, ou se você só precisa criar um diretório de cada vez, use OS dot MKDIR caso contrário. E, em seguida, se você precisa criar uma árvore de diretórios completa, seria subdiretórios usar OS dot omega d IRS, onde você pode usar os parâmetros do pai caminho lib dot caminho, ponto-ponto, opção MKDIR. Agora vamos ver como os diretórios funcionam. Os principais diretórios. Para excluir diretórios, você pode usar OS dot ARM DIR, remover diretório, onde você passa no caminho do diretório e, em seguida, você excluir o único diretório, ou isso é o que a função faz. Ele está excluindo esses diretório único. Se o diretório não estiver vazio, ele gera um erro do sistema operacional porque não deseja que você exclua acidentalmente diretórios completos. Ele quer ter certeza de que você os limpou antes de excluí-los. Caminho vivido no caminho na.rm. Dir é idêntico, exceto que ele opera em um objeto de caminho como de costume. Então, crie o caminho primeiro e, em seguida, chame seu método DIR Don RM. Se você precisar excluir diretórios não vazios ou uma árvore de diretórios inteira, você ainda pode Shuttle. Você tem que importar shuttle, que é abreviação para shell você até, e então ele tem uma função de árvore RM onde você pode chamar isso como o caminho do diretório e ele irá excluir toda a árvore de diretórios enraizada neste caminho. Então, se você tiver algumas subpastas dentro desse diretório que você está chamando, todas elas serão excluídas duas, não importa se elas estão cheias ou vazias. Então esta é uma espécie de opção nuclear de excluir diretórios e Python. Certo, vamos deletar alguns diretórios. Então, primeiro, vou mostrar-lhe o sistema de arquivos aqui. Então, vamos fazer uma primeira tentativa aqui e apenas ver o que acontece se você chamar OS na.rm DIR na pasta um. E é claro que eu tenho que colocar as cordas porque ele precisa ser o caminho em vez de não há nenhuma variável chamada Pasta um. Então, como você pode ver, um erro de sistema operacional porque o diretório não está vazio. Porque, claro, se eu chamar OS dot list DIR na pasta um, ele tem arquivos Python nele. Então isso não vai funcionar. Se eu quiser realmente excluir algo usando OS dot RMD IR, Eu vou ter que realmente rapidamente ir para fazer um novo diretório que todos teste chamada. E então eu vou ter que fazer uma lista DIR para mostrar que ele está lá dentro. teste já existe, então vamos fazer um diretório com o nome test1. Então agora há test1 diretório barra, e este diretório barra test1 está na verdade vazio para que ele possa ser excluído. Isso pode parecer um recurso não convencional que você só pode excluir com essas coisas básicas, diretórios que estão vazios. Mas, na verdade, é apenas um recurso de segurança. Ele não quer que você exclua coisas quando pode haver arquivos úteis dentro desse diretório. Não quer que você os lidere sem ao menos pensar no que está nele. Agora, porém, eu posso ver OS dot RMD. E agora você pode ver que ele está de volta, ele desapareceu novamente. Agora vou mostrar como você pode realmente excluir uma dessas pastas não vazias. Para eles, você terá que importar shell util, shuttle, e então você pode simplesmente dizer tentou excluir na pasta vazia. Claro que não podia. Vamos fazer outro exemplo com uma pasta de teste. Novamente, o mesmo. Agora eu vou excluir uma pasta não-vazia como módulos e pacotes. E agora se eu fizer minha lista DIR aqui, módulos e pasta pacotes está totalmente desaparecido mesmo que ele tinha conteúdo nele, certo? E isso funciona mesmo para subdiretórios. Esta é realmente a opção de rebatedor pesado que simplesmente exclui tudo sem carregar o que está nele. E isso pode ser tão útil se você sabe que tudo o que está em sua pasta é lixo em que você pode excluí-lo. Mas se você não sabe disso, você deve realmente ter cuidado para tentar usar algumas dessas outras funções que irão avisá-lo lançando um erro se você está tentando excluir algo que tem coisas úteis nele. Então é assim que você pode excluir diretórios em Python. 131. Deleting, Deleting, movendo e Renomeando arquivos: Agora que você sabe como criar e listar arquivos junto com seus atributos, seria ótimo se você pudesse excluí-los sempre que você terminasse com eles. E isso, claro, será o tema desta lição. Excluindo arquivos. Para excluir arquivos, você tem algumas opções como de costume, com o módulo OS, você realmente tem duas funções quase idênticas. Sempre não remova e OS ponto no link, ambos os quais levaram o caminho do arquivo string e excluir esse único arquivo, não um diretório, eles levantam um arquivo não encontrado no arquivo não existe. E a razão pela qual as duas funções idênticas com nomes diferentes é apenas uma questão de compatibilidade com diferentes paradigmas de programação. Algumas pessoas em sistemas antigos ou tipo unix gostam de usar unlink como sua nomenclatura preferida. Considerando que algumas pessoas em sistemas diferentes usam remover. É só para garantir que todos estejam felizes com o módulo de lib de caminho. Você também tem um ponto no método link, mas este é um método de objeto caminho. Então, como de costume, você tem que iniciar esse objeto de caminho antes de poder chamar ponto no link. Então o diretório de exemplo, então eu vou usar para excluir a coisa, os arquivos com a seção de diretório de liderança filha desta lição serão os mesmos. Eu tenho um par de subpastas com arquivos dentro deles, e então eu só tenho alguns arquivos com o diretório de exemplo de nível superior. Ok, vamos dar uma olhada em como este arquivo funciona na prática. Vou usar o DIR da lista de pontos do SO para mostrar onde estou no meu sistema de arquivos. Eu tenho um par de arquivos de texto aqui e adicionar um par de pastas que eu poderia mostrar-lhe bem para estimar totalmente certeza que essas pastas são o que esperamos ter nelas. Alguns arquivos Python e algumas outras pastas têm algumas coisas neles para. Primeiro vamos experimentar a opção de remoção de pontos do sistema operacional aqui. Vou só ligar para ele. E um desses arquivos de texto de nível superior, apenas por diversão, OS dot remove. Ele não lhe dá qualquer saída em particular, mas confie que é trabalho. E você pode verificar isso novamente usando a lista DIR e você pode ver test1 ponto TXT desapareceu. Então isso é muito bom. Funciona como esperado. E então o ponto S no link funciona exatamente da mesma maneira. Vou chamar isso no teste 2.txt. E como você pode ver, OS dot list DIR, ambos os arquivos de texto desapareceram. Tudo o que me resta são algumas pastas. Agora vou lhe dizer um pouco como copiar, mover e renomear arquivos e diretórios. Existem várias funções úteis para copiar e mover arquivos para cópia. Há duas opções. Na verdade, existem três opções com o módulo de utilitários shell Shuttle, que eu terei que importar. Há uma cópia que leva em um caminho de arquivo de origem e de destino, e copia o arquivo dos caminhos de origem para o caminho de destino. Portanto, o arquivo de origem ainda existirá. Claro, você está apenas copiando, você não está excluindo o primeiro arquivo. O importante sobre a cópia, porém, é que ele apenas copia o arquivo, o conteúdo do arquivo, mas não seus metadados. Então, por exemplo, coisas como a hora da última modificação e assim por diante não serão preservadas. Isso só será redefinido para os valores de linha de base. Se você precisava fazer os metadados, você ainda pode usar o ponto tional. Copiar para a função, que tem sintaxe idêntica. Ele copia os metadados também. Então esses são casos de uso distintos. Então você tem shuttled.com P3, que copia árvores de diretório completas. Isto é o que você deve usar se você quiser copiar diretórios em qualquer capacidade, mas apenas tente manter isso em mente enquanto toda a árvore enraizada no SRC DIR. E então ele irá copiá-lo para o diretório de destino para mover a renomeação. Ou porque realmente os dois são essencialmente equivalentes, você tem duas opções. Um com o módulo de transporte e outro com o sistema operacional. Vaivém ponto mover. Retoma novamente uma origem e um parâmetro de destino. E ele move o arquivo ou o diretório de SRC ou origem para dst, o destino. Então sempre renomear realmente faz essencialmente a mesma coisa porque mover e renomear são realmente dois lados da mesma moeda, por assim dizer. Ele renomeia o arquivo ou diretório com o nome antigo e novo. Eu vou escrever, Eu importado OS e shuttle deve util já. A primeira coisa a fazer é mostrar a funcionalidade de shuttle dot copy. Vou copiar o teste 1.2x d em um novo arquivo e chamar tags de backup. E eu vou chamá-lo de backup 1.2x t Só para ter certeza que você sabe que é um backup do Test1 TXT. Como você pode ver, a cópia do Shuttle DOD retorna o caminho do arquivo recém-copiado backup um TXT. E se eu disser ls dot list DIR, você pode ver que agora há um teste 1.2x T e um backup 1.2x T. Então esses arquivos originais preservados e o novo backup também é criado e esses arquivos serão exatamente o mesmo conteúdo. Agora, se você precisar copiar um diretório shuttle ponto cópia não vai funcionar. Se eu tentar copiar a pasta um para Nova Pasta um, então isso não funcionará porque a pasta Um é um diretório. Para isso, você precisará usar a árvore shuttle.com, que fará exatamente a coisa correta. Ele irá copiar a pasta um para Nova Pasta um. Posso dar uma olhada nisso. Aqui está, Pasta um, Nova Pasta, uma copiada perfeitamente. Posso listar o conteúdo da Pasta um na lista de conteúdos da nova versão apenas para ter certeza de que você pode ver que eles são de fato idênticos. Então o mesmo arquivo, o mesmo tudo, tudo copiado muito bem. Basta ter cuidado com isso porque ele copia toda a árvore de diretórios lá e ele subdiretórios, aqueles também serão copiados. Às vezes isso pode não ser exatamente o que você quer. Talvez queira um pouco mais de granularidade. E se esse for o caso, então você terá que fazer um pouco mais de trabalho e itá-los através dos diretórios por conta própria. Então agora vamos falar sobre mover e renomear arquivos porque eles são realmente apenas a mesma operação. Então, seus opsins são shuttled dot move, e vamos tentar mover test.txt para a pasta uma barra test.txt. Como você pode ver, test.txt desapareceu do diretório de nível superior, mas ele aparece na pasta um. Então isso é exatamente como você poderia esperar. Agora, OS dot renomear funciona quase exatamente da mesma maneira se você tentar mover o backup 2.txt, que é um arquivo que não existe na mensagem de erro aparecerá em nossa tela. Então um monte de coisas lá que tudo funciona muito bem. E ambas as funções funcionam em diretórios também. Então isso é um você pode copiar, renomear e mover arquivos e diretórios em Python. 132. Crie um jogo de matemática interativo: Bem-vindos a esta seção de projeto marco do curso. Vamos começar esta seção passando por alguns exercícios de projeto de aquecimento. Nós já cobrimos programação fundamental suficiente em Python, começar a codificar nosso primeiro programa completo. Nesta seção, vamos codificar um programa que testa nossa compreensão da ordem matemática das operações e as regras de um cálculo aritmético, nosso programa enviará aleatoriamente uma pergunta aritmética para nós respondermos. Se errarmos a resposta, o programa exibirá a resposta correta e perguntará se queremos uma nova pergunta, se acertarmos, o programa perguntará se queremos uma nova pergunta. Além disso, o programa acompanhará nossas pontuações e salvará as pontuações em um arquivo de texto externo. Depois de cada pergunta, podemos encerrar o programa. Vamos escrever para arquivos para o nosso programa. Vamos chamá-los de parte um e parte dois. O primeiro arquivo ou parte um, se você preferir, é MathFunctions dot pi. E o segundo arquivo, ou a segunda parte é o jogo de matemática dot py. Eu dividi o programa em pequenos exercícios para que você possa tentar codificar o programa sozinho. Experimente os exercícios antes de se referir às respostas. As respostas são fornecidas em seus arquivos de recursos. Lembre-se, aprender a sintaxe Python é fácil, mas chato. Resolução de problemas é onde a diversão está se você encontrar dificuldades ao fazer esses exercícios, tente mais. É aqui que a recompensa é maior. Se você está pronto para conectar os pontos entre o que você já aprendeu na criação de um programa interativo. Vamos mergulhar. 133. Parte 1 de módulos de importação e obtendo o resultado do usuário: Para começar, vamos criar as funções matemáticas de arquivo dot pi. Vamos definir três funções neste arquivo. O primeiro passo é importar dois módulos, o módulo aleatório e o módulo do sistema operacional. Eu gostaria de descrever o uso do módulo aleatório em Python, o módulo aleatório fornece acesso a funções que suportam muitas operações. Talvez a coisa mais interessante é que ele permite gerar números aleatórios, estará usando a função randint para o módulo aleatório. A função aleatória gera um inteiro aleatório dentro do intervalo fornecido por nós. Vamos usá-los para gerar números para nossas perguntas mais tarde correu em aceita dois parâmetros, um número mais baixo e mais alto. O módulo OS em Python fornece funções para criar e remover um diretório ou pasta, buscar seu conteúdo, alterar na identificação do diretório atual, etc., a partir do módulo OS estará usando as funções remove e renomear . Pause o vídeo e tente importar esses dois módulos. As linhas de código corretas são as seguintes. O próximo passo é obter a pontuação do usuário. Aqui vamos definir nossa primeira função. Esta função aceita um parâmetro, tipo de nome de usuário. Ele abre as pontuações dos usuários do arquivo data.txt. No nosso modo, as pontuações dos usuários não t x t se parece com isso. Cada linha registra as informações de um usuário. O primeiro valor é o nome de usuário do usuário e o segundo é a pontuação do usuário. Em seguida, a função tem que ler o arquivo linha por linha para usar um loop. Cada linha é então dividida usando a função split. Dividir usa vírgula como delimitador. Vamos armazenar o resultado da função de divisão IIT no conteúdo da lista. Em seguida, a função vamos verificar se alguma das linhas tem o mesmo nome de usuário é o valor que é passado como o parâmetro. Se houver, a função fecha o arquivo e retorna a pontuação ao lado desse nome de usuário. Se não houver, então a função fecha o arquivo e retorna a string minus1. 134. Manicura de exceção e atualização do usuário: Agora precisamos fazer algumas modificações para o nosso código seria abrir nosso arquivo anteriormente usamos o modo ARM. Isso ajuda a evitar alterações acidentais no arquivo. No entanto, ao abrir um arquivo e nosso modo no erro IO ocorre se o arquivo ainda não existir. Assim, quando executamos o programa pela primeira vez, vamos acabar com um erro, já que os arquivos usuários pontuações ponto TXT não existe anteriormente. Para evitar esse erro, podemos fazer um dos seguintes procedimentos. Em vez de abrir o arquivo em nosso modo, podemos abri-lo com o modo W. Ao abrir com o modo W, um novo arquivo será criado se o arquivo não existir anteriormente. O risco com esse método é que possamos gravar acidentalmente no arquivo, o que resulta no apagamento do conteúdo anterior. No entanto, uma vez que o nosso programa é um programa pequeno, podemos verificar através do nosso código cuidadosamente para evitar qualquer escrita acidental. O segundo método é usar uma instrução try except para manipular o erro de E/S. Faça isso, precisamos colocar todos os nossos códigos anteriores no bloco try, em seguida, usar exceto erro IO para lidar com o arquivo não encontrado. Erro no bloco exceto informará os usuários que os arquivos não encontrados e, em seguida, continuar criar arquivo. Usaremos a função aberta com o modo W para criá-la. A diferença aqui é que o uso do modo W quando o arquivo não é encontrado. Se o arquivo não existir inicialmente, não havia risco de apagar qualquer conteúdo anterior. Depois de criar o arquivo, fecha, o arquivo retorna a string de menos um. Você pode escolher um dos métodos acima para completar este exercício, mas eu prefiro o segundo método. Então vamos modificar o código. Agora vamos definir outra função chamada atualizar pontos de usuário, que leva em três parâmetros, novo usuário, nome de usuário e a pontuação. Novo usuário pode ser verdadeiro ou falso. Se o novo usuário for verdadeiro, a função abrirá as pontuações dos usuários do arquivo ponto TXT e modo de acréscimo, e anexará o nome de usuário e a pontuação ao arquivo quando ele sair do jogo. Se o novo usuário for falso, a função atualizará a pontuação do usuário no arquivo. No entanto, não há nenhuma função em Python que nos permita atualizar o arquivo de texto. Nós só podemos escrever para anexar a ele, mas não atualizado. Portanto, precisamos criar um arquivo temporário. Esta é uma prática bastante comum na programação. Vamos chamar este arquivo usuários pontuações ponto TMP e abri-lo no modo W. Agora vamos precisar de loop através de usuários pontuação don t x t, e copiar a linha de dados por linha para usuários force.html. No entanto, antes de copiar irá verificar o nome de usuário nessa linha é o mesmo que o fornecido pelo parâmetro. Se for o mesmo, irá alterar a pontuação para nova pontuação antes de escrever no arquivo temporário. Por exemplo, se um perímetro fornecido para a função ou for falso, Andreas e 30, por exemplo, atualizar pontos de usuário cairão Andreas 30. A tabela abaixo mostra a diferença entre as pontuações originais do usuário ponto TXT e as novas pontuações do usuário ponto TMP. Depois de terminar de escrever para o usuário pontuação ponto TMP irá fechar ambos os arquivos e excluir usuários pontuações ponto TXT. Finalmente, vamos renomear as pontuações dos usuários Don TMP para usuários pontuações ponto TXT. 135. Parte 1 de geração e matemática: Chegamos agora à parte mais importante do programa, gerando as questões matemáticas, degenerando as questões. Vamos primeiro declarar três variáveis, duas listas em um dicionário. Vamos nomear a lista de dois, lista de operando na lista de operadores. Lista de operando deve armazenar cinco números com 0 é seus valores iniciais. Lista de operadores deve armazenar para strings com espaço como seus valores iniciais. O dicionário consiste em quatro pares com os inteiros um a quatro é as chaves do dicionário e adição, subtração, multiplicação e exponenciação adiciona os dados. Vamos chamar este operador dict. Primeiro, precisamos substituir os valores iniciais da nossa lista de operandos alguns números aleatórios gerados pela função INT aleatória. Rand INT função leva em dois parâmetros, início e fim e retorna um número inteiro aleatório n é tal como que menor ou igual a n ou menos igual a fim. Por exemplo, se Rand INT1 dynein é chamado, ele irá retornar aleatoriamente um inteiro dos números um para nove para atualizar nossa variável lista de operando com números aleatórios, podemos fazer isso um por um, uma vez que apenas lista operando tem cinco membros como este. Cada vez rand INT uma dynein é chamado, Ele vai retornando aleatoriamente um inteiro dos números um para nove. Mas esta não é a maneira mais inteligente de atualizar nossa lista de operandos. Combinando o quão pesado seria se a lista de operando tivesse 100 mil membros. Uma alternativa melhor é usar um loop for como este. Ótimo. Agora que temos os números para operar, precisamos gerar aleatoriamente para símbolos matemáticos para nossa pergunta. Para fazer, então vamos usar a função rand INT e o operador D ICT dicionário. Ran Di Andy irá gerar a chave do dicionário, que será então mapeada para o operador correto usando o dicionário do operador dict. Por exemplo, para atribuir um símbolo à lista de operadores 0, escrevemos. Portanto, você deve usar um loop for para concluir esta tarefa. No entanto, há um problema que torna esse exercício difícil o suficiente. Lembre-se que em Python, exponenciação ou dois asterisco significa expoente, por exemplo. O problema é, é quando temos dois operadores expoentes consecutivos em Python, então apenas dois expoente, três expoente dois. No primeiro caso, a resposta é dois para o poder de nove, que é 512. No segundo caso, a resposta é oito para o poder de dois, que é 64. Assim, quando apresentamos uma pergunta como expoente três, expoente para, o usuário terá a resposta errada se ele interpretou como este. Para evitar esse problema, vamos modificar nosso código para que não obtenhamos dois sinais consecutivos. Em outras palavras, esta lista de operadores está bem. Mas esta lista de operadores não é. Este parque é a coisa mais difícil entre todas as partes do projeto. Vamos tentar encontrar uma solução para evitar dois sinais consecutivos de expoentes. A partir do segundo item, IE índice igual a um e a lista de operadores, a linha se índice maior que 0 e índice de lista de operadores menos um, não igual a dois expoentes consecutivos. Sinais verifica se o item anterior na lista de operadores é o símbolo expoente. Se não for o operador declaração é igual ao operador. Dick rand IN T12 quatro será executado vez que o intervalo é dado para a função rand INT é um a quatro, os números 123 ou quatro serão gerados, daí os símbolos mais menos multiplicar nosso expoente será atribuído ao operador variável. No entanto, se o símbolo anterior é expoente, o operador de instrução else é igual ao operador dict rand IN T1. T3 será executado. Neste caso, o intervalo dado à função INT rand é de um a três. Daí o símbolo expoentes, que tem uma chave de quatro e operador Dick não será atribuído à variável operador. 136. Parte 1: Agora que temos nossos operadores e operandos, vamos tentar gerar a expressão matemática como uma string. Esta expressão usa os cinco números da nossa lista de operandos e o formato de símbolos médicos da nossa lista de operadores para formar uma pergunta, temos que declarar outra variável chamada string Pergunta e atribuir a expressão matemática para string perguntas. Exemplos de seqüência de perguntas incluem. Vamos usar um loop for para se concentrar nas substrings individuais da lista de operando e lista de operadores. Para obter a expressão matemática. Devemos agora ter a expressão matemática como uma string atribuída à string de perguntas variáveis. Para avaliar o resultado desta expressão, vamos usar uma função embutida brilhante que vem com Python. O mal. Evil interpreta uma string como um código e executa o código. Por exemplo, se escrevermos um e-mail mais dois mais quatro, obteremos o número sete. Assim, para avaliar o resultado de nossa expressão matemática, passamos em questão string para a função eval e atribuir o resultado a uma nova variável chamada resultado. Esta profundidade é bastante simples e pode ser completada em uma linha de código. Finalmente, vamos interagir com nosso usuário. Neste exercício, vamos fazer algumas coisas. Etapa um, exibindo a pergunta para o usuário. Etapa dois, solicitar uma resposta ao usuário. Etapa três: avaliar a resposta, exibir a mensagem apropriada e retornar a pontuação do usuário. Para o primeiro passo, precisamos usar uma função embutida para manipular strings, como mencionado anteriormente em Python, o símbolo de dois asterix representa expoente, ou seja, 32, asterix três é igual a 27. No entanto, para a maioria dos usuários, asterix não tem significado. Portanto, se mostrarmos uma pergunta como esta, o usuário provavelmente ficará confuso. Para evitar que isso irá substituir quaisquer dois símbolos abstratos em questão string com um símbolo quilate. Para fazer isso, vamos construir na função substituir usando-o é simples. Apenas para a direita. Agora você pode imprimir a expressão resultante para o usuário. Para o passo dois, podemos usar a função de entrada para aceitar a entrada do usuário. Para o passo três, devemos usar uma declaração if para avaliar a resposta e exibir a mensagem correta. Se o usuário obter o correto, vamos elogiar o usuário e retornar o valor um. Se o usuário errar, exibirá a resposta correta e retornará o valor para 0. E se a função de entrada retornar a entrada do usuário como uma string? Nesse caso, quando você compara a entrada do usuário com a resposta correta, você precisa fazer alguma digitação para alterar a entrada do usuário para um inteiro. Ao alterar a entrada do usuário para um inteiro. E você deve tentar usar uma instrução try except para verificar se o usuário digitou um número. Se o usuário digitou uma string em vez disso, o programa deve informar o usuário do erro e solicitar que o usuário digite em número. Então temos que usar um loop verdadeiro enquanto solicita ao usuário um número enquanto ele é barra, ela não consegue fazê-lo. Escrever enquanto verdadeiro é equivalente a escrever algo como um igual a um, uma vez que um é sempre igual a um, mãos sempre verdadeiras. O loop será executado indefinidamente. Vamos editar o código. O loop while True irá manter loop uma vez que a condição while é sempre verdadeira. Sair somente quando o bloco try é executado corretamente e atinge a instrução return. 137. Parte 2: Parabéns por completar a primeira parte e bem-vindos à segunda parte. A segunda parte vai ser uma brisa, pois vamos principalmente chamar as funções que definimos anteriormente. Primeiro, vamos colocar nosso programa principal em uma tentativa exceto declaração. Queremos lidar com quaisquer erros imprevistos. Um executando o programa principal começará escrevendo o código para o bloco try. Primeiro, precisamos importar o módulo de funções matemáticas. Em seguida, vamos solicitar ao usuário seu nome de usuário e atribuir o valor ao nome de usuário da variável. Passe esta variável como um parâmetro para a função e obtenha pontuação dos usuários. Obter pontuação de usuários irá retornar a pontuação do usuário ou retornar menos um se o usuário não for encontrado. Vamos converter esse resultado em um inteiro e atribuí-lo à pontuação variável do usuário. Agora precisamos definir o valor de outra variável, novo usuário. Se o usuário não for encontrado, novo usuário será igual a true, caso contrário, o novo usuário será igual a false. Se novo usuário for igual a true, precisamos alterá-lo de pontuação de menos um para 0. A próxima parte do nosso programa envolve um loop while. Especificamente, nosso programa solicitará entrada de nosso usuário para determinar se ele deve encerrar o programa ou fazer outra coisa. Passo um, você precisa declarar outra variável qual escolha do usuário, e dar-lhe um valor inicial de 0. Passo dois. Em seguida, ao usar um loop while, compare a escolha do usuário com uma string de sua escolha, digamos menos um. Se a escolha do usuário não é o mesmo que minus1 chamado o gerador de função. Para gerar uma nova pergunta. Passo três, pergunta de janeiro retornará uma pontuação que o usuário Deus para essa pergunta, use este resultado para atualizar a pontuação do usuário variável. Passo quatro, finalmente, a fim de evitar um loop infinito, precisamos usar a função de entrada novamente com o loop while para aceitar a entrada do usuário e usá-lo para atualizar o valor da escolha do usuário. Finalmente, depois que o loop while termina, o próximo passo é atualizar o arquivo TXT ponto pontuação usuários. Para fazer isso, simplesmente chamamos a função de pontos de usuário de atualização. Isso é tudo pelo bloqueio de tentativa. Agora, o bloco exceto, simplesmente informamos ao usuário que ocorreu um erro e o programa será encerrado. Vai terminar esta umidade, você terá um programa completo. Vamos executar o programa. O programa pedirá um nome de usuário. Vamos datilografar o meu nome. Em seguida, o programa gera uma pergunta. A expressão matemática que eu tenho que calcular, eu não vou calcular os números agora, então eu vou colocar em um número aleatório. Claro que a minha resposta está errada e há uma resposta correcta. Depois disso, o programa me perguntará se eu quero continuar ou digite minus1 para encerrar o programa. Farei outro exemplo. Funciona muito bem. Animado. Espero que estejas tão entusiasmado como eu. Chegamos ao fim de seu Projeto Marco e espero que você tenha codificado com sucesso seu primeiro programa. Se você tiver problemas para completar qualquer exercício, por favor me avise. Mas ainda não terminamos. Eu tenho um exercício adicional para você se desafiar. Às vezes, a pergunta gerada pode resultar em uma resposta muito grande ou muito pequena. É muito inconveniente para os usuários calcular e chave em um número muito grande ou muito pequeno. Por isso, queremos evitar respostas muito grandes ou pequenas. Você pode modificar o programa para evitar perguntas que resultam em respostas maiores do que 10 mil e menores que 10 mil negativos. Tente modificar o código e verifique o código de seus arquivos de recursos. Obrigado por assistir.