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中常用检测字符串相关函数汇总
Apr 15 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
TensorFlow的权值更新方法
Jun 14 Python
python http基本验证方法
Dec 26 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
python模拟实现斗地主发牌
Jan 07 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
为什么python比较流行
Jun 19 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
Yii分页用法实例详解
2014/12/04 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
python PIL模块的基本使用
2020/09/29 Python
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
业务员薪酬管理制度
2014/01/15 职场文书
便利店促销方案
2014/02/20 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
2014年林业工作总结
2014/12/05 职场文书
2014年路政工作总结
2014/12/10 职场文书
小学运动会加油词
2015/07/18 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL