论坛

    • 登录
    • 版块
    • 最新
    • 标签
    • 热门

    python 中 input 和 eval 使用有个bug?怎么解决

    技术交流
    2
    5
    247
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Anmyly
      Anmyly 最后由 编辑

      8e55cc64-4503-4ab9-80c7-2216a882bd0b-image.png
      177888d3-75f8-471c-bbae-c624ea9d06c6-image.png

      这样可以输入任何数字,但是必须得输入一个值,如果 不输入,直接enter 运行,就会报错。

      这个有什么办法处理。

      而我又必须需要 从 字符串 里 提取 数字进行计算。

      1 条回复 最后回复 回复 引用 0
      • k1995
        k1995 最后由 编辑

        兄弟这哪是bug,eval 不是这么用的啊。

        1 条回复 最后回复 回复 引用 0
        • k1995
          k1995 最后由 k1995 编辑

          你要从字符串中提取数字,可以用正则表达式

          import re
          
          a = input("请输入1个数字:")
          b = re.findall("\d+", a)[0]
          print(b)
          

          测试结果:

          请输入1个数字:ads12323
          12323
          
          
          Anmyly 2 条回复 最后回复 回复 引用 0
          • Anmyly
            Anmyly @k1995 最后由 编辑

            此回复已被删除!
            1 条回复 最后回复 回复 引用 0
            • Anmyly
              Anmyly @k1995 最后由 Anmyly 编辑

              @k1995 感谢您提供的思路,我貌似找到方法了,看来要去学下 正则表达式了,把您代码里的

              "\d+"
              

              改成这个

              r"\d+\.?\d*"
              

              就可以提取整数或者小数了。

              1 条回复 最后回复 回复 引用 0
              • First post
                Last post