递归函数之阶乘和字符串反转-基于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 教你如何正确使用图表。
向大神写长城的诗学习。
递归函数之阶乘和字符串反转-基于R和Python的更多相关文章
- 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转
线程安全使用(四) 这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...
- Java算法之字符串反转分析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在基本的工作内容开发中,算法不会显得那么重要,而在百万级别的时候,差距非常大,今天带大家研究下常见的 ...
- 字符串反转C#的实现
字符串反转是面试过程中出现频率较高的算法题,今天一个牛同事让我用C#帮他实现这个算法,前提当然是不能使用类库. 例如: how are you 的反转结果为 you are how. 算法1: 是我当 ...
- 趣味算法:字符串反转的N种方法(转)
老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...
- Java实现字符串反转的8种方法
/** * */ package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** * 8 种字符串反转的方法, ...
- [C/C++] String Reverse 字符串 反转
#include <iostream> #include <string> #include <algorithm> #include <cstring> ...
- JAVA:字符串反转
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Lis ...
- python字符串反转 高阶函数 @property与sorted(八)
(1)字符串反转 1倒序输出 s = 'abcde' print(s[::-1]) #输出: 'edcba' 2 列表reverse()操作 s = 'abcde' lt = list(s) lt.r ...
- python——3种字符串反转方法
在学习过程中,总结了3种字符串反转方法: 1.切片法 这种方法最为简便 str='abad' print(str[::-1]) · 用切片操作,将字符串以步长-1重新整理,即 'str[-1],str ...
随机推荐
- 3-----Scrapy框架的命令行详解
创建爬虫项目 scrapy startproject 项目名 例子如下: E:\crawler>scrapy startproject test1 New Scrapy project 'tes ...
- 前端面试题 ---- html篇
想要换工作了,转载自https://www.cnblogs.com/zhangshuda/p/8464772.html,感谢原博主. 一.html 1.html和xhtml区别 1. html:超文本 ...
- Dev Express Report 学习总结(二)关于如何使用Grouping分组
对于所有的报表工具来说,基本上所有Grouping功能的都很相似.正如前面说到的,Group处于Page Header和Page Footer之间,同时又将Detail包括与其中. 下面还是通过一个例 ...
- Hibernate通过自编写Sql修改
@Override public void updateTemMsg(String ticket,String time) { String sql="UPDATE INTER_TEMPTO ...
- UGUI 用脚本动态改变Button颜色组合
public Button button; void Start() { ColorBlock cb = new ColorBlock(); cb.normalColor = Color.red; c ...
- 编译opencv python接口
首先,安装依赖1 sudo apt-get install build-essential 2 sudo apt-get install cmake git libgtk2.0-dev pkg-con ...
- 关于Vim 的插件snipmate 以及它的安装方式
在网上看了http://study.163.com/course/courseMain.htm?courseId=269016#/courseMain 里关于snipmate 的视频 snipma ...
- apache2.2多域名绑定
apache2.2多域名绑定不同目录,将代码放在httpd.conf最后 NameVirtualHost *:80 <VirtualHost *:80> ServerName wo.com ...
- 解决MyEclipse报errors running builder ‘javascript validator’ on project
今天导入项目的时候,报了以下错误 MyEclipse测到功能代码变化(保存动作触发)就报错: errors running builder ‘javascript validator’ on proj ...
- [巩固C#] 一、特性是什么东东
阅读目录 关闭 前言 特性是什么? 那么什么是“元数据”? 特性到底是什么? 我们自定义一个特性玩玩 什么是命名参数? 我们来继续要看看AttributeUsage(这个描... 自定义特性可 ...