| | | | |

2.6 Sequência de Caracteres

Compre o e-book deste material aqui!

Dados em formato texto também são comumente manipulados em programação. Um texto é interpretado como uma cadeia/sequência de caracteres2020endnote: 20Caractere é qualquer letra, símbolo, sinal ou dígito representado em forma escrita., chamada de string. Para entrarmos com uma letra, palavra ou texto (uma string), precisamos usar aspas (simples ' ' ou duplas " "). Por exemplo,

1s = 'Olá, mundo!'
2print(s)
Olá, mundo!
1type(s)
<class ’str’>

Uma string é um conjunto indexado e imutável de caracteres. O primeiro caractere está na posição 0, o segundo na posição 1 e assim por diante. Por exemplo,

𝙾0𝚕1á2,3_4𝚖5𝚞6𝚗7𝚍8𝚘9!10 (2.43)

Observamos que o espaço também é um caractere. O tamanho da string (número total de caracteres) pode ser obtido com o método len, por exemplo

1len(s)
11

A referência a um caractere de uma dada string é feito usando-se seu identificador seguido do índice de sua posição entre colchetes. Por exemplo,

1s[6]
’u’

Podemos, ainda, acessar fatias2121endnote: 21Em inglês, slice. da sequência usando o operador :2222endnote: 22x[start:stop:step], padrão start=0, stop=len(x), step=1., por exemplo,

1s[:3]
’Olá’

ou seja, os caracteres da posição 0 à posição 2 (um antes do índice 3). Também podemos tomar uma fatia entre posições, por exemplo,

1s[5:10]
’mundo’

o que nos fornece a fatia de caracteres que inicia na posição 5 e termina na posição 9. Ou ainda,

1s[6:]
’undo!’

Também, pode-se controlar o passo do fatiamento, por exemplo

1'laura'[::2]
’lua’

Em Python, exitem diversas formas de escrever strings:

  • aspas simples

    1print('permitem aspas "duplas" embutidas')
    permitem aspas "duplas" embutidas
    
  • aspas duplas

    1print("permitem aspas 'simples' embutidas")
    permitem aspas ’simples’ embutidas
    
  • aspas triplas

    1print('''
    2permitem
    3"diversas"
    4linhas
    5''')
    permitem
    "diversas"
    linhas
    
    1print("""
    2permitem
    3'diversas'
    4linhas
    5""")
    permitem
    ’diversas’
    linhas
    

Em Python, strings usam o padrão Unicode, que permite manipular textos de forma muito próxima da linguagem natural. Alguns caracteres especiais úteis são:

  • '\n' nova linha

    1print('Uma nova\nlinha')
    Uma nova
    linha
    
  • '\t' tabulação

    1print('Uma nova\n\t linha com tabulação')
    Uma nova
      linha com tabulação
    
Observação 2.6.1.

(Raw string.) Caso seja necessário imprimir os caracteres unicode especiais '\\n', '\\t', entre outros, pode-se usar raw strings. Por exemplo,

1print(r'Aqui, o \n não quebra a linha!')
Aqui, o \n não quebra a linha!

2.6.1 Formatação de strings

Em Python, strings formatadas são identificadas com a letra f no início. Elas aceitam o uso de identificadores com valores predefinidos. Os identificadores são embutidos com o uso de chaves {} (placeholder). Por exemplo,

1nome = 'Fulane'
2print(f'Olá, {nome}!')
’Olá, Fulane!’

Há várias especificações de formatação disponíveis2323endnote: 23Consulte na web por Python Docs:String: Format Specification Mini-Language para uma lista completa.:

  • 'd' número inteiro

    1print(f'10/3 é igual a {10//3:d} e resta {10%3:d}.')
    10/3 é igual a 3 e resta 1.
    
  • 'f' número decimal

    1print(f'13/7 é aproximadamente {13/7:.3f}')
    13/7 é aproximadamente 1.857
    
  • 'e' notação científica normalizada

    1print(f'103/7 é aproximadamente {103/7:.3e}')
    103/7 é aproximadamente 1.471e+01
    

2.6.2 Operações com strings

Em Python, há uma grande variedade disponível de métodos para a manipulação de strings2424endnote: 24Consulte na web por The Python Standard Library: String Methods.. Alguns operadores básicos são:

  • + concatenação

    1s = 'Olá, mundo!'
    2s[:5] + 'Fulane!'
    ’Olá, Fulane!’
    
  • * repetição

    1'ha'*3
    ’hahaha’
    
  • in pertence

    1'mar' in 'amarelo'
    True
    

