溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何判斷一個(gè)數(shù)值為整數(shù)

發(fā)布時(shí)間:2023-02-22 16:31:51 來源:億速云 閱讀:150 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“python如何判斷一個(gè)數(shù)值為整數(shù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python如何判斷一個(gè)數(shù)值為整數(shù)”吧!

    如何判斷一個(gè)數(shù)值(字符串)為整數(shù)

    不嚴(yán)格檢查方法

    浮點(diǎn)數(shù)的自帶方法is_integer()

    如果確定輸入的內(nèi)容為浮點(diǎn)數(shù),是可以直接使用float數(shù)的is_integer()函數(shù)來進(jìn)行判定。

    需要注意的是當(dāng)數(shù)字是 1.0這樣的不帶小數(shù)數(shù)值的浮點(diǎn)數(shù)時(shí),會(huì)被默認(rèn)判定為整數(shù)

    a=1.0
    print(a.is_integer())
    #結(jié)果為
    True
    
    b=1.1
    print(b.is_integer())
    #結(jié)果為
    False

    但是如果數(shù)字本身就是int類型,那么沒有is_integer()函數(shù),會(huì)報(bào)錯(cuò):

    a=1
    print(a.is_integer())
    
    #報(bào)錯(cuò)
    Traceback (most recent call last):
      File "E:/PycharmOut/Test/TestAll/testString/intOrFloat.py", line 7, in <module>
        print(a.is_integer())
    AttributeError: 'int' object has no attribute 'is_integer'

    嚴(yán)格的檢查方法

    思路是:先檢查輸入的內(nèi)容是否可以轉(zhuǎn)成float,之后再判定有沒有帶小數(shù)點(diǎn)

    def isIntSeriously(number):
        result = False
        try:
            n = float(number)
            if n.is_integer() and str(number).count('.') == 0:
                result =True
        except :
            print('非數(shù)字')
    
        return result
    
    
    print(isIntSeriously('a3'))
    print()
    print(isIntSeriously('3'))
    print()
    print(isIntSeriously('3.0'))
    
    #結(jié)果
    非數(shù)字
    False
    
    True
    
    False

    小結(jié):

    當(dāng)輸入確定為浮點(diǎn)類型時(shí),我們關(guān)心的數(shù)值是否為整數(shù),可以使用is_integer(),

    比如我就希望1.0,2.0這樣的是整數(shù)

    當(dāng)不確定輸入類型時(shí),可以使用上述嚴(yán)格的判定方法

    判斷輸入的字符串是否是整數(shù)還是小數(shù)

    遇到一個(gè)問題:如果輸入的是字符串還是整數(shù)或者是小數(shù)如何將他們區(qū)分?

    首先isdigit()只能用來判斷字符串輸入的是否是整數(shù),無法判斷是否是小數(shù)

    所以,先判斷該字符串是否是整數(shù),如果是返回3,

    不是的話說明是字母或者是小數(shù),然后判斷是否是小數(shù),如果是小數(shù)的話返回1,

    是字母的或其他的話返回2

    def is_float(i):
        if i.isdigit():#只能用來判斷整數(shù)的字符串
            return  3
        else:
            if i.count('.') == 1:  # 先判斷里面有沒有小數(shù)點(diǎn)
                new_i = i.split('.')  # 去掉小數(shù)點(diǎn)
                right = new_i[-1]  # 將小數(shù)分為小數(shù)點(diǎn)右邊
                left = new_i[0]  # 小數(shù)點(diǎn)左邊
                if right.isdigit():  # 如果小數(shù)點(diǎn)右邊是數(shù)字判斷小數(shù)點(diǎn)左邊
                    if left.isdigit():  # 如果小數(shù)點(diǎn)左邊沒有-直接返回
                        return 1
                    elif left.count('-') == 1 and left.startswith('-'):  # 如果小數(shù)點(diǎn)左邊有-
                        new_left = left.split('-')[-1]  # 判斷去掉后的還是不是數(shù)字
                        if new_left.isdigit():  # 是數(shù)字則返回True
                            return 1
            else:
                return 2  # 返回2說明是字母

    輸入例子:1.2,-1.2,.2,-2.

    def is_float(i):
        if i.count('.') == 1:#先判斷里面有沒有小數(shù)點(diǎn)
                new_i = i.split('.')#去掉小數(shù)點(diǎn)
                right = new_i[-1]#將小數(shù)分為小數(shù)點(diǎn)右邊
                left = new_i[0]#小數(shù)點(diǎn)左邊
                if right.isdigit():#如果小數(shù)點(diǎn)右邊是數(shù)字判斷小數(shù)點(diǎn)左邊
                    if left.isdigit():#如果小數(shù)點(diǎn)左邊沒有-直接返回
                        return True
                    elif left.count('-')== 1 and left.startswith('-'):#如果小數(shù)點(diǎn)左邊有-
                        new_left = left.split('-')[-1]#判斷去掉后的還是不是數(shù)字
                        if new_left.isdigit():#是數(shù)字則返回True
                            return True
        else:
            return False

    更簡單的判斷方法:

    while  True:
        num = input("請(qǐng)輸入一個(gè)數(shù)字:")
        try:
            n1=eval(num)
        except:
            print("輸入的不是數(shù)字程序結(jié)束")
            break
     
        if isinstance(n1,float):
            print('輸入的是小數(shù)請(qǐng)重新輸入:')
            continue
        else:
            print("輸入的是整數(shù)沒問題")

    感謝各位的閱讀,以上就是“python如何判斷一個(gè)數(shù)值為整數(shù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python如何判斷一個(gè)數(shù)值為整數(shù)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI