我的问题是为什么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'}
Run Code Online (Sandbox Code Playgroud)
由一个MySQL数据库表的列压缩而成,其中包含从表中读取一次的结果.
我可以通过将这些值传递给int()来删除'L',所以如果该字典位于名为snapped_read的变量中,我可以这样做:
int(snapped_read['reading'])并将3018L改为3018.
我只是好奇为什么整数会以这种方式出现.
JAB*_*JAB 48
因为在Python 3之前的Python版本中,长整数文字用一个l或L后缀表示.在Python 3中,ints和longs已合并为just 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
Kal*_*esh 13
L用于long数据类型.
例如,
age = 24 # int
bankBalance = 20000005L # long
Run Code Online (Sandbox Code Playgroud)
因为它们不是完全整数,所以它们是"长"的.
http://docs.python.org/library/stdtypes.html#typesnumeric
不过,他们通常不会提供太多麻烦
>>> a=1
>>> b=long(1)
>>> a
1
>>> b
1L
>>> a==b
True
Run Code Online (Sandbox Code Playgroud)
关于此的其他stackoverflow问题:这里
| 归档时间: |
|
| 查看次数: |
42303 次 |
| 最近记录: |