Necesito imprimir un valor en el archivo de registro. Mi valor es un flotante en el rango 0-1. El valor debe formatearse como 4 dígitos decimales, sin parte entera. Entonces 0.42 se imprimirá como 4200, y con algo de texto antes.
Este es mi enfoque actual:
value = 0.42
print('my value is ' + f'{value:.4f}'[2:])
De alguna manera no se ve muy bien, por lo que la pregunta es: ¿puedo usar el formato flotante de una manera que pueda evitar concatenar dos cadenas, algo así como:
print(f'my value is {value:-1.4f}') # this looks nicer but doesn't do what I want
4 respuestas
Gracias por tus sugerencias. Para resumir todo, lo que no me gustó en mi solución original es que no es claramente visible lo que está haciendo a primera vista. Creo que la versión ligeramente modificada publicada por hiro protagonista es mejor:
print(f'my value is {int(10000*value):04d}')
No es necesario dividir la cadena + Necesito agregar agregar '04d' para imprimir ceros a la izquierda en caso de que el número sea menor.
No hay nada de malo con la satisfacción de str
s para obtener argumentos para print
, sin embargo, si no se le permite hacerlo, puede usar la siguiente solución:
value = 0.42
print('my value is',f'{value:.4f}'[2:])
Salida:
my value is 4200
Tenga en cuenta que eliminé el último espacio de my values is
porque print
por defecto agrega espacios entre los argumentos que recibe.
Esto podría funcionar:
value = 0.42
print('my value is ' + f'{int(10000*value):4d}')
# my value is 4200
Donde convierto su float
en un int
primero y uso el formato de entero :4d
.
O es posible que desee round
primero.
Tu código es bastante bueno, puedes dejarlo como está. También hay otra manera, pero no estoy seguro de que sea agradable.
value = 0.42
print(f'my value is {str(value)[2:]:0<4}')
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.