Python,将数字按原样转换为字符串
我在用 Python 2.6。
我想把一些数字,比如 00000、000.00004 和 001,转换成字符串。这样每个字符串分别是 '00000'、'000.00004' 和 '001'。
而且,我希望这个方法对所有数字都适用,甚至当输入字母时也能正常工作。比如,foo 应该变成 'foo',2bar 应该变成 '2bar',但 001 还是应该是 '001'。
如果用 str([对象]) 来处理,上面的数字会变成 '0'、'4e-05' 和 '1'。
有没有什么好主意?
编辑:
@unholysampler(还有其他人)你们说得对。
我之前搞混了,因为 Sqlite3 会把字符串转换成整数或浮点数,尽管我把它声明为字符串列。但这其实是另一个问题。
第二次编辑:
如果有人好奇为什么 Sqlite3 会这样做,那是因为我在数据库模式中把列设置为 'STRING' 类型,实际上应该是 'TEXT' 类型(见 http://www.sqlite.org/datatype3.html)。这和 Sqlite 的“动态类型”特性(见 http://www.sqlite.org/faq.html#q3)结合在一起,让我感到困惑 :-)
无论如何,谢谢大家给出的好答案 :D
2 个回答
0
第一步是:无论你是怎么得到一个你认为应该是00000而不是0的数字……其实不要把它转换成数字。就把它当作字符串来处理。
8
没有0000或者001这样的数字,只有0和1。如果你想把一个数字变成字符串的形式,可以使用字符串格式化来在前面加上零。
n = 1
print '%03d' % n //001