方法一:作比較
a=int(input(">>>>"))
if a<10:
print(1)
elif a<100: #第一個條件已經過濾了大於9,所以這裏區間是11到100
print(2)
elif a<1000:
print(3)
elif a<10000:
print(4)
else:
print(5)
方法二:使用整除實現,除完後如果是個0或不是個0,這種方法引入了計算,效率會降低,所以能加就不要減,能乘就不要除,能不計算就不計算
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:579817333
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
i = int(intput('>>>')
if i // 10000:
print(5):
elif i // 1000:
print(4)
elif i // 100:
print(3)
elif i // 10:
print(2)
else:
print(1)
分析:假設是在5位的情況下,不考慮其他狀況
In [1]: 6666 // 10000
Out[1]: 0 除以10000爲零證明是小於5位數
In [2]: 6666 // 1000
Out[2]: 6 但是如果能被1000整除,它就是一個4位數
In [3]: 6666 // 100
Out[3]: 66
In [4]: 6666 // 10
Out[4]: 666
In [5]: 6666 // 1
Out[5]: 6666
方法三:
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:579817333
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
a=int(input(">>>"))
if a<0:
print("Format is wrong")
elif a<100000: ##限定5位
if a<10:
print(1)
elif a<100:
print(2)
elif a<1000:
print(3)
elif a<10000:
print(4)
else:
print(5)
else:
print("請輸入一個不超過5位的數")
方法四:字符串處理實現
#!/usr/bin/python3
nnumber=input(">>>>")
length=len(nnumber)
if length>4:
print(5)
elif length>3:
print(4)
elif length>2:
print(3)
elif length>1:
print(2)
else:
print(1)
方法五:折半實現
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:579817333
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
#!/usr/bin/python3
number = int(input("number >> "))
if number >= 100: ##直接從100開始折
if number >= 10000:
print("5")
elif number >= 1000:
print("4")
else:
print("3")
else:
if number >= 10:
print("2")
else:
print("1")
方法六:math實現,這種方法比除法的更慢,如果循環100萬次就很明顯
number=int(input("輸入一個不超過5位的正整數: ")
if a<=0 or a>=100000:
print('請輸入一個不超過5位的正整數')
else:
import math
b=int(math.log10(a)+1)
print(b)