给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
【注意: 如果输入的大于了5位数要求用户重新输入】
def weishu(num):
n=1
while True:
num//=10
if(num==0):
break
else:
n+=1;
return n;
def nixu(num):
res=weishu(num);
a=num%10;
b=num//10%10;
c=num//100%10;
d=num//1000%10;
e=num//10000;
if(res==5):
print('逆序为',a,b,c,d,e,sep='');
elif(res==4):
print('逆序为',a,b,c,d,sep='');
elif(res==3):
print('逆序为',a,b,c,sep='');
elif(res==2):
print('逆序为',a,b,sep='');
else:
print('逆序为',a);
while True:
num1=int(input('输入一个不多于五位的正整数:'));
while(weishu(num1)>5):
print('请输入不多于五位的数字,输入错误,重新输入');
break;
else:
print('这是一个',weishu(num1),'位数');
nixu(num1);
逆序那一步可以换一种写法:
def weishu(num):
n=1;
while True:
num//=10;
if(num==0):
break;
else:
n+=1;
return n;
def nixu(num):
sum=weishu(num);
for i in range(1,sum+1):
if(num%10!=0):
a=num%10;
num//=10;
print(a,end='');
print('');
while True:
num1=int(input('输入一个不多于五位的正整数:'));
while(weishu(num1)>5):
print('请输入不多于五位的数字,输入错误,重新输入');
break;
else:
print('这是一个',weishu(num1),'位数');
nixu(num1);
这种逆序写法比较好