当前位置:   article > 正文

Python 实现获取 1 到 n 所有整数中,x (0 ≤ x ≤ 9)出现的次数_python 统计区间出现次数

python 统计区间出现次数

先看个例子,假设 1 到 11 中,要统计 1 出现的次数,那能进行 count 操作的就是 1, 10, 11 ,次数为 4 。

原理懂了之后就用代码来实现这一操作。首先我用range()来生成一个 1 到 n 的区间,在这个区间内进行统计操作。接下来定义一个 n ,用来接收用户自己定义的最大范围-1 (因为range是不包含最大的),还要定义 x 用来接收用户想要统计的数。

  1. n = int(input("最大范围(-1): "))
  2. x = int(input("输入要统计的数: "))
  3. count = 0

接下来就是条件判断了,在 1 到 9 的区间内,可以用恒等的条件来判断,而大于 10 后就是两位数或者三位数以上,所以这个这个时候的判断逻辑就是先看个位数有没有 x ,然后把个位数去掉,再看最后一位有没有 x ,由此类推。

  1. y = 0
  2. for i in range(1, n):
  3. if(0 < i < 10):
  4. if(i == x):
  5. count += 1
  6. else:
  7. while(i != 0):
  8. # 判断 i 的最后一位等不等于 x,等于count+1
  9. y = i % 10
  10. if (y == x):
  11. count += 1
  12. # 去除 i 的最后一位数
  13. i = i // 10

上面定义了个 y 来接收一下 i ,用 y 来进行求余操作,防止 i 的值被覆盖掉 ,从而传到后面进行去除最后一位操作,while 的循环条件就是一直取到 i 的最高位等于 0 而跳出循环。

  1. # 数学逻辑:先个位判断,再到十位及以上
  2. n = int(input("最大范围(-1): "))
  3. x = int(input("输入要统计的数: "))
  4. count = 0
  5. y = 0
  6. for i in range(1, n):
  7. if(0 < i < 10):
  8. if(i == x):
  9. print(i)
  10. count += 1
  11. else:
  12. while(i != 0):
  13. # 判断 i 的最后一位等不等于 x,等于count+1
  14. y = i % 10
  15. if (y == x):
  16. print(y)
  17. count += 1
  18. # 去除 i 的最后一位数
  19. i = i // 10
  20. print(f"{x}出现次数是:{count}")

还有一种实现方法就是把 i 和 x 变成串,只需要遍历字符串 i 的值中有恒等于 字符串 x 的值就进行 count 操作就行。

  1. def num(n, x):
  2. count = 0
  3. for i in range(1, n):
  4. # 判断 str(x) 在不在 str(i) 中,有就进 if
  5. if str(x) in str(i):
  6. for j in str(i):
  7. if str(x) == j:
  8. count += 1
  9. return count
  10. n = int(input("最大范围(-1): "))
  11. x = int(input("输入要统计的数: "))
  12. print(f"{x}的次数为:{num(n, x)}")

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/535191
推荐阅读
相关标签
  

闽ICP备14008679号