Python十进制和导入:如何在没有';导入*';?
当我开始学习Python时,作者强烈建议不要使用模块导入中的Python十进制和导入:如何在没有';导入*';?,python,python-2.7,Python,Python 2.7,当我开始学习Python时,作者强烈建议不要使用模块导入中的*,并指出这是一个坏习惯 我试图用十进制软件包把数字四舍五入。如何在不使用“从十进制输入*”的情况下对数字进行四舍五入?即使对于十进制,也使用“从十进制导入*” 除其他外,我尝试了以下方法: #!/usr/bin/python import sys import decimal print "UPDATE: Price is %s" % (decimal.Decimal(4233/3600).quantize(decimal.Deci
*
,并指出这是一个坏习惯
我试图用十进制软件包把数字四舍五入。如何在不使用“从十进制输入*”的情况下对数字进行四舍五入?即使对于十进制,也使用“从十进制导入*”
除其他外,我尝试了以下方法:
#!/usr/bin/python
import sys
import decimal
print "UPDATE: Price is %s" % (decimal.Decimal(4233/3600).quantize(decimal.Decimal('.000001'), round=ROUND_UP))
不幸的是,我得到了以下错误:
回溯(最近一次调用上次):文件
“/calculate_hourly_stats.py”,第4行,在
打印“更新:价格为%s%”(十进制.decimal(4233/3600))。量化(十进制.decimal('.000001'),
round=round\u UP)name错误:未定义名称“round\u UP”
在decimal.py中,四舍五入是一个常量。如何从decimal导入常量?这里的
decimal
模块没有什么特别之处-四舍五入
只是其中的另一个名称,与decimal
相同。所以你可以说decimal.ROUND\u
。或
from decimal import ROUND_UP
然后使用普通四舍五入
顺便说一下,文档中的其他内容在大量使用decimal
的程序中很常见:
from decimal import Decimal as D
然后您可以编写,例如,D(“1.23”)而不是十进制。十进制(“1.23”)
因为您已经导入了十进制
,请将该常量称为十进制。四舍五入
从十进制输入到四舍五入的也没有问题。样式指南警告不要盲目地导入所有内容,而不要导入特定的名称