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脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
python序列化与数据持久化实例详解
Dec 20 Python
python解析多层json操作示例
Dec 30 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
tensorflow多维张量计算实例
Feb 11 Python
Python3使用tesserocr识别字母数字验证码的实现
Jan 29 Python
python中mongodb包操作数据库
Apr 19 Python
Python使用MapReduce进行简单的销售统计
Apr 22 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操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
java、javascript实现附件下载示例
2014/08/14 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
js实现随机抽奖
2020/03/19 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Keras loss函数剖析
2020/07/06 Python
python实现按日期归档文件
2021/01/30 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
数据库方面面试题
2012/04/22 面试题
小学开学寄语
2014/01/19 职场文书
七年级政治教学反思
2014/02/03 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
单位更名证明
2015/06/18 职场文书
学生病假条范文
2015/08/17 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
对讲机知识
2022/04/07 无线电