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 json encode datetime类型
Dec 28 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
python简单实现刷新智联简历
Mar 30 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
python自动下载图片的方法示例
Mar 25 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 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 iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
vue的for循环使用方法
2019/02/12 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
python 控制语句
2011/11/03 Python
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
使用Django清空数据库并重新生成
2020/04/03 Python
什么是python的自省
2020/06/21 Python
Python自带的IDE在哪里
2020/07/01 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
企业办公室岗位职责
2014/03/12 职场文书
个人查摆剖析材料
2014/10/16 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
python 实现图片特效处理
2022/04/03 Python