Thumbnail for Algoritmos e Programação de Computadores I - Tipos de dados (LIBRAS) by UNIVESP

Algoritmos e Programação de Computadores I - Tipos de dados (LIBRAS)

UNIVESP

16m 47s2,055 words~11 min read
YouTube auto captions
Transcript source

YouTube auto captions

This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.

Pull quotes
[0:11]Olá pessoal, bem-vindos a nossa disciplina, é, algoritmos e programação de computadores.
[0:11]Essa é a nossa vídeo aula de número nove, eh, a gente vai dar continuidade então alguns conceitos da linguagem Python.
[0:11]E a gente viu até as últimas aulas alguns tipos de dados, eh, que a linguagem oferece, eh, como o tipo int, o float, listas, eh, strings e tuplas e a gente aprendeu a usar, eh, esses, esses tipos.
[0:11]E aí na aula de hoje, a gente vai entender um pouquinho melhor o que são esses tipos de dados, né?
Use this transcript
Related transcript hubs

[0:11]Olá pessoal, bem-vindos a nossa disciplina, é, algoritmos e programação de computadores. Essa é a nossa vídeo aula de número nove, eh, a gente vai dar continuidade então alguns conceitos da linguagem Python. E a gente viu até as últimas aulas alguns tipos de dados, eh, que a linguagem oferece, eh, como o tipo int, o float, listas, eh, strings e tuplas e a gente aprendeu a usar, eh, esses, esses tipos. E aí na aula de hoje, a gente vai entender um pouquinho melhor o que são esses tipos de dados, né? O que que, o que que quer dizer um tipo de dado, ah, em particular pra linguagem Python? Então, vamos lá. Bom, o, até o momento a gente viu, né, esses tipos que são suportados pela linguagem Python. Então, a gente viu lá os int, o int, o float, o bool, né, que é o booleano, verdadeiro ou falso, ah, string, listas e tuplas. E e aí a gente tem que entender que cada dado é armazenado na memória na forma de objetos. E o que que é um objeto? Um objeto, pessoal, é como se fosse uma caixinha que é armazenada lá na memória do computador, que contém duas informações importantes. A primeira é o tipo do, do, do objeto e a segunda é o próprio valor. Então, olha aqui alguns exemplos, eh, eu tenho o, o tipo, eu tenho aqui o tipo int, eh, e aqui eu tenho o valor três, tá? Então, eu quero armazenar o número três na memória, esse número três vai ser encapsulado na forma de um objeto e esse objeto, como a gente viu, ele tem duas informações: o tipo e o valor, tá? O número 3.0, né, ele vai ser também armazenado, só que agora do, como um tipo float, tá?

[2:40]Eh, aqui eu tenho uma string, Hello World, do tipo, então, string, e aqui uma lista, né? O valor aqui embaixo e aqui eu tenho o tipo, eh, list, tá bom? Bom, o tipo de um dado, o tipo de um objeto, eh, eh, vai indicar pra gente quais valores que esse objeto pode armazenar e quais operações que podem ser executadas. Então, eh, algumas operações, eh, não podem ser executadas com determinados tipos. Então, a gente tem que saber, eh, eh, qual que é o tipo e saber quais as operações que são suportadas por aquele tipo, tá? Eh, pra gente saber qual que é o tipo de um valor, né, de uma variável, eh, que tá sendo, que tá armazenada na memória, a gente tem a função type que verifica então o tipo de um objeto. Então, se a gente coloca, por exemplo, type entre parênteses três, eh, essa função vai nos retornar aqui embaixo a informação do tipo daquele objeto, que é, eh, do tipo int. Se a gente coloca type, eh, e aí ele coloca uma string, Olá, ele vai nos retornar também esse tipo STR, que é uma string, e a mesma coisa aqui para listas, tá? É importante a gente lembrar, pessoal, que variáveis, eh, da linguagem Python não possuem um tipo. É, na verdade, elas simplesmente vão apontar temporariamente para um objeto na memória. Isso pode causar uma certa estranheza, eh, pra algumas pessoas que já, eh, sabem, né, já programam em algumas outras linguagens de programação, por exemplo, a linguagem C, onde você define uma variável e para você, eh, definir, declarar aquela variável, é necessário você definir também o tipo daquela variável, tá? Já na linguagem Python, você não precisa fazer isso, você simplesmente cria um nome e esse nome vai apontar para um objeto naquele momento, né? E aí temporariamente aquela variável, eh, se você coloca type e entre parênteses aquela variável, você vai tá na verdade acessando o tipo do objeto para o qual a variável aponta. Tudo bem? Bom, a gente tem também alguns, eh, valores para os tipos, eh, da linguagem Python. Então, o, dado um tipo do objeto, existe um conjunto de valores que esse objeto pode armazenar. Então, por exemplo, no caso dos ints, que são os inteiros, eh, você pode ter valores bem altos da linguagem Python. Então, na verdade, você pode até de certa maneira dizer que o, o valor, os valores de int em Python pode ser, eh, extremamente altos, né? Eh, você só não pode falar que é infinito porque depende do, da memória do teu computador pra armazenar uma quantidade muito grande de números, né? Mas, eh, olha só o que que eu faço, por exemplo, aqui, né? Eu tô fazendo dois, eh, elevado a 1024, que é um valor super alto e o interpre, o interpretador me retorna aqui um número extremamente alto, né? Lá pra você, então, vamos ver esse exemplo que está aqui, ó, na nossa, na nossa tela. Então, olha só, se eu fizer, por exemplo, 2, eh, elevado a 1024, ele vai me retornar, ó, um número aqui que é muito alto, tá? Mas existe, aqui, pessoal, um detalhe importante, que no caso de floats, isso já não acontece. Olha o que que vai ocorrer, se eu faço 2.0 elevado a mesma potência, né, a 1024. Então, eh, ele até fica ali perdido, né, ele não consegue, ah, ele até demora, né, pra retornar um resultado lá para pra você, né? O o que acontece aqui é que a linguagem Python, no caso de floats, ah, vai ter um limite, tá? Então, o, existe um limite de até 64 bits, eh, atualmente, tá? Pra poder armazenar valores do tipo float, já na linguagem, já no tipo int, eh, você não tem mais esse, essa limitação, tá? Então, no caso, se eu faço isso daqui, ele vai te dar uma, um erro, né? Ele vai, ah, demorar ali, mas aí chega um momento que ele vai dar, vai fazer, vai dar uma mensagem de erro pra você, tá bom? Eh, no caso do, dos floats, também, os valores podem ser, também são aproximados. Se eu faço, por exemplo, dois elevado a 100, ele vai te dar um resultado, né, que é um número bem alto também. E se eu fizer, por exemplo, 2.0, que é um float e elevado também a 100, ele vai me dar esse, esse resultado com uma, com uma anotação diferente, né, que é esse e mais 30. Isso daí significa anotação científica. O que que é essa anotação científica? Ele vai fazer 1,26 e, eh, 26, 76, etc, né? vezes 10 elevado a 30, tá? Então, esse 10 elevado a 30 é o, é a anotação científica e isso daqui é representado por meio desse, eh, aqui que tá aqui no final lá do, do número, tá? Aproximação também em floats acontece também pra, pra baixo, né, quando você, olha só o que que acontece quando eu faço 2.0 elevado a menos 1075. Isso daqui vai ser um número extremamente baixo, quer dizer 0,0000 alguma coisa, né? E ele vai arredondar pra zero, né, que nem tá aqui. Tá bom?

