最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python判斷字符串是否為數(shù)字,浮點(diǎn)數(shù)或者字母

 更新時(shí)間:2026年04月15日 08:56:54   作者:躬行見萬象  
在Python中處理字符串的函數(shù)比較豐富,本文介紹了在Python中如何判斷和轉(zhuǎn)換字符串,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

在Python中處理字符串的函數(shù)比較豐富,有時(shí)需要把字符串轉(zhuǎn)化為整形、浮點(diǎn)型等;轉(zhuǎn)換過程中,發(fā)現(xiàn)有時(shí)會報(bào)錯(cuò),比如字符串“12*76”,轉(zhuǎn)換為整形,直接轉(zhuǎn)換int(“12*76”),會報(bào)無法轉(zhuǎn)換的錯(cuò)誤的,因?yàn)?無法轉(zhuǎn)換為整形;所以在轉(zhuǎn)換前,需要先進(jìn)行判斷該字符串的類型。

判斷字符串是否為數(shù)字(整形)

這個(gè)直接調(diào)用python的庫就可以了哈,假設(shè)str為字符串

str.isdigit() :判斷所有字符都是數(shù)字(整形)   

返回值 True:該字符串都為數(shù)字;False:該字符串不都是數(shù)字。

str.isalnum() 判斷所有字符都是數(shù)字或者字母    

返回值 True:該字符串都為數(shù)字或者字母;False:該字符串不都是數(shù)字或者字母。

判斷字符串是否為浮點(diǎn)數(shù)

這個(gè)就不能直接使用python的庫,畢竟浮點(diǎn)數(shù)有小數(shù)點(diǎn)的,小數(shù)點(diǎn)也算是一種符號,單純使用str.isdigit()    所有字符都是數(shù)字 來判斷是不行的;

不妨使用字符串分割(切片)函數(shù),把浮點(diǎn)數(shù)分為小數(shù)點(diǎn)左邊部分、小數(shù)點(diǎn)右邊部分,再分別檢測各部分是否為全數(shù)字

代碼實(shí)現(xiàn):

# 輸入?yún)?shù) str 需要判斷的字符串
# 返回值   True:該字符串為浮點(diǎn)數(shù);False:該字符串不是浮點(diǎn)數(shù)。
def IsFloatNum(str):
    s=str.split('.')
    if len(s)>2:
        return False
    else:
        for si in s:
            if not si.isdigit():
                return False
        return True

判斷字符串是否為字母

這個(gè)直接調(diào)用python的庫就可以了哈,假設(shè)str為字符串

str.isalpha()  判斷所有字符都是字母 

返回值 True:所有字符都是字母;False:所有字符不都是字母。

str.islower()  判斷所有字符都是小寫 

str.isupper() 判斷所有字符都是大寫

str.istitle()    判斷所有單詞都是首字母大寫

判斷字符串是否為空

str.isspace() 判斷所有字符都是空白字符、\t、\n、\r

小結(jié)

str.isdigit()    判斷所有字符都是數(shù)字(整形)   

str.isalnum() 判斷所有字符都是數(shù)字或者字母    

str.isalpha()  判斷所有字符都是字母 

str.islower()  判斷所有字符都是小寫 

str.isupper() 判斷所有字符都是大寫

str.istitle()    判斷所有單詞都是首字母大寫

方法補(bǔ)充

在Python中,判斷字符串的具體類型(數(shù)字、浮點(diǎn)數(shù)、字母等)有多種方法,適用場景不同。下面系統(tǒng)介紹幾種常見需求及其最佳實(shí)現(xiàn)。

判斷字符串是否為純數(shù)字(非負(fù)整數(shù))

方法:使用字符串的 isdigit() 方法。

s = "12345"
print(s.isdigit())   # True
s = "12.3"
print(s.isdigit())   # False (包含小數(shù)點(diǎn))
s = "-123"
print(s.isdigit())   # False (負(fù)號不是數(shù)字)
s = "0"
print(s.isdigit())   # True
  • 只匹配 0-9 字符,不匹配負(fù)數(shù)、小數(shù)或其它數(shù)字形式(如中文數(shù)字)。
  • 空字符串返回 False。

判斷字符串是否為整數(shù)(可帶正負(fù)號)

使用 int() 轉(zhuǎn)換并捕獲異常,可處理正負(fù)整數(shù)和零。

def is_integer(s):
    try:
        int(s)
        return True
    except ValueError:
        return False

