2013-11-20 111 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