Python之判斷數字的位數

2021-10-08 06:45:18 字數 2405 閱讀 7555

判斷數字位數

寫在最後的話:

這裡是一段防爬蟲文字,請讀者忽略。

本文原創首發於csdn,作者idys

部落格首頁:

數字必須小於等於5位數

輸入的數必須為數字,輸入不正確則報錯

對輸入的數字,給出其位數

首先利用input獲取使用者輸入

利用isdigit:判斷使用者輸入是否合法

利用len:判斷使用者輸入數字大小是否超過5位數

如果使用者輸入0002,將其當作2處理

import re

a =input

("please input your num\n"

)a = re.sub(

"^0*",""

,a)#如果字元前面出現了0,則將0剔除

if a.isdigit()==

false

:print

("您的輸入中含有非法字串,請輸入數字,不要含有別的非法字元"

) exit(-1

)iflen(a)

>5:

print

("您輸入的數字大於五位數,請輸入乙個小於5位數字的數"

) exit(0)

print

("您輸入的數字的位數為%d"

%len

(a))

please input your num

sdfs

您的輸入中含有非法字串,請輸入數字,不要含有別的字元

please input your num

1290345

您輸入的數字大於五位數,請輸入乙個小於5位數字的數

please input your num

12563

您輸入的數字的位數為5

利用input(),獲取鍵盤輸入

將其轉化為int利用tryexcept,捕捉使用者輸入是否合法

用得到的數整除以10000,看其得到的數是否大於9,如果大於9的話,則提示使用者輸入的數大於5位數

def

judgebit()

:print

("------------------------"

)try

: num=

int(

input

("input your num\n"))

except valueerror:

print

("你輸的數字中含有非法字元,程式退出"

) exit(-1

) testnum =

10000

bitnum =5if

((num // testnum)

>9)

:print

("您輸入的位數大於5位,請重新輸入"

)else:if

( num ==0)

:print

("數字位數為1位"

)else

:while

((num//testnum)==0

):#依次判斷

bitnum -=

1 testnum /=

10print

("輸入的數字數為"

,bitnum,

"位")

if __name__ ==

'__main__'

: judgebit(

)

------------------------

input your num

123輸入的數字數為 3 位

------------------------

input your num

1200000

您輸入的位數大於5位,請重新輸入

------------------------

input your num

00000000000000002

輸入的數字數為 1 位

------------------------

input your num

asdasdasd

你輸的數字中含有非法字元,程式退出

python 數字回文的判斷

從使用者輸入的乙個數字判斷是不是回文,我們並不知道數字有幾位,這個就是增加了求解的難度 如果乙個數字是回文的話,那麼他有一下特點,這裡以76544567 把每個位上面的數字放到列表中,獲得列表的長度,然後從最低位乘以10的最高位減一次方 十位乘以10的第二高位減一次方 最高位就是乘以10的零次方。這...

PTA之python求取產生每位數字相同的n位數

讀入2個正整數a和b,1 a 9,1 b 10,產生數字aa a,一共b個a 輸入格式 在一行中輸入a和b。輸出格式 在一行中輸出整數aa a,一共b個a 輸入樣例1 在這裡給出一組輸入。例如 1,5輸出樣例1 在這裡給出相應的輸出。例如 11111輸入樣例2 在這裡給出一組輸入。例如 3 4輸出樣...

用除法判斷數字的位數 BUG又來了

錯誤1 陷入了死迴圈 pragma warning disable 4996 為了防止scanf 函式因為沒有返回值而報錯 include 用除餘法 判斷數字為幾位數 intmain printf n是 d位數 i return0 正確3 一開始報錯,後來用release和debug再次重新編譯後都...