print(f'O nome é {nome} e sua idade é {idade} anos')
seria o mesmo que
print('O nome é {} e sua idade é {}'.format(nome, idade))
certo?
print(f'O nome é {nome} e sua idade é {idade} anos')
seria o mesmo que
print('O nome é {} e sua idade é {}'.format(nome, idade))
certo?
Olá!
Respondendo sua pergunta, eu diria que sim e não.
Na situação que você citou como exemplo, ambas funcionam com o mesmo propósito e retornam a mesma saída, porém, há particularidades entre elas.
O print("{}".format(variavel)) possibilita a ordenação dos valores ao informar o index que a variável se encontra no parâmetro do .format().
fruta1 = "cenoura"
fruta2 = "banana"
fruta3 = "abacate"
print("Vou comprar {}, {} e {}.".format(fruta1, fruta2, fruta3)) #Saída: Vou comprar cenoura, banana e abacate.
print("Vou comprar {2}, {0} e {1}.".format(fruta1, fruta2, fruta3)) #Saída: Vou comprar abacate, cenoura e banana.
Apesar dessa flexibilidade de ordenação, usar o .format() não é uma opção tão atrativa para lidar com grandes quantidades de variáveis, pois pode atrapalhar na manutenção do próprio desenvolvedor e de outras pessoas que possam a vir trabalhar com esse código.
Utilizar o print(f"{variavel}") é mais direto ao ponto e é visualmente mais simples para aplicar manutenções, além de permitir a realização de operações matemáticas diretamente na função, diferente do .format().
fruta1 = "cenoura"
fruta2 = "banana"
fruta3 = "abacate"
print(f"Vou comprar {fruta1}, {fruta2} e {fruta3}.") #Saída: Vou comprar cenoura, banana e abacate.
print(f"Vou comprar {fruta3}, {fruta1} e {fruta2}.") #Saída: Vou comprar abacate, cenoura e banana.
print(f"5 x 8 = {5*8}.") #Saída: 5 x 8 = 40
Entendi, valeu!
O f' é mais recente da versão 3 do python.