合法数字根据其输入有几种分类: 正数、负数、整数、小数

首先按照字符从前往后遍历顺序,最先遇到 符号位 ,所以我们率先完成对于正/负的判断

  1. 通过字符串首位,即符号位来区分正数/负数,如果首位不为‘+’or'-'号,默认为正数

#验证输入合法性,e为输入的字符串,数据类型string
def is_legal(e):
    if e[0] != '+' or e[0] != '-':#无符号位,默认为正数
        num = e[0:]
        #补充代码
    elif e[0] == '+' or e[0] == '-':#有符号位,对去掉符号位的num 进行检验
        num = e[1:]#对e截断,去掉符号位
        #补充代码
    else:
        return False
  1. 完成对输入字符正负号的检验后,再对去掉符号位的num进行整数/小数的判断

def is_legal(e):
    #区分正数和负数
    if e[0] != '+' or e[0] != '-':#无符号位,默认为正数
        num = e[0:]
        #接下来区分num 是小数还是整数
        if num.isdigt():#若输入字符全为数字,即验证num是否为整数
            #补充代码
        if num.count('.')==1:#输入字符包含一个数量的小数点
            #补充代码
    elif e[0] == '+' or e[0] == '-':#有符号位,对去掉符号位的num 进行检验
        num = e[1:]
        # 接下来区分num 是小数还是整数
        if num.isdigt():  # 若输入字符全为数字,即验证num是否为整数
           #补充代码
        if num.count('.') == 1:  # 输入字符包含一个数量的小数点
            #补充代码
        else:
            return False  # 输入不合法
    else:
        return False
  1. num整数时:需要去掉字符长度大于1且以0 开头的非法数字

def is_legal(e):
    #区分正数和负数
    if e[0] != '+' or e[0] != '-':#无符号位,默认为正数
        num = e[0:]
        #接下来区分num 是小数还是整数
        if num.isdigt():#若输入字符全为数字,即验证num是否为整数
            #排除以0开头长度大于1的不合法数字
            if len(num)>1 and num[0] == 0:
                return False
            else:
                return True
        if num.count('.')==1:#输入字符包含一个数量的小数点
            #补充代码
    elif e[0] == '+' or e[0] == '-':#有符号位,对去掉符号位的num 进行检验
        num = e[1:]
        # 接下来区分num 是小数还是整数
        if num.isdigt():  # 若输入字符全为数字,即验证num是否为整数
            # 排除以0开头长度大于1的不合法数字
            if len(num) > 1 and num[0] == 0:
                return False
            else:
                return True
        if num.count('.') == 1:  # 输入字符包含一个数量的小数点
            #补充代码
        else:
            return False  # 输入不合法
    else:
        return False
 
  1. num小数时:需要以‘.’split num为小数点左边的整数部分left和小数点右边的小数部分right,并用isdigit()检验两部分是否全为数字输入,完整代码如下:

def is_legal(e):
    #区分正数和负数
    if e[0] != '+' or e[0] != '-':#无符号位,默认为正数
        num = e[0:]
        #接下来区分num 是小数还是整数
        if num.isdigt():#若输入字符全为数字,即验证num是否为整数
            #排除以0开头长度大于1的不合法数字
            if len(num)>1 and num[0] == 0:
                return False
            else:
                return True
        if num.count('.')==1:#输入字符包含一个数量的小数点
            left,right = num.split('.')[0],num.split('.')[1]
            if left.isdigit() and right.isditgit():
                return True
            else:
                return False
        else:
            return False#输入不合法
    elif e[0] == '+' or e[0] == '-':#有符号位,对去掉符号位的num 进行检验
        num = e[1:]
        # 接下来区分num 是小数还是整数
        if num.isdigt():  # 若输入字符全为数字,即验证num是否为整数
            # 排除以0开头长度大于1的不合法数字
            if len(num) > 1 and num[0] == 0:
                return False
            else:
                return True
        if num.count('.') == 1:  # 输入字符包含一个数量的小数点
            left, right = num.split('.')[0], num.split('.')[1]
            if left.isdigit() and right.isditgit():
                return True
            else:
                return False
        else:
            return False  # 输入不合法
    else:
        return False
import unicodedata
x = input("请输入一个字符")
print(x.isdecimal())#检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
print(x.isalnum())#isalnum判断是否数字和字母的组合,如果包含空格就报false
print(x.isalpha())#用isalpha判断是否字母,不区分大小写
print(x.isdigit())#用isdigit函数判断是否数字
1.单数字
2.单字符串
Stringstr="ischar";
doublenum=Double.valueOf(str);//把字符串强制转换为数字
returntrue;//如果是数字,返回True
}catch(Exceptione){
returnfalse...
				
从控制输入一串字符串,要求字符串只能数字字母下划线,并且长度大于等于20, 若不符合条件重新输入,输入完毕之后,要求从控制台输入一个字符,使用自己输入的字符, 来对字符串进行切片,切片完毕之后,并且去掉空串,删除列表中的重复元素。 while 1: str1 = input("请输入一个字符串:") if len(str1) >= 20: str2 = str...
* Author:Xu Zheng Wei * E-mail:2518298846@qq.com * 程序功能:用键盘输入10个数,合法数字为1、2、3,不是这三个数的都是非法数字,编程统计每个合法数字的个数和所有非法数字的个数。 package com.lianxiti; import java.util.Scanner
# 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 # 括号必须以正确的顺序关闭:"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。 # 左括号必须用相同类型的右括号闭合。 # 左括号必须以正确的顺序闭合。 # 注意空字符串可被认为是有效字符串。 思路:利用列表的append()和pop()函数实现栈先进后出的逻辑。   1、遍历输入字符串   2、如果当前字符为左半边括号时,则将其压入栈中   3、如果.
def Is_legalword(s): for key in s: if not key in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_': return False return True def Is_legal(s): if s[0]=='_' or s[0].is
最近在做相关的项目, 在用户输入信息时要对CEdit控件获取的字符串信息判断其是否为合法数字, 通常我们所理解的合法数字是: 1. 如果不为小数, 则字符串中应该不能包含0-9以外的其它字符, 并且按照习惯, 即使用户输入0900, 程序应该能够判断其为合法数字, 并且能够格式化为900 2. 如果为小数, 通常小数点只能在两个数字之间, 并且只能有一个小数点, 如合法数字: 0.9
CSDN-Ada助手: 恭喜你写了第三篇博客!虽然标题暂时没有想好,但是你的创作热情让我非常钦佩。如果可以的话,我建议你在下一篇博客中尝试给文章起一个有意义的标题,这样会更吸引读者的关注。继续加油,期待你的下一篇作品! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3,我们会奖励持续创作和学习的博主,请看:https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply3 LEAD,LAG,ROW_NUMBER, CONCAT_WS,COLLECT_LIST 等SQL函数的练习 CSDN-Ada助手: 非常棒的博客!看到你对SQL函数的练习,我深感你对这个领域的热爱和认真学习。继续保持这样的学习态度,你一定能够成为一个优秀的SQL工程师。如果你想进一步提升自己的技能,可以学习一些更高级的函数,比如AVG、SUM、COUNT等。此外,你还可以了解一些SQL数据库的优化技巧,例如索引和分区。希望我的建议能够对你有所帮助,期待你的下一篇博客! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2