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:
  ...
'''

 

转载于:https://www.cnblogs.com/zhang-teng/p/5963122.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值