zoukankan      html  css  js  c++  java
  • 给一个字符串,转换成数字整数,若包含非法字符,返回提示,正确则反回整数值,不能使用内置函数转换

    
    """
    思路过程:
    1. 将正整数字符串转化为数字类型整数,以及字符串前面带有“+”
    2. 将字符串前面带有“-”的负整数转化为数字类型整数
    3. 判断 “+”,“-”是否在字符串中,且在第一位
    4. 判断字符串是否是数字字符串,用 isdigit() 方法
    """
    
    
    def autoint(str_num):
        flag = False
        list_num = list(str_num)  # list(str),可以将一个字符串拆分成单个字符,以列表的方式返回
        if list_num[0] in ("+", "-"):
            strtoint = "".join(list_num[1:])  # 字符串操作,截取第二位到最后一个,然后组合成字符串
            if strtoint.isdigit():
                t = "%s * 1" % strtoint
                '''
                eval() :将字符串str当成有效的表达式来求值并返回计算结果,了应用这个特点,先构造字符串与1相乘的表达式,
                再用eval()算出该表达的值并返回
                '''
                rul = eval(t)
                return rul
            else:
                return flag
        else:
            if str_num.isdigit():
                t = "%s * 1" % str_num
                rul = eval(t)
                return rul
            else:
                return flag
    
    
    list1 = ["9898-", "+889", "-93", "12", "22*(", "+-56"]
    print("检查前的值:", list1)
    print("检查后的值:")
    for v in list1:
        r = autoint(v)
        if r:
            print(v, " 是整数", r)
        else:
            print(v, " 不是整数")
    
    检查前的值: ['9898-', '+889', '-93', '12', '22*(', '+-56']
    检查后的值:
    9898-  不是整数
    +889  是整数 889
    -93  是整数 93
    12  是整数 12
    22*(  不是整数
    +-56  不是整数
    
  • 相关阅读:
    rem 适配屏幕大小
    javascript实现多线程提升项目加载速度
    前端工程化、模块化、组件化见解
    Object.defineProperty方法
    js 冒泡排序
    git 如何生成 SSH 公钥
    奇数幻方
    最长公共子序列-动态规划
    Sping学习笔记_整合hibernate
    Sping学习笔记_AOP
  • 原文地址:https://www.cnblogs.com/chenri/p/13415689.html
Copyright © 2011-2022 走看看