Python论坛  - 讨论区

标题:Re: [python-chinese] 请教关于unicode的问题

2005年07月17日 星期日 09:36

limodou limodou at gmail.com
Sun Jul 17 09:36:25 HKT 2005

之所以报错我试了,是因为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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年07月17日 星期日 12:42

Light light_zls at 163.com
Sun Jul 17 12:42:38 HKT 2005

貌似这个问题前面讨论过的吧?
之所以报错是因为他的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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号