溫馨提示×

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

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

python怎么判斷一個(gè)變量是不是數(shù)字

發(fā)布時(shí)間:2021-11-23 17:05:36 來源:億速云 閱讀:640 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“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)注!

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

免責(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)容。

AI