Defining unicode variables in Python
最近,我一直在阅读关于python源代码编码的文章,特别是pep 263和pep 3120。
我有以下代码:
1 2 3 4 5 6 7 | # coding:utf-8 s = 'abc?′??' ? = 'My name is' ? = '??˙???? ???????' print('s =', s) print('? =', ?, '? =', ?) |
此代码对python3很好,但在python2.7中会导致
总之,我也很难弄清楚政治公众人物到底要解决什么务实问题,以及我如何(以及在哪里)利用提议的解决方案。我读过一些关于这个问题的讨论,但它们并没有回答我的问题,而是解释了正确的语法:
- 定义Python源代码编码的正确方法
- 在python源代码中使用utf-8编码
- 这是从哪里来的?*-编码:utf-8-*-
- "-*-编码:utf-8-*-"也是Python中的注释吗?
不支持,python2只支持ASCII名称。从语言参考:
1 2 3 4 5 | identifier ::= (letter|"_") (letter | digit |"_")* letter ::= lowercase | uppercase lowercase ::= "a"…"z" uppercase ::= "A"…"Z" digit ::= "0"…"9" |
与长得多的python 3版本相比,它有完整的unicode名称。
PEPS解决的实际问题是,以前,如果源文件(比如在Unicode字符串中)中出现超过127个字节,那么Python就无法知道这意味着什么字符,因为它可能是任何编码。现在默认情况下它被解释为UTF-8,并且可以通过添加这样的头进行更改。
我不认为这两篇文章是关于在变量名是beta符号的意义上进行编码,而是关于变量值中的编码。
因此,如果您将代码更改为这个示例:
1 2 3 4 5 6 7 8 | #!/usr/bin/env python # -*- coding: utf-8 -*- a = 'abc?′??' b = 'My name is' c = '°?????? ???????' print 'a =', a # by the way, the brackets are only used in python 3, so they are also being displayed when running the code in python 2.7 print 'b =', b, 'c =', c |
希望能回答你的问题
问候语框架