大学 Python 程序设计实验报告:判断变量名是否合法
编写程序,输入一个变量名,判断变量名是否符合标识符的定义?
标识符要求:标识符可以由字母,数字或者下划线组成;
并且只能以字母或者下划线开头。
运行效果参考如下:
请输入一个变量名:_123
123 是一个合法的变量名
请输入一个变量名:1sfa
1sfa 不是一个合法的变量名
程序源代码:使用正则表达式
import re
def 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 Falsereturn True
name = input("请输入一个变量名: ")
if is_valid(name):print(f"{name} 是一个合法的变量名")
else:print(f"{name} 不是一个合法的变量名")
以上程序代码没有考虑关键字,关键字不能作为变量名。
程序源代码:keyword 模块
import keyword
def is_valid(name):if name.isidentifier() and not keyword.iskeyword(name):return Truereturn False
name = input("请输入一个变量名: ")
if is_valid(name):print(f"{name} 是一个合法的变量名")
else:print(f"{name} 不是一个合法的变量名")
isidentifier() 方法:
检查字符串是否是有效标识符。
如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格。
keyword.iskeyword():
检查字符串是否是关键字。