zoukankan      html  css  js  c++  java
  • 递归函数之阶乘和字符串反转-基于R和Python

    Python课第五周开始讲函数了。递归函数。递归在python中不能超过900多层,否则报错内存溢出什么的。同样在R中递归太深也会报错,阈值和python中大概一样,900多次就报错了。

    error message:

    错误: 评估嵌套太深:无穷递归/ options(expressions=)?
    收捲时出错: 评估嵌套太深:无穷递归/ options(expressions=)?

    基于Python

    # 递归函数 阶乘
    def fact(n):
        if n==0:
            return 1
        else:
            return n*fact(n-1)
    # 递归翻转字符串
    def reverse(s):
        if s=='':
            return s
        else:
            return reverse(s[1:])+s[0]
    

    Python运行结果

    fact(12)
    Out[9]: 479001600
    
    reverse('hello world')
    Out[10]: 'dlrow olleh' 

    基于R

    # 阶乘
    fact <- function(n){
        if(n==0) return(1) #基例在这
        else return(n*fact(n-1))
    }
    # 翻转字符串
    reverse <- function(s){
        if(s=='') return('') #基例在这
        else return(paste0(reverse(substring(s,2)),substr(s,1,1)))
    }
    

    R运行结果

    > reverse('hello world')
    [1] "dlrow olleh"
    > fact(12)
    [1] 479001600

    吐个槽:

    不像R的IDE已经形成R studio一家独大的局面,Python 的IDE很多,都不怎么好用,现在用Anaconda。

    Anaconda目前支持Mac OS X 10.7 -10.10,昨晚手残,升级了系统到OS X EI Capitan 10.11.1 (15B42),然后就傻逼了,Anaconda死活一直loading app list,不能成功加载app.今天上午人品爆发,spyder-app神奇的又能加载成功了。

    一直是学习的Python3,想练练手爬个虫,结果又是一堆的坑。目前是到能把网页以文本形式打印出来这一步,目前还未找到和R rvest功能类似的方法,能直接深入到html_node取回自己想要的信息。

    吐槽结束。

    推荐一个python在线教程,博主是大神,Python2,Python3的教程都有,很全面。

    The Data Visualisation Catalogue 教你如何正确使用图表。

    向大神学习。

  • 相关阅读:
    windows和linux下安装 redis
    YII1 配置redis并使用
    YII1 安装smarty模版引擎
    thinkphp5 阿里云短信 发送多参数的短信
    利用securecrt或者xshell 下载服务器端文件到本地windows系统中
    Swift 内存管理
    扩展和协议
    继承
    构造与析构
    方法
  • 原文地址:https://www.cnblogs.com/litao1105/p/4924407.html
Copyright © 2011-2022 走看看