我想问一个关于程序的问题,因为我是 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
or 使函数返回。代码可能是这样的:
在这种情况下,将始终显示两位小数。
另一种选择是:
如果您使用的是 Python >= 3.6,您还可以使用格式化的字符串文字:
任何一个:
执行示例:
版:
至于它的作用的解释
{0:.2f}
,一般结构是:{}
表示一个“目标”,它将在输出字符串中被传递给 的相应参数format
替换,在这种情况下,它被 的结果替换minuto / 0.6
。也就是说,当它执行它所做的
"Hola {}.".format("Mundo")
事情时,它会将format
字符串"Hola {}."
替换为{}
,"Mundo"
从而得到字符串"Hola Mundo."
。第一个“0”表示使用传递给的第一个元素
format
,在这种情况下它不是真正必要的(:.2f
)就足够了。指示要从传递给的元组中使用的元素的索引format
。如果未指定,则按照它们在元组中的顺序使用它们:f
告诉它将要格式化的元素视为浮点数,以定点格式(固定小数位数)显示它。我们可以看到文档是怎么说的(Format Specification Mini-Language):.2
表示要使用的精度仅打印小数点后 2 位。一些例子:
在
:.2%
等于的情况下,只有参数类型被视为绝对频率,并自动格式化为百分比: