我的问题是为什么MySQL行的整数值后缀为'L'?以下是详细信息:
以下字典 - 为了便于显示而人为地格式化 -
{'estimated': '',
'suffix': '',
'typeofread': 'g',
'acct_no': 901001000L,
'counter': 0,
'time_billed': datetime.datetime(2012, 5, 1, 9, 5, 33),
'date_read': datetime.datetime(2012, 3, 13, 23, 19, 45),
'reading': 3018L,
'meter_num': '26174200'}
由一个MySQL数据库表的列压缩,其中包含从表中读取一次的结果。
我可以通过将这些值传递给int()来删除'L',所以如果该字典位于名为snapped_read的变量中,我可以这样做:
int(snapped_read['reading'])
和3018L
会更改为3018
。
我很好奇为什么整数会以这种方式出现。
答案 0 :(得分:48)
因为在Python 3之前的Python版本中,长整数文字用l
或L
后缀表示。在Python 3中,int
和long
已合并为int
,其功能与long
的功能非常相似。
请注意,从技术上讲,Python(2)的int
相当于C的long
,而Python的long
更像是BigNumber
类型的东西。无限精度(现在是Python 3的int
类型的情况。)
http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
答案 1 :(得分:13)
L
适用于long
数据类型。
例如,
age = 24 # int
bankBalance = 20000005L # long
答案 2 :(得分:7)
因为它们不是完全整数,所以它们是“长的”。
http://docs.python.org/library/stdtypes.html#typesnumeric
他们通常不会提供太多麻烦,但
>>> a=1
>>> b=long(1)
>>> a
1
>>> b
1L
>>> a==b
True
关于此问题的其他stackoverflow问题:here