defprintBit():print("------------------------")try:
num=int(input("input your num\n"))except ValueError:print("你输入的数字有误,请重新输入")
exit(-1)
testnum =10000
bitnum =5if((num // testnum)>9):print("您输入的位数大于5位,请重新输入")else:while((num//testnum)==0):
bitnum -=1
testnum /=10print("输入的数位数为",bitnum,"位")
divide_num=pow(10,bitnum-1)
thisset=[]while(bitnum):
i=num // divide_num
num = num - i*divide_num
divide_num /=10
bitnum-=1
thisset.append(i)
b=1for j in thisset:print("从左到右第%d位数为%d"%(b,j))
b+=1if __name__ =='__main__':
printBit()
运行结果
------------------------input your num
0020345
输入的数位数为 5 位
从左到右第1位数为2
从左到右第2位数为0
从左到右第3位数为3
从左到右第4位数为4
从左到右第5位数为5
方法二(将用户输入作为字符串处理)
分析
去点数字前面的0
利用len(),判断数字长度
利用for,依次获取输入数字的各个数
源码
import re
num =input("请输入一个数字\n")
num = re.sub("^0*","",num)if num.isdigit()isFalse:print("您的输入不合法,请重新输入")
exit(-1)print("您输入的数字位数为%d"%len(num))
k =1for i in num:print("从左到右第%d为%s"%(k,i))
k+=1