python的两种不同print print , 加逗号和print "%s %s" 不一样
2017-08-07 15:18
423 查看
对于两种实际结果显示一样的写法
print a,b 和 print "%s %s"
他们两个内部其实是不一样的。。。
print a,b 我认为相当于调用 print a 然后print b 然后 print c,每次都单独执行了一个print
而print "%s %s" % (a,b) 就是一次执行完,只执行了一次print
为什么这样说 ??在windows环境下,py2.7,来看这样一个例子
代码如下
>>> a , b = "中", u"文"
>>> print a,b
中 文
>>>
>>> print "%s %s" % (a, b)
看看出错的效果吧~~
下面那个print的效果,应该是相当于 a+b ,试试看a+b也会出现相同的错
因为
>>> a
'\xe4\xb8\xad'
>>>
>>> b
u'\u6587'
>>>
a,b 不一样,没办法相加
要相加,要同时能被打印,要根据平台解码或者编码成一样的才行,比如说
>>> print "%s %s" % (a.decode("gbk"), b)
中 文
>>>
>>>
>>> print "%s %s" % (a, b.encode("gbk"))
中 文
>>>
>>>
很神奇吧。
这里的decode 和 encode 的主语是,【二进制】
【二进制】解码
【二进制】编码
\x 就是16进制
(mac和linux小伙伴,把对应的gbk改成utf-8就好了)
print a,b 和 print "%s %s"
他们两个内部其实是不一样的。。。
print a,b 我认为相当于调用 print a 然后print b 然后 print c,每次都单独执行了一个print
而print "%s %s" % (a,b) 就是一次执行完,只执行了一次print
为什么这样说 ??在windows环境下,py2.7,来看这样一个例子
代码如下
>>> a , b = "中", u"文"
>>> print a,b
中 文
>>>
>>> print "%s %s" % (a, b)
看看出错的效果吧~~
下面那个print的效果,应该是相当于 a+b ,试试看a+b也会出现相同的错
因为
>>> a
'\xe4\xb8\xad'
>>>
>>> b
u'\u6587'
>>>
a,b 不一样,没办法相加
要相加,要同时能被打印,要根据平台解码或者编码成一样的才行,比如说
>>> print "%s %s" % (a.decode("gbk"), b)
中 文
>>>
>>>
>>> print "%s %s" % (a, b.encode("gbk"))
中 文
>>>
>>>
很神奇吧。
这里的decode 和 encode 的主语是,【二进制】
【二进制】解码
【二进制】编码
\x 就是16进制
(mac和linux小伙伴,把对应的gbk改成utf-8就好了)
相关文章推荐
- python的文件格式有两种,"*.py"和"*.pyw",它们有什么不同
- python两种不同连接数据库方式
- 如何在Python2中实现 print("String",end="")
- python print'hello' File "<stdin>",line 1 print 'hello' SyntaxError:invalid syntax
- python print'hello' File "<stdin>",line 1 print 'hello' SyntaxError:invalid syntax
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- python2.X中print不输出回车的两种方法
- cocos2d::CCFileUtils::sharedFileUtils()->getFileData(szFile, "r", &bufferSize) 不同平台返回值不一样
- Python - "print()"函数 中 "%" 后面字母的意义
- python学习笔记之 print加逗号
- print在python3和python2中的不同
- Python - "print()"函数 中 "%" 后面字母的意义
- php项目有负载,$_SERVER['HTTP_X_FORWARDED_FOR']函数在不同系统中获取到的值形式不一样,ios系统苹果手机只能获取到一个ip(113.87.214.xxx),而安卓手机获取到的是2个ip中间逗号隔开的形式(113.87.214.xxx , xxx.xxx.xxx.xxx)
- Python print 中的逗号小技巧
- python print 按逗号或空格分隔的方法
- Python print "hello world" SyntaxError: invalid syntax
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
- 总结python实现父类调用两种方法的不同
- python 状态机语句"Python is fun"褒贬义判断的两种实现方式
- python报错 print "hello" SyntaxError: Missing parentheses in call to 'print'