如何在python中获得字符?

我怎样才能得到° (度)string?

把这条线放在你的源头

 # -*- coding: utf-8 -*- 

如果您的编辑器使用不同的编码,请replaceutf-8

那么你可以直接在源代码中包含utf-8字符

这是指定unicode字符的编码最友好的版本:

 degree_sign= u'\N{DEGREE SIGN}' 

注意:必须是\N构造中的大写N,以避免与'\ n'换行符混淆。 花括号内的字符名称可以是任何情况。

记住一个字符的名字比它的Unicode索引更容易。 它也更易读,易于debugging。 字符replace发生在编译时: .py[co]文件将包含u'°'的常量:

 >>> import dis >>> c= compile('u"\N{DEGREE SIGN}"', '', 'eval') >>> dis.dis(c) 1 0 LOAD_CONST 0 (u'\xb0') 3 RETURN_VALUE >>> c.co_consts (u'\xb0',) >>> c= compile('u"\N{DEGREE SIGN}-\N{EMPTY SET}"', '', 'eval') >>> c.co_consts (u'\xb0-\u2205',) >>> print c.co_consts[0] °-∅ 
 >>> u"\u00b0" u'\xb0' >>> print _ ° 

顺便说一句,我所做的只是在Google上search“unicode学位”。 这带来了两个结果:“度符号U + 00B0”和“摄氏度U + 2103”,它们实际上是不同的:

 >>> u"\u2103" u'\u2103' >>> print _ ℃ 

上面的答案假设UTF8编码可以安全地使用 – 这个是专门针对Windows的。

Windows控制台通常使用CP850编码,而不是 utf-8,所以如果您尝试使用utf8编码的源文件,则会得到这两个(不正确的)字符,而不是度数°

演示(在Windows控制台中使用python 2.7):

 deg = u'\xb0` # utf code for degree print deg.encode('utf8') 

有效输出┬░

修复:只需强制正确的编码(或更好地使用unicode):

 local_encoding = 'cp850' # adapt for other encodings deg = u'\xb0'.encode(local_encoding) print deg 

或者如果您使用明确定义编码的源文件:

 # -*- coding: utf-8 -*- local_encoding = 'cp850' # adapt for other encodings print " The current temperature in the country/city you've entered is " + temp_in_county_or_city + "°C.".decode('utf8').encode(local_encoding) 

只需使用\xb0 (in a string); python会自动转换它