python 使用递归实现打印一个数字的每一位示例

 更新时间:2020年02月27日 12:08:15   作者:Jenny_He  
今天小编就为大家分享一篇python 使用递归实现打印一个数字的每一位示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,直接上代码吧!

def func(n):
  # 从高分为开始打印
  lengh = len(str(n))   # 确定数字的长度
  x = 10**(lengh-1)    # 确定数字的分位
  if n < 10:
    print(n)
  else:
    print(int(n/x))
    func(n % x) # 对n的x分位取余得到


def func1(n):
  # 从低分位开始打印
  if n < 10:
    print(n)
  else:
    print(n % 10)
    func(int(n / 10))

上述凶高分位打印的时候,会出现0无法打出的现象,现在加一个判断做一个优化

def f(n):
  num_len = len(str(n))
  if n < 10:
    print(n)
    # return n
  else:
    print(int(n / (10**(num_len-1))), end=' ')
    mod = n % (10**(num_len-1))
    dif_value = num_len - len(str(mod))
    if dif_value > 1:
      for i in range(1, dif_value):
        print(0, end=' ')
    f(mod)


f(200400900000)

当然也有同学有跟简单的方法来写,但是需要一定的理解力,就是把低分为的实现方法打印和调用换一个位置变可实现

def func1(n):
   # 从低分位开始打印
   if n < 10:
     print(n)
   else:
     func(int(n / 10))
     print(n % 10)

func(int(n / 10))这一步呢其实是先一直在调用,并没有实现打印,等调用到最后一位的时候,就开始回溯,没回溯一步,便打印一位数数来

补充拓展:使用python递归打印杨辉三角

啥也不说了,上代码吧

# 杨辉三角
 
# 1
# 1 1
# 1 2 1
#1 3 3 1
# ........
 
 
#传入上一行,生成下一行
def next_line(lst):
  newline = [1]
  for x in range(len(lst) - 1):
    newline.append(lst[x] + lst[x + 1])
  newline.append(1)
  return newline
 
#定义二位数组,存放;如果为了节约空间,也可以不用放二维数组
def yanglst(n):
  yanghui = []
  L = [1]
  for x in range(n):
    yanghui.append(L)
    L = next_line(L)
  return yanghui
 
for I in yanglst(20):
  print(I)

以上这篇python 使用递归实现打印一个数字的每一位示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Tensorflow分类器项目自定义数据读入的实现

    Tensorflow分类器项目自定义数据读入的实现

    这篇文章主要介绍了Tensorflow分类器项目自定义数据读入的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 详解pygame中Rect对象

    详解pygame中Rect对象

    Rect是pygame中的一个创建矩形的对象,它包含一些属性主要是两块:坐标和长宽,Pygame 通过 Rect 对象存储和操作矩形区域,这篇文章主要介绍了pygame中Rect对象,需要的朋友可以参考下
    2022-07-07
  • python小球落地问题及解决(递归函数)

    python小球落地问题及解决(递归函数)

    这篇文章主要介绍了python小球落地问题及解决(递归函数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 使用python脚本实现Redis未授权访问检测

    使用python脚本实现Redis未授权访问检测

    Redis未授权访问漏洞是一种安全漏洞,可能导致未经授权的用户或攻击者访问Redis数据库,甚至修改或删除其中的数据,这种漏洞通常发生在管理员未正确配置Redis实例的访问控制和认证机制时,本文介绍了python脚本实现Redis未授权访问漏洞利用,需要的朋友可以参考下
    2024-10-10
  • python图片二值化提高识别率代码实例

    python图片二值化提高识别率代码实例

    这篇文章主要介绍了python图片二值化提高识别率代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python面向对象之类和对象属性的增删改查操作示例

    Python面向对象之类和对象属性的增删改查操作示例

    这篇文章主要介绍了Python面向对象之类和对象属性的增删改查操作,结合实例形式分析了Python面向对象相关的类与对象属性常见操作技巧,需要的朋友可以参考下
    2018-12-12
  • python实现生成字符串大小写字母和数字的各种组合

    python实现生成字符串大小写字母和数字的各种组合

    这篇文章主要给大家介绍了关于python生成各种字符串的方法实例,给大家提供些思路,抛砖引玉,希望大家能够喜欢
    2019-01-01
  • 使用Python编写Linux系统守护进程实例

    使用Python编写Linux系统守护进程实例

    这篇文章主要介绍了使用Python编写Linux系统守护进程实例,本文先是讲解了什么是守护进程,然后给出了一个Python语言的简单实现,需要的朋友可以参考下
    2015-02-02
  • 基于python实现FTP文件上传与下载操作(ftp&sftp协议)

    基于python实现FTP文件上传与下载操作(ftp&sftp协议)

    这篇文章主要介绍了基于python实现FTP文件上传与下载操作(ftp&sftp协议),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • MacBook m1芯片采用miniforge安装python3.9的方法示例

    MacBook m1芯片采用miniforge安装python3.9的方法示例

    这篇文章主要介绍了MacBook m1芯片采用miniforge安装python3.9的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论