关于逗号的一个小问题。(新手求解答)

2012-04-12 05:21:20

line1=raw_input(">"),
file1.write(line1)

提示错误:

file1.write(line1)行
TypeError: expceted a character buffer object

去掉逗号之后,能够正常运行。
因为之前记得说逗号有起到一个不换行的作用。
逗号具体有什么作用呢。
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
2012-04-13
  • 打赏
  • 举报
回复
一会再看下,谢谢各位了。刚学,很多问题都很幼稚吧。
篾匠 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

input(">"),增加逗号代表增加最终输入结果,最终得到元组类型,如:
line1=raw_input(">"),'b','c';
如果输入'a',则line1的值为('a','b','c');

而file.write方法不能写元组的,所以报上面的错误。

Python code

>>> line1=raw_input(">"),
>>> type(line1);
<cla……
[/Quote]

顶!
完全正确!
添加逗号, 就会弄出一个元组:
x = 1, #这样的话, x就是tuple类型的了, 可用type(x)查看
#如果不加逗号, x就会是int类型的了

回到楼主的问题,line1=raw_input(">"),
raw_input函数, 返回str, 加逗号, 则line1变成了一个元组, 只有一个str类型的元素

参考这里:http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences
libralibra 2012-04-12
  • 打赏
  • 举报
回复
逗号主要用在tuple,list,dict元素的分割
或者print的时候不换行输出
老牛同学 2012-04-12
  • 打赏
  • 举报
回复
input(">"),增加逗号代表增加最终输入结果,最终得到元组类型,如:
line1=raw_input(">"),'b','c';
如果输入'a',则line1的值为('a','b','c');

而file.write方法不能写元组的,所以报上面的错误。


>>> line1=raw_input(">"),
>>> type(line1);
<class 'tuple'>
>>> line1
('abc',)

可以看出,line1是一个元组。
angel_su 2012-04-12
  • 打赏
  • 举报
回复
貌似是print语句时才有的功能...
篾匠 2012-04-12
  • 打赏
  • 举报
回复
续行符, 是"\", 不是逗号

逗号的作用么, 主要是分隔元素吧
分隔函数参数, fk(a, b)
分隔list, tuple等的元素:
l = [ 1,2,'Kao' ]
t = ( 1,2,"Kao" )
x,y = y,x
return x, y

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