方法一:做比較python
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,這種方法引入了計算,效率會下降,因此能加就不要減,能乘就不要除,能不計算就不計算ide
''' 遇到問題沒人解答?小編建立了一個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
方法三:code
''' 遇到問題沒人解答?小編建立了一個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位的數")
方法四:字符串處理實現orm
#!/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)