seleccionar recorrer ejecutar desde data columnas python sign

recorrer - ¿Cuál es el significado de% r en python?



recorrer data frame pandas (6)

Agregando a las respuestas dadas arriba, ''%r'' puede ser útil en un escenario donde tiene una lista con tipo de datos heterogéneos. Digamos que tenemos una list = [1, ''apple'' , 2 , ''r'',''banana''] Obviamente, usar ''%d'' o ''%s'' provocaría un error. En cambio, podemos usar ''%r'' para imprimir todos estos valores.

¿Cuál es el significado de %r en la siguiente declaración?

print ''%r'' % (1)

Creo que he oído hablar de %s , %d y %f pero nunca he oído hablar de esto.


Fondo:

En Python, hay dos funciones integradas para convertir un objeto en una cadena: str vs. repr . str se supone que es una cadena amigable y legible para los humanos. se supone que repr incluye información detallada sobre los contenidos de un objeto (a veces, devolverán lo mismo, como para enteros). Por convención, si hay una expresión de Python que evaluará a otro objeto que sea ==, repr devolverá dicha expresión, por ejemplo:

>>> print repr(''hi'') ''hi'' # notice the quotes here as opposed to... >>> print str(''hi'') hi

Si devolver una expresión no tiene sentido para un objeto, repr debería devolver una cadena que esté rodeada por los símbolos <y>, por ejemplo, <blah> .

Para responder a su pregunta original:

%s <-> str
%r <-> repr

En adición:

Puede controlar la forma en que una instancia de sus propias clases se convierte en cadenas implementando los métodos __str__ y __repr__ .

class Foo: def __init__(self, foo): self.foo = foo def __eq__(self, other): """Implements ==.""" return self.foo == other.foo def __repr__(self): # if you eval the return value of this function, # you''ll get another Foo instance that''s == to self return "Foo(%r)" % self.foo


Imprime el reemplazo como una cadena con repr() .


Llama a repr() en el objeto e inserta la cadena resultante.


Vea Cadenas de operaciones de formato en los documentos. Tenga en cuenta que% sy% d, etc., pueden funcionar de manera diferente a como espera si está acostumbrado a la forma en que trabaja en otro idioma, como C.

En particular,% s también funciona bien para ints y flotantes a menos que tenga requisitos especiales de formato donde% d o% f le dará más control.


%s <=> str %r <=> repr

%r llama a repr() en el objeto e inserta la cadena resultante devuelta por __repr__ .

La cadena devuelta por __repr__ debe ser ambigua y, de ser posible, debe coincidir con el código fuente necesario para recrear el objeto que se está representando.

Un ejemplo rápido:

class Foo: def __init__(self, foo): self.foo = foo def __repr__(self): return ''Foo(%r)'' % self.foo def __str__(self): return self.foo test = Foo(''Text'')

Asi que,

in[1]: test Out[1]: Foo(''Text'') in[2]: str(test) Out[2]: ''Text''