,换成了+为什么就不行了?
我将 print x[0]+':',x[1]
变成 print x[0]+':'+x[1]
为什么就无法输出了?
我将 print x[0]+':',x[1]
变成 print x[0]+':'+x[1]
为什么就无法输出了?
2016-05-11
不得不用加粗说明了,大家的热情可嘉,可是如果自己没有确切的答案 还答复的话,实在是一种干扰,抱歉这么没有礼貌。
答案:
在Python 中, 加号主要有这么两种用处:
第一: 数字的加法
第二:拼接,字符串拼接,列表拼接,元组拼接, 呃 其他待补充。。
## 加法 print 1+1 2 ## 拼接 print "hello"+" world" "hello world" print [1,2]+[3,4] [1, 2, 3, 4] print (1,2)+(3,4) (1, 2, 3, 4)
但是,如果用加号 连接不同类型的值的时候 就会出错了, 比如 字符串 + 数字:
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)]) for x in s: print x[0],':'+x[1] ## 此处, ':' 是字符串, 而x[1] 则是数字 , 会报如下错误: TypeError: Can't convert 'int' object to str implicitly 类型错误: 不能 隐性的将int对象 转化成 str。 ## 这个错误什么意思呢?
跳出来说吧, 因为我们 让字符串 加 数字(字符串 + 数字), 对于解释器来说, 它先看到了字符串,然后看到了加号, 这时,解释器就期待 加号后面仍然为 字符串, 但是它却遇到了 数字, 这时候它就抱怨说: “不好意思,我不能自主的将数字转化成字符串(隐性转化的意思就是 代码没有明确的说明要转换,而解释器或者编译器自动转换; 而Python 是不支持 int 和 str 之间的隐性转换的)”
所以总结就是,之所以不对, 跟格式要求没啥关系, 就是 加号 的用法问题。
当然 x[0] 与 ":" 直接之所以能用 加号, 至此,题主应该没有疑惑了吧。
举报