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


Posted in Python onFebruary 27, 2020

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

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 使用递归实现打印一个数字的每一位示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现图片批量剪切示例
Mar 25 Python
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python素数检测的方法
May 11 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
python3+PyQt5泛型委托详解
Apr 24 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
python模拟点击网页按钮实现方法
Feb 25 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
python json 递归打印所有json子节点信息的例子
Feb 27 #Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 #Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 #Python
matlab中imadjust函数的作用及应用举例
Feb 27 #Python
浅析matlab中imadjust函数
Feb 27 #Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 #Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 #Python
You might like
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python中的下划线详解
2015/06/24 Python
对python中list的五种查找方法说明
2020/07/13 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
设计师珠宝:Ylang 23
2018/05/11 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
python绘制云雨图raincloud plot
2022/08/05 Python