判断变量名是否合法python_用Python来检查变量名是否有效

在Python 3中,您可以使用

str.isidentifier()来测试给定字符串是否是有效的Python标识符/名称.

>>> 'X'.isidentifier()

True

>>> 'X123'.isidentifier()

True

>>> '2'.isidentifier()

False

>>> 'while'.isidentifier()

True

最后一个示例显示您还应检查变量名称是否与Python关键字冲突:

>>> from keyword import iskeyword

>>> iskeyword('X')

False

>>> iskeyword('while')

True

所以你可以把它放在一个函数中:

from keyword import iskeyword

def is_valid_variable_name(name):

return name.isidentifier() and not iskeyword(name)

另一个在Python 2和3中工作的选项是使用ast模块:

from ast import parse

def is_valid_variable_name(name):

try:

parse('{} = None'.format(name))

return True

except SyntaxError, ValueError, TypeError:

return False

>>> is_valid_variable_name('X')

True

>>> is_valid_variable_name('123')

False

>>> is_valid_variable_name('for')

False

>>> is_valid_variable_name('')

False

>>> is_valid_variable_name(42)

False

这将解析赋值语句而不实际执行它.它将选择无效标识符以及尝试分配给关键字.在上面的代码中,None是分配给给定名称的任意值 – 它可以是RHS的任何有效表达式.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值