Fstrings
Si está utilizando Python 3.6+
se puede hacer uso de la nueva llamada f-strings
que significa cadenas con formato y puede ser utilizado por la adición del carácter f
en el comienzo de una cadena para identificar esto como f-string.
price = 123
name = "Jerry"
print(f"{name}!!, {price} is much, isn't {price} a lot? {name}!")
>Jerry!!, 123 is much, isn't 123 a lot? Jerry!
Los principales beneficios del uso de los F-cuerdas es que son más legibles, puede ser más rápido, y ofrecen un mejor rendimiento:
pandas Fuente para todos: Análisis de datos de Python, de Daniel Y. Chen
puntos de referencia
no hay duda de que el nuevo f-strings
son más fácil de leer, ya que no tiene que volver a asignar las cuerdas, b ¿Pero es más rápido como se indica en la cita mencionada?
price = 123
name = "Jerry"
def new():
x = f"{name}!!, {price} is much, isn't {price} a lot? {name}!"
def old():
x = "{1}!!, {0} is much, isn't {0} a lot? {1}!".format(price, name)
import timeit
print(timeit.timeit('new()', setup='from __main__ import new', number=10**7))
print(timeit.timeit('old()', setup='from __main__ import old', number=10**7))
> 3.8741058271543776 #new
> 5.861819514350163 #old
Ejecución de 10 millones de pruebas de que parece que el nuevo f-strings
son en realidad más rápido en la cartografía.
Duplicado: http://stackoverflow.com/questions/543399/python-string-formatting – bignose
Este operador de cadena '%' estará "en desuso en Python 3.1 y eliminado más adelante en algún momento" http: //docs.python .org/release/3.0.1/whatsnew/3.0.html # pep-3101-a-new-approach-to-string-formatting ahora me pregunto cuál es la forma más recomendada para la compatibilidad y la seguridad de la versión. – cregox
@Cawas Sé que esto es bastante tarde, pero me gusta usar 'str.format()'. Ej .: 'query =" SELECT * FROM {named_arg} "; query.format (** kwargs) ', donde' query' es la cadena de formato y 'kwargs' es un diccionario con claves que coinciden con' named_arg's en la cadena de formato. – Edwin