2.6.3 Entrada de Dados

O método input pode ser usado para a entrada de string via teclado. Por exemplo,

1s = input('Digite seu nome: ')
2print(f'Olá, {s}.')
Digite seu nome: Fulane
Olá, Fulane.

A instrução da linha 1 pede para que a variável s receba a string a ser digitada por usuária(o). A string entre parênteses é informativa, o comando input, imprime esta mensagem e fica aguardado que uma nova string seja digitada. Quando o usuário pressiona <ENTER>, a string digitada é alocada na variável s.

Conversão de Classes de Dados

A conversão entre classes de dados é possível e é feita por métodos próprios de cada classe. Por exemplo,

1# int -> str
2str(101)
’101’
1# str -> int
2int('23')
23
1# int -> float
2float(1)
1.0
1# float -> int
2int(-2.9)
-2

Atenção! Na conversão de float para int, fica-se apenas com a parte inteira do número.

Observação 2.6.2.

O método input permite a entrada de strings, que podem ser convertidas para outras classes de dados. Com isso, pode-se obter a entrada via teclado destes dados.

Exemplo 2.6.1.

O seguinte código, computa a área de um triângulo com base e altura fornecidas por usuária(o).

1# entrada de dados
2base = float(input('Entre com o valor da base:\n\t'))
3altura = float(input('Entre com o valor da altura:\n\t'))
4
5# cálculo da área
6area = base*altura/2
7
8# imprime a área
9print(f'Área do triangulo de ')
10print(f'\t base = {base:e}')
11print(f'\t altura = {altura:e}')
12print(f'é igual a {area:e}')

2.6.4 Exercícios

E. 2.6.1.

Com base na linguagem Python, complete as lacunas.

  1. a)

    Caractere é qualquer letra, símbolo, sinal ou dígito representado em forma escrita.

  2. b)

    String é uma sequência caracteres.

  3. c)

    Usam-se aspas para a entrada de strings.

  4. d)

    O caractere especial 'n' insere uma nova linha, enquanto que o '\t' insere uma tabulação.

Resposta.

a) caractere. b) sequência de caracteres. c) aspas. d) '\n'; tabulação.

E. 2.6.2.

Aloque a palavra traitor em uma variável x. Use de indexação por referência para:

  1. a)

    Extrair a quarta letra da palavra.

  2. b)

    Extrair a substring2525endnote: 25Uma subsequência contínua de caracteres de uma string. formada pelas quatro primeiras letras da palavra.

  3. c)

    Extrair a string formadas pelas segunda, quarta e sexta letras (nesta ordem) da palavra.

  4. d)

    Extrair a string formadas pelas penúltima e quarta letras (nesta ordem) da palavra.

Resposta.

a) x[3]; b) x[:4]; c) x[1::2]; d) [-2:2:-2]

E. 2.6.3.

Considere o seguinte código

1s = 'traitor'
2print(s[:3] + s[4:])

Sem implementá-lo, o que é impresso?

Resposta.

trator

E. 2.6.4.

Desenvolva um contador de letras de palavras. Ou seja, crie um código que forneça o número de letras de uma palavra fornecida por usuário(a).

Resposta.
1s = input('Digite uma palavra:\n\t')
2print(f'A palavra {s} tem {len(s)} letras.')
E. 2.6.5.

Desenvolva um código que compute a área de um quadrado de lado fornecido por usuária(o). Assumindo que o lado é dado em centímetros, a área deve ser impressa em metros, usando notação decimal com 2 dígitos depois da vírgula.

Resposta.
1lado = float(input('Digite o lado (em cm) do quadrado:\n\t'))
2area = lado**2/100**2
3print(f'O quadrado de lado {lado:e} cm tem área {area:.2f} m.')
E. 2.6.6.

Desenvolva um código que verifica se um número é divisível por outro. Ou seja, a(o) usuária(o) entra com dois números inteiros e o código imprime verdadeiro (True) ou (False) conforme a divisibilidade de x por y.

Resposta.
1x = int(input('Digite um número inteiro:\n'))
2y = int(input('Digite outro número inteiro não nulo:\n'))
3print(f'{x} é divisível por {y}?')
4print(f'{x%y==0}')
E. 2.6.7.

Desenvolva um código que computa a área de um triângulo de base e altura informadas por usuária(o). O resultado deve ser impresso em notação científica normalizada com três dígitos.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!