Python – 根据存储为字符串变量的 Unicode 名称打印一个字符
Python – Print a character based on Unicode name stored as a string variable
我正在尝试制作一个脚本,根据它们的 Unicode 名称打印一组字符(我所说的 'Unicode name' 的意思是我想使用字符的 'description',而不是代码点).
我知道对单个角色执行此操作的标准方法是:
>>> 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)
输出为:
α
φ
问题是无论我尝试什么(到目前为止),我都无法使用存储为字符串变量的名称打印 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)
当我尝试时出现这种语法错误:
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}')
的解释不同?
这对你有用吗?
unicode_names = ['\N{GREEK SMALL LETTER ALPHA}', '\N{GREEK SMALL LETTER PHI}']
for name in unicode_names:
print(f"{name}")
您正在查找 unicodedata.lookup
函数。
>>> 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 名称打印一组字符(我所说的 'Unicode name' 的意思是我想使用字符的 'description',而不是代码点).
我知道对单个角色执行此操作的标准方法是:
>>> 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)
输出为:
α
φ
问题是无论我尝试什么(到目前为止),我都无法使用存储为字符串变量的名称打印 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)
当我尝试时出现这种语法错误:
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}')
的解释不同?
这对你有用吗?
unicode_names = ['\N{GREEK SMALL LETTER ALPHA}', '\N{GREEK SMALL LETTER PHI}']
for name in unicode_names:
print(f"{name}")
您正在查找 unicodedata.lookup
函数。
>>> 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))