[0:11]Olá pessoal, bem-vindos novamente à nossa disciplina de Algoritmos e Programação de Computadores I para a UNIVESP. Essa é a nossa vídeo aula de número 7, onde nós vamos dar continuidade ao conceito de variáveis. É, na aula passada a gente entendeu, né, esse conceito principal aí de variáveis, como utilizar. E na aula de hoje, é, a continuação se refere a strings. Que não deixa de ser um tipo de variável, só que agora é um tipo de variável que pode armazenar ou pode, é, representar, é, uma sequência de caracteres. Então vamos entender um pouquinho aí como que funciona. Então, além das variáveis do tipo numérico que a gente já viu, que é o int, o float, e a gente até usou já um tipo lógico, que é o bool, tá, que é um tipo que, é, possui apenas valores, é, true ou false. Né? É, o Python permite também definir variáveis de tipos mais complexos. Entre eles está a o tipo string, que é representado então por str, como está aqui. Então o tipo str é usado para representar e manipular textos ou uma sequência de caracteres, incluindo espaço em branco, pontuação e símbolos diferentes também. Uma string é criada como uma sequência de caracteres envolvida por aspas simples ou duplas.
[2:13]Então, supondo que eu tenha uma string A, e eu vou, é, dar, então, um, eu vou atribuir, né, um valor a essa string, é, que é algoritmos e programação. Então, eu envolvo a minha string entre aspas, nesse caso eu estou envolvendo com aspas simples, e depois eu consigo recuperar aquela variável, e o interpretador vai me retornar exatamente aquele texto que eu, é, inicializei a variável. Ah, então, vamos ver aqui, é, mais alguns outros exemplos, né, antes de a gente partir para os operadores. Então, olha só, eu posso definir aqui, é, um, uma variável nome e vou colocar, vou atribuir, né, um valor a essa variável, podendo ser, por exemplo, ah, Marcelo Manzato, tá? Então, ah, eu atribuí, né, esse objeto string a minha, a minha variável nome, consigo recuperar o conteúdo dessa variável. O meu interpretador me retorna, né, aquele, aquele texto. Ah, bom, que que eu posso fazer? Eu posso usar alguns operadores, eh, com essas strings. Então, a gente viu aqui o operador de atribuição, tá? Eu estou atribuindo a minha string ABC, a minha variável S. Consigo também verificar se o conteúdo de uma string é igual a uma string que eu passo aqui deste lado. Então, eu posso, por exemplo, vamos vir aqui no nosso exemplo, eu verificar se nome é igual a Marcelo Manzato. Tá? Então, ele vai me retornar verdadeiro, neste caso. Se eu fizesse, por exemplo, nome é igual a Marcelo, ele vai me retornar falso, porque é diferente, né? Então, eu posso usar também o próprio operador de diferente, tá? Isso aqui é diferente de ABC. Ele vai me retornar verdadeiro.
[4:43]Eh, eu posso também, pessoal, fazer, usar expressões, outras expressões relacionais, como, por exemplo, o, o menor ou o maior. Então, eu estou definindo aqui uma outra variável T, que recebe, por exemplo, d e f, e eu vou verificar se s é menor do que t. Nesse caso, pessoal, ele vai simplesmente verificar se s está numa ordem alfabética que antecede a variável T. Então, por exemplo, no nosso programa aqui, se eu tenho um outro nome 2 igual a João, por exemplo, João da Silva, e eu faço nome é menor do que nome 2, isso aqui vai me retornar falso, porque nome 2 começa com J, e nome começa com M, então, o nome 2, ele precede o nome. Tá? Bom, posso também fazer concatenação de strings. É, então, sinal de mais quando usado com variáveis, é, do tipo string, é, eu vou concatenar elas. Então, no caso aqui, se eu faço nome mais nome 2, isso me retorna Marcelo Manzato, João da Silva. Então, ele pega o segundo, a segunda string e concatena no final da primeira.
[6:30]É, se eu fizer, aí, alguns operadores, pessoal, eu não consigo utilizar com strings. Então, por exemplo, s vezes t, quer dizer, o sinal, o operador de multiplicação, quando eu tenho dois operandos do tipo string, eu não consigo usar. Mas, eu consigo usar quando um dos operadores é um inteiro, tá? Tem que ser inteiro.
[7:00]É, nesse caso, ele vai simplesmente multiplicar aquela string pela quantidade de vezes que você está, é, setando, né, lá pelo, pelo número que você colocou lá como um dos operandos. Então, se eu tenho, eh, o nome que é Marcelo Manzato e eu fizer nome vezes, eh, cinco, ele vai, ah, concatenar cinco vezes essa string e vai me retornar. Tá? Bom, posso também, é, olha só o que que eu estou fazendo, né? Eu estou verificando se o caractere B está contido na string S.
[7:52]A minha string, eh, essa, eh, é essa daqui, né, deste lado. E eu estou verificando se B está contido naquela string. Ele vai me retornar verdadeiro porque o, o ch, a variável ch é a, é o valor B que está contido aqui nessa posição lá da minha string s. E se o ch é uma, um str de B, na verdade ele é, né, porque o, isso daqui é como se você tivesse, eh, inicializado ou criado uma string com um único caractere que é o B.
[8:35]E aí você verifica se ch é um str de B, ele é, de fato. Tá bom?
[8:45]Bom, é, alguns outros operadores, pessoal, não podem ser utilizados com strings. É o caso, por exemplo, da subtração, da divisão, do quociente, do resto da divisão e da potência. Então, esses operadores, eh, você não consegue utilizar com strings. É, aí a gente tem alguns outros operadores que são importantes. Como o, a função len, que retorna o tamanho da string. Então, se eu tenho aqui, eu tenho o nome é Marcelo Manzato, eu retorno len de nome, isso daqui me retorna 15, que é a quantidade de caracteres que eu tenho nessa string nome. E outra coisa também importante é o operador de indexação, que a gente usa o, os colchetes. É, dentro desses colchetes a gente coloca os índices para poder, é, acessar caracteres específicos da string que estão na posição que você determina pelos índices. Vamos ver aqui alguns exemplos. Então, supondo que eu tenho, é, a minha string a b c d, né? O len de S é 4, porque eu tenho 4 caracteres aqui. Olha só, o operador aqui de, eh, de indexação. Se eu faço S de 0, quer dizer que esse 0 aqui é um número que referencia a posição da string que eu quero acessar.
[10:38]Então, se eu tenho o A, B, C e D, eu tenho as posições sempre inicializando, iniciando com 0, tá? Isso é importante. Eu tenho a posição 0, posição 1, posição 2 e a posição 3. Então, S de 0, eu estou acessando exatamente esse caractere A que está aqui. O S de 3 vai me retornar o, o caractere D que está lá no índice 3. Que é exatamente esse. Bom, S de len de S, pessoal, o len de S a gente já viu que vale 4. E se eu tentar fazer S de 4, isso aqui vai me retornar um erro, porque a minha string S, ela vai apenas até 3, né? Vai de 0 a 3.
[11:36]Então, o S de 4 estaria aqui nessa próxima posição, só que eu não tenho ela. Então, por isso que vai me dar uma mensagem de erro.
[11:47]É, eu posso, apesar disso, né, é usar, é índices negativos para poder acessar o final, né, ou o lado direito da string. Então, olha só, se eu tenho a minha string A, B, C e D, os índices normais seriam 0, 1, 2 e 3. Agora, eh, índices negativos, eu vou pegar o lado direito para a esquerda. Então, eu teria o -1, o -2, o -3 e o -4. Então, se eu faço o S de -1, eu estou acessando exatamente essa posição que está aqui, que é o caractere D. O S de -2 é essa posição que está aqui, que é o caractere C. Reparem também que se eu fizer, então, o S de -1, é igual, igual a S de 3, vocês podem consultar isso, né, no interpretador. Isso daqui vai te dar, eh, verdadeiro. Tá bom? O S de -5, pessoal, eh, ele vai dar um erro pelo mesmo motivo, porque você, o -5 estaria aqui nessa posição, e como não tem, eh, ele vai te dar uma mensagem de erro, não vai conseguir acessar. Beleza?
[13:24]A gente pode também acessar substrings. Quer dizer, parte de uma string, eh, usando também essas, eh, essa indexação. E isso a gente faz usando o dois pontos. Então, aqui eu tenho a minha, a minha posição, posição inicial, e aqui eu tenho a minha posição final. Então, se eu tenho a minha string A, B, C e D, e eu tenho os índices 0, 1, 2 e 3, se eu quero acessar de 0 a 2, eu vou pegar aqui de 0 a 2.
[14:15]Lembrando que esse último índice aqui, eh, ele não é inclusive, tá? Então, na verdade, você para no 2, só que você não vai considerar aquele último caractere. Então, ele vai te retornar AB.
[14:32]Olha só esse outro exemplo aqui que ele é um pouquinho mais difícil. Eu tenho A, B, C e D, tenho os meus índices negativos que vão de -1, -2, -3 e -4. Aí eu tenho que a minha posição inicial é o -4, que é o caractere A, e a minha posição final é o -2, que é o caractere C.
[15:02]Excluindo o C, eu tenho A, B, que é o que está sendo retornado aqui. Quando a gente não considera, pessoal, o índice aqui no, no, nos dois pontos, ele pega do início, tá? E se for no final, quer dizer, eu não considero a posição final, ele vai até o fim. Então, olha só, se eu vou fazer, é, do início até o 3, eu vou pegar, então, que nem está aqui, ó, do início até o 3, excluindo, né, esse 3, eu vou ter o meu A, B, C. Que é esse cara que está aqui.
[15:47]E nesse caso, se eu pego o S de -1, dois pontos, até o fim, essa daqui é a minha posição inicial que é o próprio D, né, que está aqui.
[16:04]E e até o final, quer dizer, até ele mesmo, então, ele vai me retornar D.
[16:16]Tá certo? Muito bem. Então é isso. É, aí a gente tem também alguns métodos úteis para manipular strings. Então, a gente vai ver melhor isso aqui com calma, né, mas eu vou só mostrar para vocês alguns exemplos. Então, vamos pegar aqui, por exemplo, o, o, a função upper, por exemplo, né, que ela substitui todos os caracteres de S em maiúscula. Então, eu posso vim aqui, eu tenho o meu nome, se eu faço nome ponto upper entre parênteses, isso aqui vai me retornar todos os caracteres em letra maiúscula. Se eu quero, por exemplo, eh, capitalizar, que é essa função que está aqui, ó, substitui o primeiro caractere de S em maiúscula.
[17:18]Então, o nome, eh, na verdade, ele não vai funcionar, mas se eu posso fazer assim, ó, nome recebe o nome ponto lower. Quer dizer, eu vou transformar todo mundo em letra minúscula.
[17:36]E se eu fizer nome ponto capitalize, ele vai, eh, transformar a primeira letra da string em maiúscula. Tá? Entre outras funções, né, pessoal, que vocês podem testar, eh, aí no interpretador de vocês. É, sugiro, né, que vocês façam isso para ver o que que acontece em cada função. E mais informações sobre essas funções vocês podem também encontrar na referência, né, no livro, eh, que é usado como livro texto, né, da, da disciplina. E, basicamente é isso sobre strings. É, a gente viu, então, o como usa essa, os, as informações, os conceitos, né, mais básicos de strings, eh, expressões lógicas, aritméticas e assim por diante.
[18:54]Tá? Então, obrigado pela atenção de vocês e a gente se encontra, eh, numa próxima oportunidade.