[9:39]Bom, então pra gente criar um objeto, eh, int com valor três, a gente pode fazer algo como isso daqui, né? Então, a gente cria uma variável x e faz com que ela receba um valor, o valor três, né? Então, você vai estar criando um objeto, eh, int, ah, com um valor três e vai ter um nome, eh, apontando pra esse objeto. Você pode também criar esse mesmo objeto dessa forma que tá aqui embaixo. Isso daqui, pessoal, é, é o uso do, do construtor, então, cada tipo tem um construtor. E é uma maneira mais explícita, né, de você criar um objeto daquele tipo, né? Então, tanto o de cima como o de baixo, vai criar o mesmo objeto int com o mesmo valor três. Só que, no caso de baixo, você tá, eh, implementando, né, de uma maneira mais explícita essa criação desse objeto. A gente usa esses construtores para outras coisas normalmente, tá? Então, para conversão, por exemplo, é, de um tipo para outro, é onde tá a utilidade, né, de você usar esses construtores aí de uma maneira explícita. A gente vai ver um exemplo disso, eh, mais pra frente nessa aula. E, no caso dos outros tipos, a gente tem também os seus respec respectivos construtores. Então, a gente tem lá um construtor pra float, pra string e pra lista. Quando a gente cria um objeto sem, nem um valor ali entre parênteses, eh, o, a linguagem vai utilizar valores padrão. Que, no caso de int é o valor zero, float é 0.0, pra string é uma, é uma string vazia. E, no caso de uma lista, também é uma lista vazia, tá? Então, e aí aqui a gente tem alguns exemplos de uso desses construtores usando valores padrão. Bom, vamos ver um pouquinho sobre conversão, né? A gente tem dois tipos de conversão: tem a conversão implícita e a conversão explícita. A conversão, na conversão implícita, é quando você usa numa mesma expressão, eh, operandos de diferentes tipos. Então, por exemplo, se você tem lá um tipo booleano e um tipo inteiro, e você tenta fazer uma soma, eh, o que que vai acontecer? Existe essa, esse gráfico que tá aqui, que nos indica a o que que tá dentro do que, né? Então, aqui o booleano, ele tá dentro do inteiro, tá, que, por sua vez, está dentro do float. Então, é como se o float englobasse o inteiro e o booleano, e o int englobasse o booleano. Então, se você faz true mais cinco, ele vai fazer uma conversão implícita do para o tipo que tá mais, eh, externo, que, no caso, seria pra inteiro. Então, ele vai converter o true para o valor um, tá, nesse caso aqui, e vai somar com o cinco, que vai te dar seis. Nesse outro exemplo, eh, eu tenho um inteiro somado com um float, então ele vai converter para o tipo mais externo, que é o float. Então, ele vai converter o inteiro que tá aqui pra um float, que vai dar 3.0, e aí ele vai somar com o 0.35, que vai te dar o 3.35. Tudo bem? Eh, mas nem sempre você vai conseguir fazer essa conversão implícita. Então, em alguns momentos, vai ser necessário você, eh, dizer, né, informar como que você quer fazer essa conversão. E aí é onde entram os construtores que eu falei anteriormente. Então, quando você quer, por exemplo, fazer uma conversão de um inteiro para float, eh, quer dizer, de um float para inteiro, né? Ah, eu, a gente usa o construtor do inteiro. Então, eu quero converter, por exemplo, o float 3.4 para um int, você coloca o 3.4 lá no construtor do int, ele vai te retornar o correspondente inteiro. Você pode também fazer, né, a conversão ao contrário, né, de um inteiro para float, eh, explicitamente, como tá aqui. Você pode fazer a conversão também para strings ou, ou de string para um numérico. Então, aqui seria de uma string para um numérico e alguns momentos podem ocorrer erros, tá? Então, por exemplo, se eu tentar fazer a conversão da string 1.5 para um inteiro, ele vai dar um erro. Ele não vai conseguir fazer, não vai, ele não vai conseguir raciocinar no sentido de você converter primeiro para float, depois converter para inteiro, tá? Ele não consegue fazer isso. Então, eh, ele vai dar uma mensagem de erro nesse caso. E o booleano é interessante que, quando você coloca bool e aqui entre parênteses, tudo que for diferente de zero vai ser verdadeiro e tudo que for zero, né, vai ser falso. Então, se eu fizer, por exemplo, bool de um, isso aqui vai te retornar, eh, true. Se você fizer, por exemplo, bool de menos um, isso aqui também vai te retornar true. Tá? Então, tudo o que for diferente de zero, o um, menos um, positivo ou negativo, tá? Eh, ele vai converter pra true e tudo que for zero é falso. Bom, então é isso, essa foi a nossa, é a nossa vídeo aula sobre tipos de dados. Eh, espero que vocês possam ter entendido, né, um pouco mais sobre o funcionamento dos tipos de dados na linguagem Python, e a gente se vê na nossa próxima vídeo aula. Então, obrigado.

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript