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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
python3爬取各类天气信息
Feb 24 Python
10个Python小技巧你值得拥有
Sep 29 Python
python 对key为时间的dict排序方法
Oct 17 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
python装饰器使用实例详解
Dec 14 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
python学习之panda数据分析核心支持库
May 07 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 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/04/24 PHP
php递归列出所有文件和目录的代码
2008/09/10 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
python中List的sort方法指南
2014/09/01 Python
Python中使用SAX解析xml实例
2014/11/21 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
英语专业个人求职自荐信
2013/09/21 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
九寨沟导游词
2015/02/02 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
如何写辞职信
2015/05/13 职场文书
中学团支部工作总结
2015/08/13 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP