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 深入理解yield
Sep 06 Python
python实现系统状态监测和故障转移实例方法
Nov 18 Python
Python实现从脚本里运行scrapy的方法
Apr 07 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python读取指定日期邮件的实例
Feb 01 Python
Python定义函数功能与用法实例详解
Apr 08 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
django自带调试服务器的使用详解
Aug 29 Python
django自带的权限管理Permission用法说明
May 13 Python
python能开发游戏吗
Jun 11 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 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下过滤HTML代码的函数
2007/12/10 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP children()函数讲解
2019/02/03 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python实现抖音点赞功能
2019/04/07 Python
python装饰器常见使用方法分析
2019/06/26 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
建龙钢铁面试总结
2014/04/15 面试题
九年级数学教学反思
2014/02/02 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
公务员个人年终总结
2015/02/12 职场文书
教师继续教育反思周记
2015/06/25 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
用Python可视化新冠疫情数据
2022/01/18 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
windows server2008 开启端口的实现方法
2022/06/25 Servers