Tópico rápido mas interessante. Já soltei uns códigos aqui com strings formatadas, já comentei sobre concatenação de strings mas não abordei a teoria ainda.
Python tem várias formas de formatarmos strings. Em muitas linguagens de programação o usual é realizar concatenação de strings:
>>> site = 'Bastter.com'
>>> logo = 'seu melhor amigo'
>>> print(site + ', ' + logo)
Bastter.com, seu melhor amigo
Mas essa não é a única forma de formatarmos strings em Python. Há para esse fim a função "format" e uma nova ferramenta da linguagem, criada a partir da versão 3.6, que são as f-strings. Falando de cada uma separadamente:
A função format é uma função de strings, e a sintaxe é a seguinte:
>>> sardinhice_1 = 'CDB de banquinho'
>>> sardinhice_2 = 'UNIT'
>>> sardinhice_3 = 'PN'
>>> print('Exemplos de sardinhices: {}, {}, {}'.format(sardinhice_1, sardinhice_2, sardinhice_3))
Exemplos de sardinhices: CDB de banquinho, UNIT, PN
Ou seja, inserimos a string no código, chaves onde queremos inserir valores de variáveis, um ponto após a string e a função format recebendo como argumentos as variáveis.
Podemos também mudar a ordem das variáveis:
>>> sardinhice_1 = 'CDB de banquinho'
>>> sardinhice_2 = 'UNIT'
>>> sardinhice_3 = 'PN'
>>> print('Exemplos de sardinhices: {1}, {2}, {0}'.format(sardinhice_1, sardinhice_2, sardinhice_3))
Exemplos de sardinhices: UNIT, PN, CDB de banquinho
Entretanto, o format pode ser bem ilegível caso queiramos inserir várias variáveis em uma string. Imaginem um retorno de um cadastro de um usuário num banco de dados:
>>> profissao = 'manequim de restaurante na Tailândia'
>>> pais = 'Tailândia'
>>> hobby = 'ser simples e frugal no interior'
>>> ambicao = 'acumular mais patrimônio desempregado na Tailândia do que trabalhando no Brasil'
>>> nome = 'Sardinha'
>>> sobrenome = 'da Silva'
>>> print('Nome: {} {}; País: {}; Profissão: {}; Hobby: {}; Ambição: {}'.format(nome, sobrenome, pais, profissao, hobby, ambicao))
Nome: Sardinha da Silva; País: Tailândia; Profissão: manequim de restaurante na Tailândia; Hobby: ser simples e frugal no interior; Ambição: acumular mais patrimônio desempregado na Tailândia do que trabalhando no Brasil
Ou seja, passei 6 argumentos para a função format, prejudicando a legibilidade do código. Devido a isso foram criadas as f-strings. O resultado é o mesmo que o do format, mas podemos inserir as variáveis dentro das chaves da string, simplesmente adicionando um caractere "f" na frente da string:
>>> profissao = 'manequim de restaurante na Tailândia'
>>> pais = 'Tailândia'
>>> hobby = 'ser simples e frugal no interior'
>>> ambicao = 'acumular mais patrimônio desempregado na Tailândia do que trabalhando no Brasil'
>>> nome = 'Sardinha'
>>> sobrenome = 'da Silva'
>>> print(f'Nome: {nome} {sobrenome}; País: {pais}; Profissão: {profissao}; Hobby: {hobby}; Ambição: {ambicao}')
Nome: Sardinha da Silva; País: Tailândia; Profissão: manequim de restaurante na Tailândia; Hobby: ser simples e frugal no interior; Ambição: acumular mais patrimônio desempregado na Tailândia do que trabalhando no Brasil
Eu particularmente gosto muito das f-strings da linguagem. Acredito que fica mais legível o código. Mas todas as formas apresentarão o mesmo resultado final na tela.
Formatação de strings era o assunto que eu sentia que faltava pra poder lançar uns desafios por aqui. Pensei em criar um novo tópico só pra lançar o primeiro desafio mas o primeiro vou jogar aqui pra testar se alguém faz. Se ninguém fizer, whatever haha eu jogo a resposta depois.
Desafio (clássico em qualquer curso de lógica): Criar um programa que receba do usuário altura e peso e calcule seu IMC, índice de massa corpórea, apresentando uma string formatada com os resultados de altura e peso e o resultado do IMC, e por fim adicionando a classificação do IMC, que pode ser:
Ou seja, o usuário deve inserir dois valores no programa e o resultado ser algo como:
'Altura: 1.81, Peso: 69, IMC: 21,06 - Você está no peso ideal'
Lembrem do comando "input" e do tópico de condicionais.