python一道关于标识符检查的题

题目

标识符合法性检查,要求如下:
1.首字母以及后续字母要用字母、数字或者下划线表示
2.如果输入的字符为python关键字能判定输入的字符是关键字并且输出格式如下(检查无误并且是关键字!)

import string
import keyword

checkedchar = input('请输入将要检查的字符串: ')
checkchar = string.ascii_letters + '_' + string.digits
specialchar = keyword.kwlist

if len(checkedchar) == 1:
    if checkedchar not in checkchar:
        print('Error!')
    else:
        print('NoError')
if len(checkedchar) > 1:
    for i in range(len(specialchar) - 1):
        if checkedchar == specialchar[i]:
            print('检查无误并且是关键字!')
    if checkedchar[0] not in checkchar:
        print('输入格式错误并且第一位就错了!')
    else:
        for otherchar in checkedchar[1:]:
            if otherchar not in checkchar:
                print('输入格式错误!')
                break
        else:
            print('输入格式没有错误!')

注意python中不允许把关键字用来做标识符。因此在这里我们用keyword模块中的keyword.kwlist生成一个包含所有关键字的列表,如果输入有关键字可以用循环来判定。

for otherchar in checkedchar[1:]:

这一段代码中要注意字符串也是可迭代对象,因此这段代码可以访问chackedcahr中除了第一个字母意外的任意一个字母并在循环中进行判断。输出结果如下:

请输入将要检查的字符串: def
检查无误并且是关键字!
输入格式没有错误!
请输入将要检查的字符串: ***
输入格式错误并且第一位就错了!
请输入将要检查的字符串: 1
NoError
请输入将要检查的字符串: 111
输入格式没有错误!
请输入将要检查的字符串: 1**
输入格式错误!

为了容易判别程序可能出现的错误,可以在打印错误结果时打印出不同的文字。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值