zoukankan      html  css  js  c++  java
  • Python 字符串_标识符判断

    # 标题:输入一个字符串标识符,判断这个标识符是否合法?
    # 标识符:首字符必须是字母或下划线,后面的字符只能是字母、数字、下划线
    # 不能是关键字(可以用keyword模块,iskeyword判断是不是关键字,kwlist所有的关键字列表)

    import string
    import keyword

    alphas = string.ascii_letters + '_'
    nums = string.digits
    myInput = input("Identifier to test>")
    len_s = len(myInput)

    if len_s > 1:
     #先判断是不是关键字,再判断首字符是不是合法,合法再继续判断后面的字符是不是合法。
     if myInput not in keyword.kwlist:
      if myInput[0] not in alphas:
       print("invalid identifier")
      else:
       for i in myInput[1:]:
        if i not in alphas+nums:
         print("invalid identifier")
         break
       else:
        print("%s is valid identifier" % myInput)
     else:
      print("%s is keyword!" % myInput)
    elif len_s == 1:
     if myInput in alphas:
      print("valid identifier")
     else:
      print("invalid identifier")
    else:
     print("请输入一个字符串标识符。")

    '''
    第19-24行是一个for-else语句,在整个for循环里没有遇到break时测执行else。

    性能提示:第20行if语句里有两个字符串合并的操作,被合并的字符串从始至终都没变过,在for循环里每次执行都会计算一次,我们可以把这两个字符串存为一个新的字符串,每次引用新的字符串,而不用每次重复计算了。

    alphnums = alphas + nums
    for i in myInput[1:]:
     if i not in alphnums:
      ...
    '''

  • 相关阅读:
    (转)typedef用法
    (转)在用户空间发生中断时,上下文切换的过程
    (转)内核中断,异常,抢占总结篇
    (转)中断上下文和进程上下文的区别
    (转)C中的volatile用法
    (转)gcc学习笔记
    (转)C系程序员面试必知必会之大端小端
    (转)我在北京工作这几年 – 一个软件工程师的反省
    (转)忠告
    Linux下VLAN功能的实现 (转)
  • 原文地址:https://www.cnblogs.com/zhang-teng/p/5963122.html
Copyright © 2011-2022 走看看