您好,登錄后才能下訂單哦!
這篇文章主要講解了“python怎么判斷一個(gè)變量是不是數(shù)字”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python怎么判斷一個(gè)變量是不是數(shù)字”吧!
判斷一個(gè)變量是不是數(shù)字?
str_list1 = [1234, '134', '134.151', '-134','一二三', '正三四五', '負(fù)四五六', '正三點(diǎn)一四一五']str_list2 = ['-', '--13', '34..421', '.134']
類似str_list1內(nèi)部元素的變量都判為數(shù)字,類似str_list2內(nèi)部元素的變量都判為非數(shù)字!
看答案之前最好嘗試自己寫一下,寫完了再和我寫的對(duì)比一下:
def isnumber(str_number): # 判斷字符串是不是數(shù)字if type(str_number) is int or type(str_number) is float: # 如果參數(shù)是數(shù)字型或浮點(diǎn)型,返回Truereturn Trueif type(str_number) != str or len(str_number) < 1: # 如果參數(shù)不是字符串型或長(zhǎng)度小于1,返回Falsereturn Falsesymbol1 = ('+', '-', '正', '負(fù)') # 正負(fù)號(hào)symbol2 = ('.', '點(diǎn)') # 小數(shù)點(diǎn)if str_number[0] in symbol1: # 如果首字符是符號(hào),那么整個(gè)字符串去除符號(hào)str_number = str_number[1:]if len(str_number) < 1: # 如果去除符號(hào)后長(zhǎng)度為0,判斷不是數(shù)字return Falseelif str_number[0] in symbol2: # 首字符不能為小數(shù)點(diǎn)return Falsenumber = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '零', '一', '二', '三', '四', '五', '六', '七', '八', '九') # 匹配模板result = True # 預(yù)設(shè)結(jié)果是Truepoint_times = 0 # 小數(shù)點(diǎn)次數(shù)str_len = len(str_number) # 計(jì)算整個(gè)字符串長(zhǎng)度for i in range(str_len): # 遍歷整個(gè)字符串if str_number[i] in symbol2: # 如果當(dāng)前字符是小數(shù)點(diǎn)point_times += 1 # 小數(shù)點(diǎn)次數(shù)+1if point_times > 1: # 小數(shù)點(diǎn)出現(xiàn)次數(shù)多于1個(gè)result = False # 判斷字符串不是數(shù)字breakelif str_number[i] not in number: # 如果當(dāng)前字符不在模板內(nèi)result = False # 判斷字符串不是數(shù)字breakreturn result str_list1 = [1234, '134', '134.151', '-134', '一二三', '正三四五', '負(fù)四五六', '正三點(diǎn)一四一五']str_list2 = ['-', '--13', '34..421', '.134']for i in str_list1:print(f"當(dāng)前參數(shù){i}{'是數(shù)字!' if isnumber(i) else '不是數(shù)字!'}")print('-'*50)for i in str_list2:ret = '是數(shù)字!' if isnumber(i) else '不是數(shù)字!'print(f"當(dāng)前參數(shù){i}{'是數(shù)字!' if isnumber(i) else '不是數(shù)字!'}")out:當(dāng)前參數(shù)1234是數(shù)字! 當(dāng)前參數(shù)134是數(shù)字! 當(dāng)前參數(shù)134.151是數(shù)字! 當(dāng)前參數(shù)-134是數(shù)字! 當(dāng)前參數(shù)一二三是數(shù)字! 當(dāng)前參數(shù)正三四五是數(shù)字! 當(dāng)前參數(shù)負(fù)四五六是數(shù)字! 當(dāng)前參數(shù)正三點(diǎn)一四一五是數(shù)字!--------------------------------------------------當(dāng)前參數(shù)-不是數(shù)字! 當(dāng)前參數(shù)--13不是數(shù)字! 當(dāng)前參數(shù)34..421不是數(shù)字! 當(dāng)前參數(shù).134不是數(shù)字!
感謝各位的閱讀,以上就是“python怎么判斷一個(gè)變量是不是數(shù)字”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python怎么判斷一個(gè)變量是不是數(shù)字這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。