Formatação de strings#
Introdução#
A forma recomendada de formatar texto e números em Python é com f-strings. Permitem que variáveis, expressões e chamadas de funções sejam incorporadas diretamente dentro de {}.
Para criar uma f-string, adicione f antes da string e coloque qualquer variável, expressão ou chamada de função dentro de {}.
x = 1
y = 5
# Display the variables using an f-string
controller.screen.print(f"Position: ({x}, {y})")
# Display a calculation with an f-string
controller.screen.print(f"Sum: {5 + 3}")
# Display the robot's battery capacity with an f-string
controller.screen.print(f"Battery: {controller.get_battery_level()}%")
f-strings – Incorporam variáveis e expressões diretamente no texto.
f”{value}”– Apresenta variáveis, expressões ou chamadas de funções dentro de uma string.
Formatação de números em f-strings – Controle o aspeto dos valores numéricos.
:.xf– Define o número de casas decimais a apresentar.round– Arredonda um número para um determinado número de casas decimais.:,– Adiciona vírgulas como separadores de milhares.:.x%– Converte um decimal numa percentagem com x casas decimais.:#x– Formata um número como hexadecimal.:b– Formata um número como binário.
Combinação de strings – Combinar texto e valores.
f”{value}”– Combina strings e variáveis numa única expressão.+operator – Concatenar strings manualmente com conversão de tipo opcional.
Métodos de string – Alterar maiúsculas e minúsculas do texto.
upper– Converte todos os caracteres para maiúsculas.lower– Converte todos os caracteres para minúsculas.
Verificação de substring – Teste para verificar a presença ou posição do texto.
in– Verifica se uma palavra existe numa string.startswith– Verifica se uma string começa com um determinado valor.endswith– Verifica se uma string termina com um determinado valor.
Sequências de escape – Formatar a saída com caracteres especiais.
Formatação de números em f-strings#
As f-strings permitem um controlo preciso sobre casas decimais, arredondamentos, separadores de milhares e muito mais, utilizando os seguintes especificadores de formato:
Fixed Decimal Places#
.xf controla quantas casas decimais um número é apresentado.
Usage:
.xf
Parâmetros |
Descrição |
|---|---|
|
A quantidade de casas decimais a apresentar. |
# Display pi with 2 decimal places
pi = 3.1415926535
controller.screen.print(f"Pi: {pi:.2f}")
# Output: Pi: 3.14
Rounding Numbers#
round arredonda números fora de uma f-string ou dentro de {}.
Usage:
round(number, x)
Parâmetros |
Descrição |
|---|---|
|
O número a arredondar. |
|
O número de casas decimais a arredondar. |
# Display a value rounded to only 2 decimal places
value = 5.6789
controller.screen.print(f"{round(value, 2)}")
# Output: 5.68
Thousands Separator#
, insere vírgulas como separadores de milhares para tornar os números grandes mais legíveis.
Usage:
,
Parâmetros |
Descrição |
|---|---|
Este especificador de formato não possui parâmetros. |
# Display a large number separated with commas
number = 1234567
controller.screen.print(f"{number:,}")
# Output: 1,234,567
Percentage#
.x% formata os valores decimais como percentagens.
Usage:
.x%
Parâmetros |
Descrição |
|---|---|
|
A quantidade de casas decimais a apresentar. |
# Display a converted decimal to a percentage
value = 0.875
controller.screen.print(f"{value:.1%}")
# Output: 87.5%
Hexadecimal#
.#x converte números para hexadecimal.
Usage:
.#x
Parâmetros |
Descrição |
|---|---|
Este especificador de formato não possui parâmetros. |
# Convert 255 to hexadecimal
number = 255
controller.screen.print(f"{number:#x}")
# Output: 0xff
Binary#
b converte números para binário (base 2).
Usage:
b
Parâmetros |
Descrição |
|---|---|
Este especificador de formato não possui parâmetros. |
# Convert 3 to binary
controller.screen.print(f"Binary: {3:b}")
# Output: Binary: 11
Combinando strings#
Pode combinar (ou concatenar) strings utilizando duas abordagens:
Using f-strings#
Com f-strings, pode incorporar variáveis diretamente dentro de {}.
# Display an answer based on the given emotion
emotion = "good"
controller.screen.print(f"I'm {emotion}, you?")
+ Operator#
Pode combinar strings manualmente utilizando o operador +.
Nota: Os valores que não sejam strings devem ser primeiro convertidos em strings utilizando str().
# Display the x and y values
x = 10
y = 20
controller.screen.print("X: " + str(x) + ", Y: " + str(y))
Métodos de string#
O Python fornece métodos integrados para modificar e verificar strings.
upper#
upper converte todas as letras de uma string para maiúsculas.
Usage:
upper()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Display a message in uppercase
message = "vexcode"
controller.screen.print(message.upper())
# Output: VEXCODE
lower#
lower converte todas as letras de uma string para minúsculas.
Usage:
lower()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Display a message in lowercase
message = "VEXCODE"
controller.screen.print(message.lower())
# Output: vexcode
Verificação de substrings#
in#
in é uma palavra-chave que devolve um valor booleano indicando se existe uma substring (palavra ou excerto de texto) numa string.
True– A palavra existe na string.False– A palavra não existe na sequência.
# Display a message if "Hey" is in the string
message = "Hey everyone!"
if "Hey" in message:
controller.screen.print("Hello!")
startswith#
A função startswith devolve um valor booleano indicando se uma string começa com um determinado valor.
True– A palavra inicia a sequência.False– A palavra não inicia a sequência.
Usage:
startswith(substring)
Parâmetros |
Descrição |
|---|---|
|
A subcadeia de caracteres a verificar no início da cadeia. |
# Display a message if the string starts with "AIR"
message = "AIR Drone"
if message.startswith("AIR"):
controller.screen.print("AIR first!")
endswith#
A função endswith devolve um valor booleano indicando se uma string termina com um determinado valor.
True– A palavra termina a sequência.False– A palavra não termina a sequência.
Usage:
endswith(substring)
Parâmetros |
Descrição |
|---|---|
|
A substring a verificar no final da string. |
# Display a message if the string ends with "Drone"
message = "AIR Drone"
if message.endswith("Drone"):
controller.screen.print("Drone last!")
Sequências de Escape#
As sequências de escape são caracteres especiais utilizados dentro de strings para formatar a saída de texto. Estão apenas disponíveis para utilização com o Console.
New Line#
\n move o texto para uma nova linha ao imprimir.
# Display text on two lines
print("First line\nSecond line")
Tab Spacing#
\t insere um espaço de tabulação entre palavras ou números.
# Display the quantity of barrels
quantity = 2
print("IDs:\t", quantity)