Strings

Teoria Completa

Usando textos em Python

Em Python, tudo que a gente colocar entre aspas é considerado texto. No entanto, o nome verdadeiro dos dados de tipo texto é string. E esse tipo tem várias características importantes que a gente tem que dominar pra mandar bem na prova, beleza? Vamos Falar sobre algumas delas aqui.

Primeiro, vamos fazer uma variável do tipo string pra gente ficar testando as paradas que a gente vai aprender agora:

É assim que a gente faz pra criar uma variável do tipo string, usando aspas. Mas é legal você saber que não precisa ser aspas duplas (“). Também pode ser feito com a simples (‘). Olha:

Também funciona, beleza? Você só precisa tomar cuidado na hora de fechar as aspas, porque você tem que fechar com o mesmo tipo de aspas que você abriu. Olha esse exemplo:

Se você tentar executar esse programa, vai ver que vai dar erro. Isso é porque a gente fechou a string com aspas duplas (“), apesar de ter começado a string com uma aspa simples (‘). Isso é um problemão, beleza?

Usando caracteres especiais nas strings

Mas, calma aí… Nem todos os caracteres a gente consegue escrever! Como a gente pode salvar uma quebra de linha dentro da string?!

Obs: quebra de linha é pular linha.

Pra solucionar esse problema, a gente usa a notação de caracteres especiais. Essa notação sempre começa com contra barra (\). Olha o exemplo:

Tá vendo aquele “\n” dentro da nossa string?! Ele tá dizendo que a gente quer pular uma linha naquele ponto do texto (essa barra ao contrário fica do lado esquerdo da letra Z no teclado, confere aí).

Olha o resultado desse código:

Repara que a gente pulou linha ali no meio da string, justamente onde a gente escreveu \n na string, viu?

Usamos essa barrinha ao contrário (contra-barra) pra expressar dentro da string todos os caracteres que não dá pra digitar normalmente. O primeiro que a gente aprendeu foi esse \n (n de new line), mas tem outros.

Por exemplo, se a gente usa aspas pra iniciar e finalizar a string, como a gente poderia escrever uma aspa dentro da nossa string?

A resposta é a gente usar a contra barra também! Se liga em como dá pra fazer:

Olha, quando a gente escrever \’ na string, ele não fecha a string. Aí a gente consegue salvar a aspa dentro da string.

Esse truque também serve pra aspa dupla, usando \”. Além desse, você também pode querer escrever o próprio caractere \ na sua string, por algum motivo. Tipo assim:

Se a gente colocar só essa barra na string, vai dar um erro. Pra conseguir salvar essa barrinha na string, precisamos usar duas barrinhas dessa! Assim, ó:

Agora sim! Usamos duas \\ pra salvar uma \ na string.

String de várias linhas

Ok, mas caso você tenha uma string de várias linhas, tipo um poema ou sei lá, a gente teria que usar um montão de \n, porque a gente não pode pular linha na string. Por que será que ninguém inventou uma forma mais fácil???!

Na verdade, inventaram! Pra gente fazer uma string com várias linhas, a gente abre e fecha ela com três aspas simples (‘’’) ou três aspas duplas (“””). Olha esse exemplo aqui:

Olha, que maravilha. Agora vai funcionar sem a gente ter que escrever manualmente um monte de ‘\n’!

Olha lá, conseguimos fazer uma string com várias linhas!

Operações com strings

Mas e se a gente tiver duas strings e quiser unir elas?!

Tenho que te falar que essa é a coisa mais útil de strings, e é chamado de concatenação. Concatenar significa unir duas strings, e a gente faz isso usando o operador de soma (+). Olha:

Repara que a gente concatenou (vulgo “uniu”) a string da variavel_doida_1 com uma string literal “\n” (literal é quando não tá em nenhuma variável) e depois uniu com a string guardada na outra variável.

Além do operador de soma, também é possível usar o operador de multiplicação. Olha:

O resultado disso é:

Repara que o resultado foi triplicar o texto. Mas esses são os únicos operadores que funcionam com string, beleza? Se você tentar usar subtração (-) ou divisão (/) com string, vai dar erro, ok?

Além desses matemáticos, a gente também pode usar o operador in. Esse operar checa se existe uma letra ou substring dentro de uma string. Se existe, retorna True. Se não existir, retorna False.

Mas a gente precisa tomar cuidado com esse operador, pois ele não é comutativo. Isso significa que (x in y) é diferente de (y in x), beleza?! O macete pra usar esse operador você tem que pensar na tradução: “existe x dentro de y?”

Por último, também pode ser útil a gente saber o tamanho de uma determinada string. E essa é exatamente a utilidade da função len(). Olha ela em ação:

AGORA BORA FAZER EXERCÍCIOOOOOO!

Expandir

Exercício Resolvido #1

PUC-Rio, Lista 4 - Adaptado

Escreva um programa que receba quatro inteiros representando dois horários (horas e minutos de cada um dos horários) e retorne uma string no formato '...h ... m' com a diferença em horas e minutos entre os dois horários. Considere que o segundo horário será sempre posterior ao primeiro.

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

Fala aí! Pra começar esse exercício, precisamos pedir pro usuário digitar os dois horários. Vamos fazer isso usando a função input(). Mas, horas e minutos são dados numéricos inteiros. Se a gente espera números inteiros do usuário, precisamos converter o resultado da função input(). Isso porque a função input() sempre retorna string.

Pronto! Agora calcular a diferença entre os dois horários, considerando que o segundo horário é posterior (isso tá escrito no enunciado, jae?).

Passo 2

Pra gente conseguir calcular a diferença, precisamos passar tudo pra minutos! Então, vamos criar variáveis chamadas “minutos_totais”.

Beleza! Agora que a gente já tem os minutos totais dos dois horários, a gente pode subtrair um do outro pra calcular a diferença.

Com a diferença total em minutos, a gente pode dividir em minutos e horas usando os operadores matemáticos de divisão inteira e resto.

Beleza, agora a gente já tem a diferença entre os horários em horas e minutos. Precisamos só exibir pro usuário!

Passo 3

Cara, pra gente exibir pro usuário, vamos recorrer a nossa queridíssima função print(). Porém, o enunciado especificou o formato de saída. Pra gente deixar a saída no formato que o enunciado pediu, vamos converter as variáveis numéricas pra string usando a função str(). Isso porque, no formato de string, a gente pode usar concatenação (unir string usando o operador +). Com concatenação, a gente pode fazer a formatação de boa! Olha:

A gente converteu a diferença das horas pra string e unimos com um ‘h’. Depois unimos tudo isso com a diferença dos minutos em string, e depois unimos de novo com o ‘m’. Pronto!! Nosso programinha tá funcionando!

Te vejo no próximo exercício, hein! Não me deixa esperando...

Resposta

Exercício Resolvido #2

Elaboração própria

Analise a saída do seguinte código, quando a entrada é 2: