编写程序,输入一个变量名,判断变量名是否符合标识符的定义?
标识符要求:标识符可以由字母,数字或者下划线组成;
并且只能以字母或者下划线开头。
运行效果参考如下:
请输入一个变量名:_123
123 是一个合法的变量名
请输入一个变量名:1sfa
1sfa 不是一个合法的变量名
「程序源代码:使用正则表达式」
import redef is_valid(name): # 检查变量名是否以字母或下划线开头 if not name[0].isalpha() and not name.startswith('_'): return False # 检查变量名是否包含数字或其他非法字符 pattern = re.compile(r'[a-zA-Z_][a-zA-Z0-9_]*') if not pattern.match(name): return False return Truename = input("请输入一个变量名: ")if is_valid(name): print(f"{name} 是一个合法的变量名")else: print(f"{name} 不是一个合法的变量名")以上程序代码没有考虑关键字,关键字不能作为变量名。
「程序源代码:keyword 模块」
import keyworddef is_valid(name): if name.isidentifier() and not keyword.iskeyword(name): return True return Falsename = input("请输入一个变量名: ")if is_valid(name): print(f"{name} 是一个合法的变量名")else: print(f"{name} 不是一个合法的变量名")「isidentifier() 方法:」
检查字符串是否是有效标识符。
如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格。
「keyword.iskeyword():」
检查字符串是否是关键字。