python 版本是 2.7.3 。
请教:将一个负数按%u 格式化输出,怎么还是一个负数呢?不应该是一个无符号整数么?
语句很简单:
print "a=%u"%-1
谢谢。
请教:将一个负数按%u 格式化输出,怎么还是一个负数呢?不应该是一个无符号整数么?
语句很简单:
print "a=%u"%-1
谢谢。
|
ethegoSep 21, 2015
1
%u 的这种格式化字符串的方法非常的不 pythonic ,建议使用`.format ()`方法
|
|
hhrmatataSep 21, 2015
2
用-1 去替换%u ,所以当然还是负数
|
|
ethegoSep 21, 2015
3
我的朋友里写惯 c 系语言的人转学 python 都习惯用百分号格式化字符串。。
|
|
4
|
|
ethegoSep 21, 2015
5
```python
print "a={0}".format (abs (-1 )) ``` |
|
7
@ethego 居然用上了 abs 函数,这种处理方式也不好看啊。
我改成这样也可以了: print "a=%u" % (-1&0xFFFFFFFF ) 总之,我以为%u 是与 C 语言对应的格式化,没想到是个坑。 |
|
ethegoSep 21, 2015
12
@timonwong 在 python2 里,数字就三种类型,长整型,整型和浮点型, python3 里就只有两种,没有了长整型。真心建议楼主放下一些 c 系的思维去学 python ,去感受一下动态类型语言的好处。
|
|
ethegoSep 21, 2015
14
@timonwong 感觉像是历史遗留问题,我还是全力推荐面向对象的写法。我有朋友写 c 系的转写 python 一眼就能看出来,一股浓浓的、别扭的 c 系风,怎么看怎么难受。
|
|
18
|
|
TimePPTSep 21, 2015
20
2.7 以上建议用 format
|
|
21
https://docs.python.org/2/library/stdtypes.html#string-formatting
%u Obsolete type – it is identical to 'd'. See https://www.python.org/dev/peps/pep-0237/ |