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 para o português acadêmica que raramente você vai ouvir.
Strings no meio do código
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 println()
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 0x3>
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
:
a = '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. Veja aqui duas maneiras:
def setup():
size(400, 400)
println("largura da tela: {} - altura da tela: {}".format(width, height) # usando "{}".format(valor)
def draw():
println("x: " + str(mouseX) + " y: " + str(mouseY)) # convertendo o valor em string com str()
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 = "x: {} y: {}".format(mouseX, mouseY) # os valores vão nos {} {}
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
Letras com acentos, caracteres especiais e outros glifos
Em Python 2 é necessário um u
antes de cada string literal (string no corpo do programa) para permitir letras acentuadas e outros caracteres não-ASCII, os tornando objetos de texto unicode. Uma outra solução é incluir no começo do seu programa, logo na primeira linha, o seguinte código:
from __future__ import unicode_literals
Você pode ler mais sobre isso na página sobre Python 2 e Python 3.
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(u'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(
u"""frutas frescas:
maçã
banana
""")