创建一个函数,接收一个字符串参数,判断其做为Python标识符是否合法

具体要求:

  • 如果合法则输出 True,否则输出 False。
  • 如果该字符串与Python内置的关键字,或Bifs冲突,则打印'conflict'
  • 注:Python标识符的规则,关键字和Bifs可搜索得到
import keyword #需要使用内置的关键字模块
import string  #需要使用字符串模块
import builtins #导入内置函数模块
def is_signal(s): #定义判别函数,接收的参数是main中的s 
    kw = keyword.kwlist #kw是内置关键字的列表,如:'True', 'and', 'as'
    bi = dir(__builtin__) #bi是内建函数名称列表,如'__package__', '__spec__', 'abs',内建函数与关键字不同,
    if s in kw or s in bi:#如果字符串在关键字列表中或内建函数中,则显示冲突
        print ('conflict')
        return 0      
    elif s[0] == '_' or s[0] in string.ascii_letters: # 判断是否为字母或下划线开头
        for i in s:
            if i == '_' or i in string.ascii_letters or i in string.digits: # 判断是否由字母数字或下划线组成,
                pass  #u_88,_rr,
            else:
                return 0  #%$#
        return 1
    else:
        return 0 #33t
def main():
    s = input() #接收一个字符串参数
    if is_signal(s) == 1:#如果判断标识符合法的函数返回1
        print("True")#打印true
    else:
        print("False")#否则false
if __name__ == '__main__':#防止在被其他文件导入时显示多余的程序主体部分
    main()

 

你可能感兴趣的:(Python)