【问题标题】:How to get x number of an integer in python如何在python中获取整数的x个数
【发布时间】:2021-05-30 06:30:34
【问题描述】:

例如我的号码是4857604

python中,我只需要这个整数的前3个,这意味着我需要这个数字:485

我应该怎么做?

非常感谢

【问题讨论】:

  • int(4857604/10000)
  • 可以通过str(x)[:3]得到整数x的最左边三位
  • @but-why 但是为什么不直接使用地板除法呢?
  • @superbrain 我没有给出认真的答案,因为这个问题没有得到很好的定义。没想到会惹出这么大的麻烦。如您所见,另一个人转换为字符串,然后获取前 3 个字符,但忘记了他应该这样做int(str(x)[:3])@DarrylG 我希望我能想出一个较慢的解决方案。
  • @but-why 尚不清楚 OP 是否需要它作为 int。我的意思是,他们说“这个整数的前 3 个”,这是没有意义的,因为一个整数没有“前 3 个”。所以也许他们甚至没有一个 int 开头,而是一个字符串。

标签: python math integer


【解决方案1】:
str(4857604)[:3]

或:

int(4857604/10000)

时间比较:

timeit("""str(4857604)[:3]""")
0.1730724999999893
timeit("""int(4857604/10000)""")
0.0691777999999772
timeit("""4857604//10000""")
0.006821999999999662

【讨论】:

    【解决方案2】:

    如果你知道数字的大小,你可以这样做:

    4857604//10000
    

    楼层分割去掉逗号后的数字

    【讨论】:

      【解决方案3】:

      为了得到整数,你可以这样做:

      1) 循序渐进

      x = 4857604
      x = str(x)
      x = x[:3]
      x = int(x)
      

      ...或者更简单

      2)

      x =  int(str(x)[:3])
      

      如果您知道要减少的数字的确切大小,您还可以使用整数除法运算符//

      4857604 // 100000 = 485
      

      【讨论】:

        【解决方案4】:
        def show_x_digits(num, x):
            return num / (10 ** x)
        
        
        print(int(show_x_digits(4857604, 3)))
        

        只需除以 10^x 并转换为整数。

        【讨论】:

          【解决方案5】:
          y = str(x)
          x1 = int(y[0])
          x2 = int(y[1])
          x3 = int(y[2])
          result = 100 * x1 + 10 * x2 + x3
          

          编辑:

          result = int('{}{}{}'.format(x1, x2, x3))
          

          【讨论】:

          • 您的答案太复杂,无法维护,可以通过许多更好的方式来完成。 (顺便说一句,我没有投反对票)
          猜你喜欢
          • 2022-06-22
          • 1970-01-01
          • 1970-01-01
          • 2020-12-27
          • 1970-01-01
          • 2022-08-15
          • 2015-12-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多