Navigation

    GitHub中文社区
    • GitHub排行榜

    论坛

    • Login
    • Categories
    • Recent
    • Tags
    • Popular

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

    技术交流
    2
    5
    243
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Anmyly
      Anmyly last edited by

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

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

      这个有什么办法处理。

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

      1 Reply Last reply Reply Quote 0
      • k1995
        k1995 last edited by

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

        1 Reply Last reply Reply Quote 0
        • k1995
          k1995 last edited by k1995

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

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

          测试结果:

          请输入1个数字:ads12323
          12323
          
          
          Anmyly 2 Replies Last reply Reply Quote 0
          • Anmyly
            Anmyly @k1995 last edited by

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • Anmyly
              Anmyly @k1995 last edited by Anmyly

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

              "\d+"
              

              改成这个

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

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

              1 Reply Last reply Reply Quote 0
              • First post
                Last post