print(is_integer("123"))     # True
print(is_integer("-456"))    # True
print(is_integer("+7"))      # True
print(is_integer("12.3"))    # False
print(is_integer("12a"))     # False
print(is_integer(""))        # False
  • 適用于任何有效的整數(shù)表示,包括前導(dǎo)正負(fù)號。
  • 不支持科學(xué)計(jì)數(shù)法(如 1e3 會被視為浮點(diǎn)數(shù),但 int("1e3") 會報(bào)錯(cuò))。

判斷字符串是否為浮點(diǎn)數(shù)(可帶正負(fù)號、小數(shù)點(diǎn)、科學(xué)計(jì)數(shù)法)

使用 float() 轉(zhuǎn)換并捕獲異常。

def is_float(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

print(is_float("3.14"))      # True
print(is_float("-0.001"))    # True
print(is_float("2e-5"))      # True
print(is_float("inf"))       # True (無窮大)
print(is_float("NaN"))       # True (非數(shù)字)
print(is_float("123"))       # True (整數(shù)也是有效的浮點(diǎn)數(shù))
print(is_float("12a"))       # False
  • 會識別 inf-inf、NaN 等特殊浮點(diǎn)值(根據(jù)需求可額外過濾)。
  • 整數(shù)也會被判定為 True,若需嚴(yán)格區(qū)分小數(shù),可額外檢查是否包含小數(shù)點(diǎn)或科學(xué)計(jì)數(shù)法。

判斷字符串是否為純字母(只含字母,無空格或數(shù)字)

使用字符串的 isalpha() 方法。

s = "Hello"
print(s.isalpha())   # True

s = "Hello123"
print(s.isalpha())   # False (包含數(shù)字)

s = "你好"
print(s.isalpha())   # True (中文字符也被視為字母)

s = " "
print(s.isalpha())   # False
  • 對于非ASCII字母(如中文、希臘字母)也返回 True。
  • 如需僅限英文字母,可使用正則 [A-Za-z]

判斷字符串是否為字母或數(shù)字組合(無其他字符)

使用字符串的 isalnum() 方法。

print("abc123".isalnum())   # True
print("123".isalnum())      # True
print("abc".isalnum())      # True
print("abc 123".isalnum())  # False (含空格)
print("abc_123".isalnum())  # False (含下劃線)
  • 等價(jià)于 isalpha() or isdigit(),但一次調(diào)用更高效。
  • 同樣支持中文等非ASCII字符。

使用正則表達(dá)式精確控制

當(dāng)需要更復(fù)雜的規(guī)則(例如:允許前導(dǎo)負(fù)號、小數(shù)點(diǎn)后必須有數(shù)字、不能是科學(xué)計(jì)數(shù)法等)時(shí),可以使用正則。

import re
def is_positive_integer(s):
    """只允許純數(shù)字字符串,無前導(dǎo)零(可選)"""
    return bool(re.fullmatch(r'[1-9][0-9]*|0', s))
def is_decimal_float(s):
    """嚴(yán)格判斷浮點(diǎn)數(shù):必須有小數(shù)點(diǎn),且小數(shù)點(diǎn)前后至少有一位數(shù)字"""
    return bool(re.fullmatch(r'-?\d+\.\d+', s))
def is_english_letters(s):
    """僅限英文字母(大小寫)"""
    return bool(re.fullmatch(r'[A-Za-z]+', s))

使用 re.fullmatch 確保整個(gè)字符串完全匹配,避免部分匹配。

綜合判斷示例:識別數(shù)字、浮點(diǎn)數(shù)、字母

def classify_string(s):
    if not s:
        return "空字符串"
    if s.isdigit():
        return "非負(fù)整數(shù)"
    if s.isalpha():
        return "字母字符串(含多語言)"
    try:
        int(s)
        return "整數(shù)(可帶符號)"
    except ValueError:
        pass
    try:
        float(s)
        return "浮點(diǎn)數(shù)(含科學(xué)計(jì)數(shù)法)"
    except ValueError:
        pass
    if s.isalnum():
        return "字母數(shù)字混合"
    return "其他類型"
# 測試
print(classify_string("123"))       # 非負(fù)整數(shù)
print(classify_string("-456"))      # 整數(shù)(可帶符號)
print(classify_string("3.14"))      # 浮點(diǎn)數(shù)(含科學(xué)計(jì)數(shù)法)
print(classify_string("abc"))       # 字母字符串(含多語言)
print(classify_string("abc123"))    # 字母數(shù)字混合
print(classify_string(" "))         # 其他類型

注意事項(xiàng)

  • 空字符串:上述 isdigit()、isalpha()、isalnum() 對空字符串均返回 False;int()/float() 轉(zhuǎn)換會拋出異常,需額外處理。
  • 正負(fù)號與空格isdigit() 不識別符號;int() 和 float() 可以識別前導(dǎo)正負(fù)號,但會忽略前后空格。
  • 科學(xué)計(jì)數(shù)法float() 可識別,但 isdigit() 不能,可根據(jù)業(yè)務(wù)決定是否接受。
  • Unicode數(shù)字isdigit() 可以識別其他語言的數(shù)字(如 "一二三"),如需僅限ASCII數(shù)字,可用 s.isdigit() and s.isascii()(Python 3.7+)。

到此這篇關(guān)于Python判斷字符串是否為數(shù)字,浮點(diǎn)數(shù)或者字母的文章就介紹到這了,更多相關(guān)Python判斷字符串類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pytest官方文檔解讀fixtures的autouse

    pytest官方文檔解讀fixtures的autouse

    這篇文章主要為大家介紹了pytest官方文檔解讀fixtures的autouse,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python中axis=0與axis=1指的方向有什么不同詳解

    Python中axis=0與axis=1指的方向有什么不同詳解

    對數(shù)據(jù)進(jìn)行操作時(shí),經(jīng)常需要在橫軸方向或者數(shù)軸方向?qū)?shù)據(jù)進(jìn)行操作,這時(shí)需要設(shè)定參數(shù)axis的值,下面這篇文章主要給大家介紹了關(guān)于Python中axis=0與axis=1指的方向有什么不同的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Python玩轉(zhuǎn)加密的技巧【推薦】

    Python玩轉(zhuǎn)加密的技巧【推薦】

    Python 中的一個(gè)有用的基本加密庫就叫做 cryptography 。這篇文章主要介紹了Python玩轉(zhuǎn)加密的技巧,需要的朋友可以參考下
    2019-05-05
  • 通過python封裝SQLite3的示例代碼

    通過python封裝SQLite3的示例代碼

    這篇文章主要介紹了使用 Python 封裝 SQLite3 的相關(guān)內(nèi)容,包括創(chuàng)建數(shù)據(jù)庫實(shí)例、創(chuàng)建表、各種插入(單個(gè)、批量、字典等)、刪除(按條件、按 ID 等)、修改(多種方式)、查詢(單條、多條、分頁等)的示例及對應(yīng)的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2024-11-11
  • python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    本文主要介紹了python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • python貪吃蛇游戲代碼

    python貪吃蛇游戲代碼

    這篇文章主要為大家詳細(xì)介紹了python貪吃蛇游戲代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python利用pdfplumber實(shí)現(xiàn)讀取PDF寫入Excel

    Python利用pdfplumber實(shí)現(xiàn)讀取PDF寫入Excel

    pdfplumber專注PDF內(nèi)容提取,例如文本(位置、字體及顏色等)和形狀(矩形、直線、曲線),還有解析表格的功能。本文主要為大家介紹如何利用pdfplumber實(shí)現(xiàn)讀取PDF寫入Excel,需要的可以參考一下
    2022-06-06
  • 人工智能學(xué)習(xí)PyTorch教程之層和塊

    人工智能學(xué)習(xí)PyTorch教程之層和塊

    這篇文章主要為大家介紹了人工智能學(xué)習(xí)Pytorch教程中的層和塊的相關(guān)知識點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 淺談sklearn中predict與predict_proba區(qū)別

    淺談sklearn中predict與predict_proba區(qū)別

    這篇文章主要介紹了淺談sklearn中predict與predict_proba區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python類繼承及super()函數(shù)使用說明

    Python類繼承及super()函數(shù)使用說明

    這篇文章主要介紹了Python類繼承及super()函數(shù)使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

嵩明县| 兰溪市| 东阳市| 庆元县| 平昌县| 秦皇岛市| 临湘市| 洪雅县| 马龙县| 株洲县| 松滋市| 泰州市| 敖汉旗| 海伦市| 深泽县| 丘北县| 彭山县| 翁牛特旗| 高陵县| 珠海市| 涞水县| 招远市| 厦门市| 剑阁县| 二手房| 黑河市| 平果县| 马关县| 徐水县| 洪雅县| 岗巴县| 即墨市| 加查县| 同仁县| 锡林郭勒盟| 久治县| 元阳县| 来宾市| 武夷山市| 大姚县| 怀宁县|