Python字符串isidentifier()
时间:2020-02-23 14:43:27 来源:igfitidea点击:
如果字符串是根据Python语言定义的有效标识符,则Python String isidentifier()函数将返回True。
Python字符串isidentifier()
有效的标识符字符串可以是任何长度。
在Python 3.0之前,有效的标识符可以包含大写和小写字母A到Z,下划线_,以及第一个字符之外的数字0到9。
但是,Python 3.0引入了ASCII范围之外的其他字符,可用于创建标识符。
针对PEP-3131进行了此更改。
我们来看一些Python String isidentifier()函数的示例。
s = 'xyzABC' print(f'{s} is a valid identifier = {s.isidentifier()}')
输出:xyzABC是有效的标识符= True。
s = '0xyz' print(f'{s} is a valid identifier = {s.isidentifier()}')
输出:`0xyz是有效的标识符= False',因为标识符不能以数字0-9开头。
s = '' print(f'{s} is a valid identifier = {s.isidentifier()}')
输出:是一个有效的标识符= False
,因为标识符不能为空字符串。
s = '_xyz' print(f'{s} is a valid identifier = {s.isidentifier()}')
输出:`_xyz是一个有效的标识符= True',因为在标识符字符串中允许下划线成为第一个字符。
s = 'ꝗꞨꫳ' print(f'{s} is a valid identifier = {s.isidentifier()}')
输出:ꝗꞨꫳ是有效的标识符= True
由于PEP-3131会将这些其他非ASCII字符添加到有效标识符字符列表中,因此它是有效的标识符。
但是,如果您使用的是Python 2.x,它将返回False。
打印所有有效的标识符字符列表
我们可以使用unicodedata
来检查字符是否是有效标识符列表的一部分。
这是打印所有可用于创建标识符的有效字符的程序。
import unicodedata count = 0 for codepoint in range(2 ** 16): ch = chr(codepoint) if ch.isidentifier(): print(u'{:04x}: {} ({})'.format(codepoint, ch, unicodedata.name(ch, 'UNNAMED'))) count = count + 1 print(f'Total Number of Identifier Unicode Characters = {count}')
输出:
... ffd7: ᅲ (HALFWIDTH HANGUL LETTER YU) ffda: ᅳ (HALFWIDTH HANGUL LETTER EU) ffdb: ᅴ (HALFWIDTH HANGUL LETTER YI) ffdc: ᅵ (HALFWIDTH HANGUL LETTER I) Total Number of Identifier Unicode Characters = 48880