Linhas. Visão geral

Uma string - é uma lista (ou sequência) de caracteres localizados em um determinado bem. Toda a sequência de caracteres é tratada como um único objeto.

Um caractere é qualquer coisa que você pode digitar no teclado com um único toque de tecla (letra, número, barra invertida ou algum outro caractere).

Strings podem ter espaços: "Hello world!".

Uma string vazia é uma string que tem 0 caracteres.

Python aceita como strings qualquer coisa entre aspas (" ") ou apóstrofos (' ').

Em Python, uma string é do tipo str.
 
É preciso lembrar!
Strings em Python são imutáveis!


Você pode escrever um novo valor em uma string usando a instrução de entrada
s = entrada()

Você também pode simplesmente atribuir um valor de string à variável, como  
s = 'Python'
ou então
s = "Píton"

Você pode determinar o comprimento de uma string usando a função interna len()
n = len(s)


Comparação de strings

Strings podem ser comparadas umas com as outras como números. Você pode determinar qual das linhas é maior, qual é menor.

Ao comparar strings, os códigos de caracteres são comparados. Existem dezenas, senão centenas, de codificações de caracteres. A maneira mais fácil de entender esse conceito é entender um dos mais simples, ASCII (leia aqui).   ;

É necessário entender que nas codificações modernas as letras russas e inglesas são organizadas em ordem alfabética, os números também vão do menor ao maior. 
Por exemplo, na tabela de códigos ASCII, o código da letra inglesa 'A' - 65, letras 'a' - 97, dígito '0' tem o código 48. As letras russas estão localizadas na parte estendida da tabela de códigos ASCII (números de 128 a 255). Letras maiúsculas vêm antes (ou seja, têm um código menor) do que letras minúsculas.

Na maioria das tabelas de codificação usadas, os padrões são os mesmos, as letras minúsculas são posteriores às maiúsculas, os números são anteriores às letras e as letras russas são posteriores às do inglês.
 
Ao comparar caracteres ou strings, o Python converte os caracteres em seus respectivos valores ordinais e depois compara da esquerda para a direita. 

Por exemplo: "locomotiva"  < "barco a vapor", porque as palavras diferem na quinta letra e "em" < "x".

Dividindo uma linha em partes

Ao inserir uma string, você pode dividi-la imediatamente em partes por qualquer separador.
Já fizemos isso antes quando inserimos várias variáveis ​​numéricas na mesma linha. Usamos o método split() para dividir uma string em partes. Por padrão, ele separa strings em substrings por espaço.
Usando este método, você pode dividir a string em partes, por exemplo, por espaços. E escreva cada parte da string em uma variável separada.
 
Exemplo
s1, s2 = input().split()

No exemplo, ao inserir duas palavras separadas por um espaço, a primeira palavra é armazenada na variável s1, a segunda - na variável s2.

Adição e multiplicação de strings

Strings podem ser adicionadas, para isso o sinal "+" é usado. Essa operação é chamada de concatenação de strings ou concatenação
 
Exemplo 
s = "Olá,"
s1 = "mundo"
imprimir(s + s1)
A tela exibirá a frase "Hello world" (sem aspas).

Python implementa a operação de multiplicar uma string por um número: ela substitui a adição múltipla.
 
Exemplo 
corda
s = "mundo "+"mundo "+"mundo "+"mundo "
pode ser substituído por  
s = "mundo " *4

Referindo-se a índices de linha

Cada caractere em uma string tem um número (chamado índice), e a numeração sempre começa do zero em muitos idiomas.
Em Python, você pode especificar índices negativos. Isso significa que conta a partir do final da linha.
 
Exemplo 
String S H e l l o
Índice S[0] S[1] S[2] S[3] S[4]
Índice S[-5] S[-4] S[-3] S[-2] S[-1]

Se você adicionar o comprimento da string ao índice negativo, obterá um valor "normal" posição do personagem.
 
É preciso lembrar!
Em Python, você não pode alterar um único caractere em uma string, porque as próprias strings são imutáveis. 

Iterar sobre todos os caracteres

Como um caractere pode ser acessado por índice, você pode usar um loop de variável para iterar sobre todos os caracteres, que assumirão os possíveis valores de índice. Por exemplo, um programa que exibe todos os códigos de caracteres da string s ficaria assim para i no intervalo(len(s)): imprimir(s[i], ordem(s[i])) Explicações para o programa:
1) A função len(s) encontra o comprimento de uma string. O índice do primeiro caractere é 0 e o índice do último é len(s)-1. A variável de loop i apenas assumirá valores sequencialmente de 0 a len(s)-1.
2) Em cada linha, o próprio símbolo será exibido primeiro e, em seguida, seu código, que é retornado pela função interna ord().

A mesma enumeração pode ser escrita mais curta: para c em s: print(c, ord(c)) Nesse fragmento, o cabeçalho do loop percorre todos os caracteres s, colocando-os por sua vez na variável c.

Como já mencionado, a peculiaridade do Python ao trabalhar com strings é que as strings são objetos imutáveis. Em outras palavras, não podemos alterar caracteres individuais de uma string.

Por exemplo, a seguinte instrução não funcionará s[5]='a' Mas você pode compor uma nova linha a partir dos caracteres com as alterações necessárias.
 
Tarefa
Na string de entrada, substitua todos os caracteres 'a' aos caracteres 'b'.  s = entrada() sNovo = "" para c em s: se c == 'a': c = 'b' sNovo += c imprimir(sNovo)
Nesse programa, o loop percorre todos os caracteres da string s. No corpo do loop, verificamos o valor da variável с: se o símbolo corresponder ao símbolo 'a', então o substituímos com 'b< /code>' e adicione-o ao final da nova linha sNew usando o operador de adição.
Esta opção é bastante lenta.

No futuro, veremos as funções internas de manipulação de strings e aprenderemos como fazer isso mais rapidamente.