用Python6種方法:給定一個不超過5位的正整數,判斷有幾位

方法一:作比較

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章