Strings são imutáveis
Depois que uma string é definida, ela não pode ser alterada.
# Programa para mostrar # que strings não podem ser alteradas a = 'Acervo Lima' # mostra o valor de a print(a) # tenta alterar o terceiro elemento da string a[2] = 'E' # isso vai lançar o erro TypeError print(a)
Resultado:
Acervo Lima Traceback (most recent call last): File "/home/thor/Documentos/teste.py", line 10, ina[2] = 'E' # isso vai causar um erro TypeError: 'str' object does not support item assignment
Mas o código abaixo funciona bem.
# programa para mostrar que uma string # pode ser concatenada com outra string a = 'Acervo ' # mostra o conteúdo de a print(a) a = a + 'Lima' print(a) # tudo funciona como deveria
Resultado:
Acervo Acervo Lima
No segundo programa, o intérprete faz uma cópia da string original e então trabalha nela e a modifica. Portanto, a expressão a = a + 'Lima'
não muda a string, mas reatribui a variável a
um novo valor (o resultado da concatenação das duas strings).
Entenda o uso da função id()
.
A função id()
é usada para retornar a identidade de um objeto.
# script python para mostrar que # as duas string tem o mesmo id string1 = "Hello" string2 = "Hello" print(id(string1)) print(id(string2))
Resultado:
140595101158640 140595101158640
string1
e string2
apontam para o mesmo objeto ou mesmo local. Agora, se alguém tentar modificar qualquer um dos resultados da string, os resultados serão diferentes.
# Modificando a string string1 = "Hello" # id da string string1 print(id(string1)) string1 += "World" print(string1) # id da string modificada string1 print(id(string1))
Resultado:
140495269678192 HelloWorld 140495269678832
String1
é modificado, o que contradiz o fato de que as strings são imutáveis, mas a identidade antes e depois da modificação são diferentes. Isso significa que um novo objeto da string1
é criado após a modificação, o que confirma o fato de que as strings são imutáveis, pois nenhuma mudança foi feita no objeto anterior da string1
em vez disso uma nova é criada.
Três maneiras de criar strings
Strings em Python podem ser criadas usando aspas simples, aspas duplas ou aspas triplas.
As aspas simples e duplas funcionam da mesma forma para a criação da string. Por falar em aspas triplas, elas são usadas quando temos que escrever uma string em várias linhas e imprimir como está, sem usar nenhuma sequência de escape.
# script python parar criar # strings de três modos diferentes # e concatenalas # string com aspas simples a = 'Acervo' # string com aspas duplas b = " Lima" # string com aspas triplas c = ''' Acervo Lima o maior acervo de de tutoriais ''' d = '''Ele disse, "É armadilha"''' print(a) print(b) print(c) print(d) # concatenando strings criadas # com aspas simples, duplas e triplas print(a + b + c)
Resultado:
Acervo Lima Acervo Lima o maior acervo de de tutoriais Ele disse, "É armadilha" Acervo Lima Acervo Lima o maior acervo de de tutoriais
Como imprimir aspas simples ou aspas duplas na tela?
Podemos fazer isso das duas maneiras a seguir:
- O primeiro é usar o caractere de escape para exibir a citação adicional.
- A segunda maneira é usando aspas combinadas, ou seja, quando queremos imprimir aspas simples, usando aspas duplas como delimitadores e vice-versa.
Exemplo:
print("Olá, senhor Alberto") # usando o caracter de escape print("Ele disse, \"Bem-vindo ao Acervo Lima\"") print('Tão feliz em estar aqui') # Usando aspas diferentes print ('Ele esta procurando pelo Billy "the Kid"')
Resultado:
Olá, senhor Alberto Ele disse, "Bem-vindo ao Acervo Lima" Tão feliz em estar aqui Ele esta procurando pelo Billy "the Kid"
Como imprimir o caractere de escape?
Se houver a necessidade de imprimir o caractere de escape (\), então, se o usuário mencioná-lo em um interpretador de string, pensará nele como um caractere de escape e não o imprimirá. Para imprimir o caractere de escape, o usuário deve usar o caractere de escape antes de '\' conforme mostrado no exemplo.
# imprime o caractere de escape print ("\\ barra invertida")
Resultado:
\ barra invertida
Artigo escrito por Arpit Agarwal, melhorado por tuhinpaul e traduzido por Acervo Lima de Interesting facts about strings in Python | Set 1
0 comentários:
Postar um comentário