1.Python中的标识符必须满足:
- 首个字符以字母或下划线开头
- 后面的字符可以是字母、下划线或者数字
2.导入的模块:import string
需要用到模块string中如下函数:
- string.ascii_letters
>>>string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- string.digits
>>> string.digits
'0123456789'
3.程序
# 标识符检查:首先以字母或下划线开头,后面跟字母、下划线或者数字
import string
alphas = string.ascii_letters + '_'
nums = string.digits
allchar = alphas + nums
Flag = 0 #设个标志位
myInput = input('Identifier to test?')
if len(myInput) > 1: #要求输入的标识符长度至少为2
if myInput[0] in alphas :
for others in myInput[1:]:#遍历剩下的字符
if others in allchar :
Flag = 1
else:
Flag = 0
break
if Flag == 1:
print('输入的是合法标识符')
else:
print('输入的是非法标识符')
else:
print('输入的是非法标识符')
else:
print('输入的是非法标识符')
4.缺点
- 输入的表示标识符的长度必须大于1。
- 没有考虑到Python的关键字,这些关键字是不允许做标识符的。如数据类型中的int。
从性能的角度考虑,上面的循环操作把大把时间都浪费到了重复计算字符串的长度上。
上述缺点留给机智的你们来完善咯~