簡體   English   中英

Python – 根據存儲為字符串變量的 Unicode 名稱打印字符

[英]Python – Print a character based on Unicode name stored as a string variable

我正在嘗試制作一個腳本,該腳本根據其 Unicode 名稱打印一組字符(我所說的“Unicode 名稱”是我想使用字符的“描述”,而不是代碼點)。

我知道為單個字符執行此操作的標准方法是:

>>> print('\N{GREEK SMALL LETTER PHI}')
φ

我的目標是使用這樣的 for 循環:

unicode_names = ['GREEK SMALL LETTER ALPHA', 'GREEK SMALL LETTER PHI']
for name in unicode_names:
    char_name = "{{{0}}}".format(name)
    print('\N' + char_name)

output 將是:

α
φ

問題是,無論我嘗試什么,(到目前為止),我都無法使用存儲為字符串變量的名稱打印 unicode 字符,無論是通過字符串連接還是使用.format()方法。

phi = '\N{GREEK SMALL LETTER PHI}'
phi_name = "{{{0}}}".format('GREEK SMALL LETTER PHI')
print(phi)
print(phi_name)
print('\N' + phi_name)

當我嘗試時,我得到了這種 SyntaxError:

    print('\N' + phi_name)
          ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: malformed \N character escape

我應該使用 f 字符串還是其他類型的特殊字符串? 為什么print('\N{GREEK SMALL LETTER PHI}')的解釋與print('\N' + '{GREEK SMALL LETTER PHI}')不同?

您正在尋找unicodedata.lookup function。

>>> import unicodedata
>>> unicodedata.lookup('GREEK SMALL LETTER PHI')
'φ'

下面是如何使用unicodedata的演示:

import unicodedata
unicode_names = ['GREEK SMALL LETTER ALPHA', 'GREEK SMALL LETTER PHI']
for name in unicode_names:
    print (name, unicodedata.lookup(name))

這對你有用嗎?

unicode_names = ['\N{GREEK SMALL LETTER ALPHA}', '\N{GREEK SMALL LETTER PHI}']
for name in unicode_names:
    print(f"{name}")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM