Я хотел бы задать вопрос, который у меня есть относительно программы, так как я новичок в Python и практикуюсь с условными выражениями. Моя программа такова:
print("QUE PORCENTAJE DE UNA HORA HA TRANSCURRIDO?")
minuto=int(input("Introduzca el minuto: "))
def porcentajes_hora(hora):
porcentaje=minuto/.6
if minuto>60:
porcentaje=("MINUTO INCORRECTO")
return porcentaje
print(porcentajes_hora(int(minuto)))
Как видите, он запрашивает минуту часа, который мы хотим узнать в процентах, в типе данных «int». Итак, если мы поставим «30», программа ответит «50,0». Я хотел бы знать, как я могу изменить код, чтобы после «50,0» ставился знак процента, чтобы окончательный ответ был «50,0%».
Заранее благодарю за внимание, было бы здорово, если бы вы ответили мне на этот вопрос.
Вы можете использовать
str.format
возврат строки, как вы делаете, если минута больше 60.либо:
Метод
format
заменяет цели, определенные{}
аргументами, переданными в качестве аргументов.Вы можете использовать « Мини-язык спецификации формата », чтобы, например, определить максимальное количество десятичных разрядов, которое вы хотите отобразить.
Некоторые наблюдения:
Вы используете не аргумент часа функции, а глобальную переменную минуту. Вы должны использовать переменную, которую вы передаете ей, в качестве аргумента.
Рассмотрите возможность использования четырех пробелов между уровнями отступов, как это рекомендовано в PEP-8.
Если значение минут больше 60, следует избегать вычисления процентов. Используйте
else
или верните функцию.Код может быть примерно таким:
В этом случае всегда будут отображаться два десятичных знака.
Другой вариант - сделать:
Если вы используете Python >= 3.6, вы также можете использовать форматированные строковые литералы:
либо:
Примеры выполнения:
Версия:
Что касается объяснения того, что он делает
{0:.2f}
, общая структура такова:{}
указывает "цель", он будет заменен в выходной строке соответствующим аргументом, переданным вformat
, в этом случае он заменяется результатомminuto / 0.6
.То есть, когда он делает
"Hola {}.".format("Mundo")
то, что делаетformat
, берет строку"Hola {}."
и заменяет ее на{}
,"Mundo"
в результате чего получается строка"Hola Mundo."
.Первый «0» указывает на использование первого элемента, переданного в
format
, в данном случае это не обязательно (:.2f
). Указывает индекс используемого элемента из кортежа, переданного вformat
. Если не указано, они используются в том порядке, в котором они указаны в кортеже:f
говорит ему обрабатывать элемент, который нужно отформатировать, как число с плавающей запятой, отображая его в формате с фиксированной точкой (фиксированное количество знаков после запятой). Мы можем видеть, что говорится в документации (мини-язык спецификации формата):.2
указывает, что используемая точность заключается в печати только 2 цифр после запятой.Некоторые примеры:
В случае
:.2%
равенства только тип аргумента рассматривается как абсолютная частота и автоматически форматируется как процент процента: