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 05 Python
Python中endswith()函数的基本使用
Apr 07 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
May 04 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Python函数返回不定数量的值方法
Jan 22 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
python 爬取疫情数据的源码
Feb 09 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python urllib request模块发送请求实现过程解析
Dec 10 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读取数据库信息的几种方法
2008/05/24 PHP
php在线代理转向代码
2012/05/05 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
python访问纯真IP数据库的代码
2011/05/19 Python
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
django允许外部访问的实例讲解
2018/05/14 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
常用的10个Python实用小技巧
2020/08/10 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
工程师岗位职责
2013/11/08 职场文书
医学专业毕业生推荐信
2013/11/14 职场文书
表彰先进集体通报
2014/01/12 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
祝寿主持词
2015/07/02 职场文书
2015年暑假生活总结
2015/07/13 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
Python常遇到的错误和异常
2021/11/02 Python