这篇文章主要讲解了“python怎么判断一个变量是不是数字”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么判断一个变量是不是数字”吧!
判断一个变量是不是数字?
str_list1 = [1234, '134', '134.151', '-134','一二三', '正三四五', '负四五六', '正三点一四一五']str_list2 = ['-', '--13', '34..421', '.134']
类似str_list1内部元素的变量都判为数字,类似str_list2内部元素的变量都判为非数字!
看答案之前最好尝试自己写一下,写完了再和我写的对比一下:
def isnumber(str_number): # 判断字符串是不是数字if type(str_number) is int or type(str_number) is float: # 如果参数是数字型或浮点型,返回Truereturn Trueif type(str_number) != str or len(str_number) < 1: # 如果参数不是字符串型或长度小于1,返回Falsereturn Falsesymbol1 = ('+', '-', '正', '负') # 正负号symbol2 = ('.', '点') # 小数点if str_number[0] in symbol1: # 如果首字符是符号,那么整个字符串去除符号str_number = str_number[1:]if len(str_number) < 1: # 如果去除符号后长度为0,判断不是数字return Falseelif str_number[0] in symbol2: # 首字符不能为小数点return Falsenumber = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '零', '一', '二', '三', '四', '五', '六', '七', '八', '九') # 匹配模板result = True # 预设结果是Truepoint_times = 0 # 小数点次数str_len = len(str_number) # 计算整个字符串长度for i in range(str_len): # 遍历整个字符串if str_number[i] in symbol2: # 如果当前字符是小数点point_times += 1 # 小数点次数+1if point_times > 1: # 小数点出现次数多于1个result = False # 判断字符串不是数字breakelif str_number[i] not in number: # 如果当前字符不在模板内result = False # 判断字符串不是数字breakreturn result str_list1 = [1234, '134', '134.151', '-134', '一二三', '正三四五', '负四五六', '正三点一四一五']str_list2 = ['-', '--13', '34..421', '.134']for i in str_list1:print(f"当前参数{i}{'是数字!' if isnumber(i) else '不是数字!'}")print('-'*50)for i in str_list2:ret = '是数字!' if isnumber(i) else '不是数字!'print(f"当前参数{i}{'是数字!' if isnumber(i) else '不是数字!'}")out:当前参数1234是数字! 当前参数134是数字! 当前参数134.151是数字! 当前参数-134是数字! 当前参数一二三是数字! 当前参数正三四五是数字! 当前参数负四五六是数字! 当前参数正三点一四一五是数字!--------------------------------------------------当前参数-不是数字! 当前参数--13不是数字! 当前参数34..421不是数字! 当前参数.134不是数字!
感谢各位的阅读,以上就是“python怎么判断一个变量是不是数字”的内容了,经过本文的学习后,相信大家对python怎么判断一个变量是不是数字这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。