欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python怎樣判斷一個數(shù)值(字符串)為整數(shù)

 更新時間:2023年02月21日 14:42:44   作者:mz_老張  
這篇文章主要介紹了python怎樣判斷一個數(shù)值(字符串)為整數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

不嚴格檢查方法

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

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

需要注意的是當數(shù)字是 1.0這樣的不帶小數(shù)數(shù)值的浮點數(shù)時,會被默認判定為整數(shù)

a=1.0
print(a.is_integer())
#結果為
True

b=1.1
print(b.is_integer())
#結果為
False

但是如果數(shù)字本身就是int類型,那么沒有is_integer()函數(shù),會報錯:

a=1
print(a.is_integer())

#報錯
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'

嚴格的檢查方法

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

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'))

#結果
非數(shù)字
False

True

False

小結:

當輸入確定為浮點類型時,我們關心的數(shù)值是否為整數(shù),可以使用is_integer(),

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

當不確定輸入類型時,可以使用上述嚴格的判定方法

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

遇到一個問題:如果輸入的是字符串還是整數(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ù)點
? ? ? ? ? ? new_i = i.split('.') ?# 去掉小數(shù)點
? ? ? ? ? ? right = new_i[-1] ?# 將小數(shù)分為小數(shù)點右邊
? ? ? ? ? ? left = new_i[0] ?# 小數(shù)點左邊
? ? ? ? ? ? if right.isdigit(): ?# 如果小數(shù)點右邊是數(shù)字判斷小數(shù)點左邊
? ? ? ? ? ? ? ? if left.isdigit(): ?# 如果小數(shù)點左邊沒有-直接返回
? ? ? ? ? ? ? ? ? ? return 1
? ? ? ? ? ? ? ? elif left.count('-') == 1 and left.startswith('-'): ?# 如果小數(shù)點左邊有-
? ? ? ? ? ? ? ? ? ? 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ù)點
? ? ? ? ? ? new_i = i.split('.')#去掉小數(shù)點
? ? ? ? ? ? right = new_i[-1]#將小數(shù)分為小數(shù)點右邊
? ? ? ? ? ? left = new_i[0]#小數(shù)點左邊
? ? ? ? ? ? if right.isdigit():#如果小數(shù)點右邊是數(shù)字判斷小數(shù)點左邊
? ? ? ? ? ? ? ? if left.isdigit():#如果小數(shù)點左邊沒有-直接返回
? ? ? ? ? ? ? ? ? ? return True
? ? ? ? ? ? ? ? elif left.count('-')== 1 and left.startswith('-'):#如果小數(shù)點左邊有-
? ? ? ? ? ? ? ? ? ? new_left = left.split('-')[-1]#判斷去掉后的還是不是數(shù)字
? ? ? ? ? ? ? ? ? ? if new_left.isdigit():#是數(shù)字則返回True
? ? ? ? ? ? ? ? ? ? ? ? return True
? ? else:
? ? ? ? return False

更簡單的判斷方法:

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

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python中urlparse模塊介紹與使用示例

    python中urlparse模塊介紹與使用示例

    這篇文章主要給大家介紹了關于python中urlparse模塊介紹與使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • 在Python上基于Markov鏈生成偽隨機文本的教程

    在Python上基于Markov鏈生成偽隨機文本的教程

    這篇文章主要介紹了在Python上基于Markov鏈生成偽隨機文本的教程,是一個基于馬爾可夫算法的小實現(xiàn),充分體現(xiàn)了Python在科學計算中的用途,需要的朋友可以參考下
    2015-04-04
  • 利用 Python 實現(xiàn)隨機相對強弱指數(shù) StochRSI

    利用 Python 實現(xiàn)隨機相對強弱指數(shù) StochRSI

    隨機相對強弱指數(shù)簡稱為StochRSI,是一種技術分析指標,用于確定資產是否處于超買或超賣狀態(tài),也用于確定當前市場的態(tài)勢。本篇文章小編九來為大家介紹隨機相對強弱指數(shù)簡稱為StochRSI,需要的朋友可以參考下面文章的具體內容
    2021-09-09
  • Python中的列表知識點匯總

    Python中的列表知識點匯總

    這篇文章主要總結了一些Python中的列表的知識點,來自于IBM官網(wǎng)技術文檔,需要的朋友可以參考下
    2015-04-04
  • python變量的存儲原理詳解

    python變量的存儲原理詳解

    這篇文章主要介紹了python變量的存儲原理詳解,對于python而言,python的一切變量都是對象,變量的存儲,采用了引用語義的方式,存儲的只是一個變量的值所在的內存地址,而不是這個變量的只本身,需要的朋友可以參考下
    2019-07-07
  • 新手學習Python2和Python3中print不同的用法

    新手學習Python2和Python3中print不同的用法

    在本篇文章里小編給大家分享的是關于Python2和Python3中print不同的用法,有興趣的朋友們可以學習下。
    2020-06-06
  • 詳解操作python容器的內置通用函數(shù)

    詳解操作python容器的內置通用函數(shù)

    這篇文章主要為大家介紹了操作python容器的內置通用函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python+mpld3實現(xiàn)交互式Matplotlib圖表

    Python+mpld3實現(xiàn)交互式Matplotlib圖表

    通過結合使用Matplotlib和mpld3庫,我們可以輕松地創(chuàng)建交互式圖表,使得數(shù)據(jù)可視化更加生動和易于理解,下面就跟隨小編一起來學習一下具體實現(xiàn)方法吧
    2024-10-10
  • Python3使用matplotlib繪圖時,坐標軸刻度不從X軸、y軸兩端開始

    Python3使用matplotlib繪圖時,坐標軸刻度不從X軸、y軸兩端開始

    這篇文章主要介紹了Python3使用matplotlib繪圖時,坐標軸刻度不從X軸、y軸兩端開始問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python如何通過protobuf實現(xiàn)rpc

    python如何通過protobuf實現(xiàn)rpc

    這篇文章主要為大家詳細介紹了python通過protobuf實現(xiàn)rpc的方法,感興趣的朋友可以參考一下
    2016-03-03

最新評論