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 教你如何正确使用图表。

向大神写长城的诗学习。

递归函数之阶乘和字符串反转-基于R和Python的更多相关文章

  1. 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转

    线程安全使用(四)   这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...

  2. Java算法之字符串反转分析

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在基本的工作内容开发中,算法不会显得那么重要,而在百万级别的时候,差距非常大,今天带大家研究下常见的 ...

  3. 字符串反转C#的实现

    字符串反转是面试过程中出现频率较高的算法题,今天一个牛同事让我用C#帮他实现这个算法,前提当然是不能使用类库. 例如: how are you 的反转结果为 you are how. 算法1: 是我当 ...

  4. 趣味算法:字符串反转的N种方法(转)

    老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...

  5. Java实现字符串反转的8种方法

    /** * */ package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** * 8 种字符串反转的方法, ...

  6. [C/C++] String Reverse 字符串 反转

    #include <iostream> #include <string> #include <algorithm> #include <cstring> ...

  7. JAVA:字符串反转

    import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Lis ...

  8. python字符串反转 高阶函数 @property与sorted(八)

    (1)字符串反转 1倒序输出 s = 'abcde' print(s[::-1]) #输出: 'edcba' 2 列表reverse()操作 s = 'abcde' lt = list(s) lt.r ...

  9. python——3种字符串反转方法

    在学习过程中,总结了3种字符串反转方法: 1.切片法 这种方法最为简便 str='abad' print(str[::-1]) · 用切片操作,将字符串以步长-1重新整理,即 'str[-1],str ...

随机推荐

  1. sklearn中常用数据预处理方法

    1. 标准化(Standardization or Mean Removal and Variance Scaling) 变换后各维特征有0均值,单位方差.也叫z-score规范化(零均值规范化).计 ...

  2. speex编译

    首先去官网 https://www.speex.org/downloads/ 下载解压 将include.libspeex文件夹复制到自己新建工程的jni目录下 speex有关的类 package c ...

  3. `aclocal-1.10' is missing on your system

    root@ubuntu31:~/linux-ftools-master# makecd . && /bin/bash /root/linux-ftools-master/missing ...

  4. Ant,Maven与Gradle的概念的理解

    转载地址:http://www.jianshu.com/p/cd8fe9b16369# 我们还是以AndroidStudio 2.1.1为例来讲. 用AndroidStudio就逃不开跟Gradle打 ...

  5. JavaScript Date 学习心得

    1.要创建一个日期对象,使用new 操作符和Date构造函数即可: var date=new Date() 在调用Date构造函数而不传递参数的情况下,新创建的对象可以自动获得当前日期和时间.必须传入 ...

  6. 《Flink 源码解析》—— 源码编译运行

    更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...

  7. 如何有效防止DEDE织梦系统被挂木马安全设置(仅供参考)

    尊敬的客户,您好!     感谢广大客户对我司工作的信任和支持!      我司在最近的一个多月内陆续发现多起因 DedeCMS 安全漏洞造成网站被上传恶意脚本的事件,入侵者可利用恶意脚本对外发送大量 ...

  8. 显示器分辨率不同,部分winform控件在其他机器上显示不全

    在开发机器上效果如下: 而到其他电脑上效果如下: 解决办法: 将窗体的AutoScaleMode属性设置为None,尝试一下,应该可以了. 关于AutoScaleMode的属性,可以参考 http:/ ...

  9. vue的ajax

    vue的ajax常见的有两种 ,一种是 vue-resource,一种是axios vue-resource: 是vue的插件,非官方库, vue1.x 使用广泛 如何使用: 先在vue的脚本架上安装 ...

  10. oracle基本查询练习

    select * from regions; select * from countries; select * from locations; select * from departments; ...