判断输入的数字是几位数

制作一个输入1-999的自然数,然后判断该数是几位数的程序
如果输入的数字不是1-999的自然数,则必须出现错误输入的提示
使用if句进行编程
用中文数字一二三表示位数应该怎么编程呀?
例:请输入1-999中其中一个数字. :7
输入的数字7是一位数.
请输入1-999中其中一个数字. :300
输入的数字7是三位数.


import re
a = input("please input your num\n")
a = re.sub("^0*","",a)  #如果字符前面出现了0,则将0剔除
if a.isdigit() == False:
    print("您的输入中含有非法字符串,请输入数字,不要含有别的非法字符")
    exit(-1)
if len(a) > 5:
    print("您输入的数字大于五位数,请输入一个小于5位数字的数")
    exit(0)
print("您输入的数字的位数为%d"%len(a))

s=input('请输入1-999中其中一个数字. :')
if s.isdigit():
    n=int(s)
    if 0<n<1000:
        if len(s)==1:
            print('输入的数字{}是一位数'.format(n))
        elif len(s)==2:
            print('输入的数字{}是两位数'.format(n))
        else:
            print('输入的数字{}是三位数'.format(n))
            
    else:
        print('输入错误')
else:
    print('输入错误')

我之前的回答,直接用逻辑判断

 
x = int(input())
f = lambda x: "你输入的数字是一位数" if 1 <= x <= 9 else "你输入的数字是二位数" if 10 <= x <= 99 else "你输入的数字是三位数" if 100 <= x <= 999 else "输入错误!请输入1-999"
print(f(x))