2013-11-20 80 views
1



我试图打印出一些unicode符号,可以说从U + 2660到U + 2667。 有了一个没有任何问题,我只是写:
Python 3.x和打印Unicode符号

print('\u2660') 

但是当我要打印设置在环(或一个,而是依赖从变量)的符号,类似的东西不起作用:

for i in range(2660, 2668): 
    print('\u{}'.format(i)) 

我想的Python会先执行.format和替换功能{}同号,再看看里面是什么报价,并打印出来。它没有,我不明白为什么。 :)
请帮帮忙,
TIA
Wiktor的

+2

* *当Python解析/评估字符串文字时发生''u''转义。这*之前*格式甚至可以在结果字符串上调用。 – user2864740

回答

2

Unicode转义的解析是在编译时进行,而不是运行时。

for i in range(0x2660, 0x2668): 
    print(chr(i)) 
+0

@JoshLee:好的,谢谢。 –

+0

哇,伙计们,你比光明快。 :)谢谢@Ignacio和@ user2864740。这解释了一切。我重新设计了我的脚本,现在它使用'chr(hex_num)'而不是''\ uhex_num''。问题解决了! – wkm