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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
win7上python2.7连接mysql数据库的方法
Jan 14 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
Python 添加文件注释和函数注释操作
Aug 09 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 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/03/28 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
没编程基础可以学python吗
2020/06/17 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
校园环保建议书
2014/05/14 职场文书
公司节能减排倡议书
2014/05/14 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python