Estoy practicando mis declaraciones de formato, pero no entiendo cómo funciona. Estoy tratando específicamente de entender el comando de formato usando el comando ".2f", este es el código que tengo actualmente, la segunda línea se ejecuta antes de que regrese y aparece un error:
salesTax = 0.08
salesAmount = str(input('Enter the sales amount: '))
print ('The sales amount is', format('$'+salesAmount,
'.2f'))
print ('The sales tax is', format("$"+'.2f'))
print('The total sale is', format("$"+totalSales*salesTax,
'.2f'))
input("\nRun complete. Press the Enter key to exit.")
Estoy tratando de hacer un script que muestre el resultado de la siguiente ejecución de muestra:
//Sample run:
Enter the sales amount: 1234
The sales amount is $ 1,234.00
The sales tax is $ 98.72
The total sale is $ 1,332.72
Run complete. Press the Enter key to exit
4 respuestas
TL; DR
print('The sales amount is $', format(salesAmount, '.2f'))
Desglosándolo:
Convierta el número a cadena formateada como 2 lugares decimales (porción .2
) con representación de coma flotante (porción f
).
format(salesAmount, '.2f')
Ahora que tiene una cadena, la une con pase para imprimir o puede unirse al código anterior con +
o lo que sea.
'The sales amount is $' + the_formatted_number
La sintaxis es
format(value, format_spec)
Cuando utiliza un formato .2f
, el valor debe ser float
, no una cadena, por lo que debe convertir la entrada a float
(input()
devuelve una cadena, hay no es necesario usar str()
en el resultado. Y no puede concatenar $
al valor antes de formatearlo, debe concatenar eso al resultado.
También usó una variable inexistente totalSales
en sus llamadas print()
, debería ser salesAmount
.
salesTax = 0.08
salesAmount = float(input('Enter the sales amount: '))
print ('The sales amount is', '$' + format(salesAmount, '.2f'))
print ('The sales tax is', '$' + format(salesTax*salesAmount, '.2f'))
print('The total sale is', '$' + format(salesAmount + salesAmount*salesTax, '.2f'))
input("\nRun complete. Press the Enter key to exit.")
Dicho esto, este uso de la función format()
no es común en estos días. Es más fácil usar una cadena f o str.format()
, que le permite incrustar la especificación de formato en una cadena con el texto plano y formatear múltiples valores juntos, p.
print("The sales amount is ${.2f}".format(salesAmount))
format
es una función integrada que requiere dos argumentos: value
y format_spec
.
format('$' + salesAmount, '.2f')
Le dará un error porque espera un número o una representación de cadena de un número como value
para aplicar el formato que ha proporcionado. Recibirá un error:
ValueError: código de formato desconocido 'f' para el objeto de tipo 'str'
format(salesAmount, '.2f')
Esto funcionará correctamente.
Nota: si está utilizando Python 3.6+, también puede usar una cadena f:
f"{12.345678:.2f}"
.2f debe estar fuera del método de formato. por ejemplo, intente print("{:.2f}".format(12.345678))
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.