2005年07月17日 星期日 09:36
之所以报错我试了,是因为raw_input本身不支持unicode。并不是所有的函数都可以使用unicode的。 在 05-7-17,Charie Qie<crwenxue at hotmail.com> 写道: > 请问写成guess = int(raw_input (u"把要猜的数字写在这里:")) 这样对吗?但用 > shell编译py文件时候这样无法编译,而不加u仍然会有不影响使用的错误提示。就像下 > 面你所说的提示: > > "程序文件的编码问题就是为了非英语的编码而设计的。如果你不写,缺省认为是 > ascii码,因此当编译遇到字符大于127的字符时(汉字最高位为1,因此大于128)就会 > 打印一个警告,但不会影响运行。" > > 然而这个提示在事先编写了# coding = cp936 的情况下仍然会出现,并且在guess = > int(raw_input ("把要猜的数字写在这里:"))这样的语句出现的时候好像不能避免, ( > 不加u有错误提示,在字符串前加u无法编译)不知道能不能解决? > > > >From: limodou <limodou at gmail.com> > >Reply-To: limodou <limodou at gmail.com> > >To: Charie Qie <crwenxue at hotmail.com> > >Subject: Re: [python-chinese] 请教关于unicode的问题 > >Date: Sat, 16 Jul 2005 09:35:11 +0800 > > > >因为u是用来修饰字符串的,就象r一样,它必须与字符串写在一个,而你的: > > > >u("把要猜的数字写在这里:") > > > >这样其实是把u变成了一个函数,当然会报错。 > > > >在 05-7-15,Charie Qie<crwenxue at hotmail.com> 写道: > > > > > > 十分感谢。 > > > 我发现 guess = int(raw_input ("把要猜的数字写在这里:")) 如果加u改成 > > > guess = int(raw_input u("把要猜的数字写在这里:")) 编译时总出错,而下面的 > 语句 > > > print '完毕' 改成 print u'完毕' 却没有任何问题,请问是如何造成的? > > > > > > > > > > > > >From: limodou <limodou at gmail.com> > > > >Reply-To: limodou <limodou at gmail.com>, python-chinese at lists.python.cn > > > >To: python-chinese at lists.python.cn > > > >Subject: Re: [python-chinese] 请教关于unicode的问题 > > > >Date: Fri, 15 Jul 2005 22:55:02 +0800 > > > > > > > >程序文件的编码问题就是为了非英语的编码而设计的。如果你不写,缺省认为是 > ascii > > > 码,因此当编译遇到字符大于127的字符时(汉字最高位为1,因此大于128)就会打 > 印一 > > > 个警告,但不会影响运行。如果在程序文件中使用u则在编译时python会自动进行 > 编码 > > > 转换。但需要注意的是你需要在开头写上#coding=cp936之类的文件编码的声明, > > > python才会转换成功。如果出错,一般检查你的头是否写得正确,再有文件是否是 > 用声 > > > 明的编码保存的。 > > > > > > > >在 05-7-15,Charie Lie<crwenxue at hotmail.com> 写道: > > > > > 请问在IDLE中为什么只要先声明 # coding = cp936 语句中写不写 U 都可以 > 正常 > > > 显示 > > > > > 中文,但在shell(windows CMD)中如果写了 U 反而报错? > > > > > > > > > > 这是shell里不打u的报错, > > > > > sys:1: DeprecationWarning: Non-ASCII character '\xb0' in file > > > > > D:\Python24\if.py > > > > > on line 4, but no encoding declared; see > > > > > http://www.python.org/peps/pep-0263.htm > > > > > l for details > > > > > 但后面可以正常运行, > > > > > > > > > > 而打了u以后就不能运行了,错误信息是 > > > > > sys:1: DeprecationWarning: Non-ASCII character '\xb0' in file > > > > > D:\Python24\if.py > > > > > on line 4, but no encoding declared; see > > > > > http://www.python.org/peps/pep-0263.htm > > > > > l for details > > > > > Traceback (most recent call last): > > > > > File "D:\Python24\if.py", line 4, in ? > > > > > abc = int(raw_input(u'我要写得文字:')) > > > > > UnicodeEncodeError: 'ascii' codec can't encode characters in > position > > > 0-19: > > > > > ordi > > > > > nal not in range(128) > > > > > > > > > > 程序本身没问题,我只是想知道在写代码时候一般情况应该如何解决unicode > 文字 > > > 的问 > > > > > 题。 > > > > > 因为我初学看到一个教程里没有提及很详细,又看到这两天在讨论这个问题就 > 顺便 > > > 问问 > > > > > ,感谢回答。 > > > > > > > > > > _________________________________________________________________ > > > > > 与联机的朋友进行交流,请使用 MSN Messenger: > http://messenger.msn.com/cn > > > > > > > > > > _______________________________________________ > > > > > python-chinese list > > > > > python-chinese at lists.python.cn > > > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > > > > > > > >-- > > > >I like python! > > > >My Donews Blog: http://www.donews.net/limodou > > > >New Google Maillist: http://groups-beta.google.com/group/python-cn > > > >_______________________________________________ > > > >python-chinese list > > > >python-chinese at lists.python.cn > > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > _________________________________________________________________ > > > 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn > > > > > > > > > > > >-- > >I like python! > >My Donews Blog: http://www.donews.net/limodou > >New Google Maillist: http://groups-beta.google.com/group/python-cn > > _________________________________________________________________ > 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn > > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月17日 星期日 12:42
貌似这个问题前面讨论过的吧? 之所以报错是因为他的coding那一行写错了,中间是不能留空格的。 写成 # coding=cp936 guess = int(raw_input ("把要猜的数字写在这里:")) print guess 就没有问题了。 在 2005年7月17日 星期日 09:36,limodou 写道: > 之所以报错我试了,是因为raw_input本身不支持unicode。并不是所有的函数都可以使用unicode的。 > > 在 05-7-17,Charie Qie<crwenxue at hotmail.com> 写道: > > > 请问写成guess = int(raw_input (u"把要猜的数字写在这里:")) 这样对吗?但用 > > shell编译py文件时候这样无法编译,而不加u仍然会有不影响使用的错误提示。就像下 > > 面你所说的提示: > > > > "程序文件的编码问题就是为了非英语的编码而设计的。如果你不写,缺省认为是 > > ascii码,因此当编译遇到字符大于127的字符时(汉字最高位为1,因此大于128)就会 > > 打印一个警告,但不会影响运行。" > > > > 然而这个提示在事先编写了# coding = cp936 的情况下仍然会出现,并且在guess = > > int(raw_input ("把要猜的数字写在这里:"))这样的语句出现的时候好像不能避免, ( > > 不加u有错误提示,在字符串前加u无法编译)不知道能不能解决? > > > > >From: limodou <limodou at gmail.com> > > >Reply-To: limodou <limodou at gmail.com> > > >To: Charie Qie <crwenxue at hotmail.com> > > >Subject: Re: [python-chinese] 请教关于unicode的问题 > > >Date: Sat, 16 Jul 2005 09:35:11 +0800 > > > > > >因为u是用来修饰字符串的,就象r一样,它必须与字符串写在一个,而你的: > > > > > >u("把要猜的数字写在这里:") > > > > > >这样其实是把u变成了一个函数,当然会报错。 > > > > > >在 05-7-15,Charie Qie<crwenxue at hotmail.com> 写道: > > > > > > > 十分感谢。 > > > > 我发现 guess = int(raw_input ("把要猜的数字写在这里:")) 如果加u改成 > > > > guess = int(raw_input u("把要猜的数字写在这里:")) 编译时总出错,而下面的 > > > > 语句 > > > > > > print '完毕' 改成 print u'完毕' 却没有任何问题,请问是如何造成的? > > > > > > > > >From: limodou <limodou at gmail.com> > > > > >Reply-To: limodou <limodou at gmail.com>, > > > > > python-chinese at lists.python.cn To: > > > > > python-chinese at lists.python.cn > > > > >Subject: Re: [python-chinese] 请教关于unicode的问题 > > > > >Date: Fri, 15 Jul 2005 22:55:02 +0800 > > > > > > > > > >程序文件的编码问题就是为了非英语的编码而设计的。如果你不写,缺省认为是 > > > > ascii > > > > > > 码,因此当编译遇到字符大于127的字符时(汉字最高位为1,因此大于128)就会打 > > > > 印一 > > > > > > 个警告,但不会影响运行。如果在程序文件中使用u则在编译时python会自动进行 > > > > 编码 > > > > > > 转换。但需要注意的是你需要在开头写上#coding=cp936之类的文件编码的声明, > > > > python才会转换成功。如果出错,一般检查你的头是否写得正确,再有文件是否是 > > > > 用声 > > > > > > 明的编码保存的。 > > > > > > > > >在 05-7-15,Charie Lie<crwenxue at hotmail.com> 写道: > > > > > > > > > > > 请问在IDLE中为什么只要先声明 # coding = cp936 语句中写不写 U 都可以 > > > > 正常 > > > > > > 显示 > > > > > > > > > > 中文,但在shell(windows CMD)中如果写了 U 反而报错? > > > > > > > > > > > > 这是shell里不打u的报错, > > > > > > sys:1: DeprecationWarning: Non-ASCII character '\xb0' in > > > > > > file D:\Python24\if.py > > > > > > on line 4, but no encoding declared; see > > > > > > http://www.python.org/peps/pep-0263.htm > > > > > > l for details > > > > > > 但后面可以正常运行, > > > > > > > > > > > > 而打了u以后就不能运行了,错误信息是 > > > > > > sys:1: DeprecationWarning: Non-ASCII character '\xb0' in > > > > > > file D:\Python24\if.py > > > > > > on line 4, but no encoding declared; see > > > > > > http://www.python.org/peps/pep-0263.htm > > > > > > l for details > > > > > > Traceback (most recent call last): > > > > > > File "D:\Python24\if.py", line 4, in ? > > > > > > abc = int(raw_input(u'我要写得文字:')) > > > > > > UnicodeEncodeError: 'ascii' codec can't encode characters > > > > > > in > > > > position > > > > > > 0-19: > > > > > > ordi > > > > > > nal not in range(128) > > > > > > > > > > > > 程序本身没问题,我只是想知道在写代码时候一般情况应该如何解决unicode > > > > 文字 > > > > > > 的问 > > > > > > > > > > 题。 > > > > > > 因为我初学看到一个教程里没有提及很详细,又看到这两天在讨论这个问题就 > > > > 顺便 > > > > > > 问问 > > > > > > > > > > ,感谢回答。 > > > > > > > > > > > > ___________________________________________________________ > > > > > >______ 与联机的朋友进行交流,请使用 MSN Messenger: > > > > http://messenger.msn.com/cn > > > > > > > > _______________________________________________ > > > > > > python-chinese list > > > > > > python-chinese at lists.python.cn > > > > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > >-- > > > > >I like python! > > > > >My Donews Blog: http://www.donews.net/limodou > > > > >New Google Maillist: > > > > > http://groups-beta.google.com/group/python-cn > > > > > _______________________________________________ > > > > >python-chinese list > > > > >python-chinese at lists.python.cn > > > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > > _______________________________________________________________ > > > >__ 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn > > > > > >-- > > >I like python! > > >My Donews Blog: http://www.donews.net/limodou > > >New Google Maillist: http://groups-beta.google.com/group/python-cn > > > > _________________________________________________________________ > > 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn
Zeuux © 2025
京ICP备05028076号