給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。 【注意: 如果輸入的大於了5位數要求使用者重新輸入】
阿新 • • 發佈:2019-02-15
給一個不多於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);
這種逆序寫法比較好