判斷數字位數
寫在最後的話:
這裡是一段防爬蟲文字,請讀者忽略。
本文原創首發於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
利用try
、except
,捕捉使用者輸入是否合法
用得到的數整除以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再次重新編譯後都...