Textos no programa, no console e na tela: strings
O tipo dos valores que representam texto, palavras, letras ou glifos em geral, é chamado string, ou “cadeia de caracteres” numa tradução acadêmica para o português que raramente você vai ouvir.
Strings no meio do código (string literals)
Para expressar strings no corpo de um programa podemos os envolver em aspas duplas "
ou aspas simples '
. Dentro de um texto envolto em aspas duplas podemos ter um texto que contém aspas simples, e vice-versa. Também podemos usar triplas de aspas: '''
ou """
, fazemos isso especialmente para expressar strings com quebras de linha, como veremos mais adiante.
frase = 'Ideias verdes incolores dormem furiosamente'
autor = "Noam Chomsky"
Mostrando valores no console
Usamos print()
ou print()
para exibir na parte de baixo do IDE, o chamado console. Essas funções convertem automaticamente outros tipos de valores em string, uma representação textual ou uma referência ao objeto passado.
def setup(): # Resultado exibido no console:
print("Oi mundo!") # Oi mundo!
print(100 + 50) # 150
print(setup) # <function setup at 0x7f1b493faee0> (ou algo semelhante)
Manipulando strings
O mais básico, concatenando strings e convertendo um número em string
Podemos concatenar, isto é somar strings em justaposição, com o operador +
:
primeiro_nome = 'John'
sobrenome = 'Conway'
nome = primeiro_nome + ' ' + sobrenome
# resultado: nome = 'John Conway'
Só que não é possível somar um número a um texto ou o contrário. Note neste caso como '10'
é entendido como texto, string, e não como o número 10
:
s = '10' + 5 # TypeError: cannot concatenate 'str' and 'int' objects
Como não podemos concatenar strings e números, por exemplo, para os mostrarmos juntos, é comum convertermos os números em strings.
s = '10' + str(5) # A variável `s` vai apontar para o valoe '105'
Veja aqui duas outras maneiras de fazer a conversão de outros tipos de valores em strings, ao mesmo tempo que se “monta” um string maior, o que é chamado às vezes de interpolação de strings:
def setup():
size(400, 400)
# usando "{}".format(valor)
print("largura da tela: {} - altura da tela: {}".format(width, height) # Os valores das variáveis entrarão nas posições dos {}
def draw():
# convertendo o valor usando um *f-string*, um tipo de string especial
print(f"x: {mouse_x} y: {mouse_y}") # note o `f` antes das aspas as variáveis entre {} são "formatadas"
Mais sobre como formatar a conversão dos números em strings, procurar e substituir sequências de caracteres, checar prefixos e sufixos entre muitas outras coisas você encontra em Métodos dos objetos string
Mostrando texto na área de desenho
def setup():
size(400, 400)
def draw():
background(100)
text("Oi mundo!", 50, 50) # text(string, x, y)
texto_mouse = f"x: {mouse_x} y: {mouse_y}" # repare no `f` que marca um f-string
text(texto_mouse, 50, 70)
Mais sobre desenhar texto na tela na página sobre tipografia básica em: Trabalhando com fontes e outros ajustes do texto
Caracteres especiais e outros glifos
Em Python o \
dentro de strings é chamado de ‘caractere de escape’ permite obter elementos especiais, por meio de uma ‘sequência de escape’, como por exemplo uma tabulação(\t
) ou um sol ☀ (\u2600
). Se precisar usar a própria barra invertida escreva \\
.
Usamos \n
para obter uma quebra de linha. Como no exemplo a seguir:
print('frutas frescas:\nmaça\nbanana')
Resultado:
frutas frescas:
maçã
banana
Uma outra maneira de indicar uma string literal com quebras de linha é usando aspas triplas '''
ou """
o que permite que ela corra por várias linha no próprio código:
print(
"""frutas frescas:
maçã
banana
""")