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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python imread、newaxis用法详解
Nov 04 Python
在python中求分布函数相关的包实例
Apr 15 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
Python办公自动化之Excel(中)
May 24 Python
浅谈Python数学建模之数据导入
Jun 23 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边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
Python的lambda匿名函数的简单介绍
2013/04/25 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
Python实现网站表单提交和模板
2019/01/15 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
求职信格式范本
2013/11/15 职场文书
户外活动总结范文
2014/04/30 职场文书
假面舞会策划方案
2014/05/29 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
导游词之千岛湖
2019/09/23 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers