前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果
 
序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时感觉没什么用:注意是用:分开两个数字。负号表示倒数第几个
留空表示开头或者结尾,python中的分片可以等距分割,格式是两个冒号
ruby则是[4...7]这样用两个或者三个句号分片,也可以用[1,2]这种逗号
不同的是,ruby似乎不能等距分割,而且ruby逗号方式下两个参数的意义是第一个是起始元素序列号,第二个参数是长度,而python中的两个参数表示第一个是起始元素序列号,第二个是下一段起始元素序列号,与ruby中的...相同
类似于ruby中的puts“hello world”*4
python 中也有 print “hello world”*4
当然python中还有[42]*10,好吧ruby也有
序列相加均使用简单的+
python使用len(),ruby使用.length
python使用in检查一个字符是否在字符串中,ruby使用include?而且均可以用于检查列表/数组,都可以检查一个序列是否在一个序列的序列中
python 使用min()、max(),Ruby 使用 .min .max,但是ruby.min .max后面可以接一小段含参代码以对最小值、最大值、第二小值、第二大值等进行一些简单的处理。
python中的字符串不能直接被修改 往往用list函数转换成列表后修改
Ruby中的字符串可以直接的被修改,而且替换元素不必与被替换元素等长,猜想ruby中的字符串就是以列表方式存储的
python中删除列表元素使用del list[] ruby 使用.delete
python 删除方式可以有删除特定[2],也可以删除一段[2:3],ruby 可以删除具有特定内容的元素,如:delete “word”,成功返回元素,失败返回nil,会直接的改变列表,ruby删除指定序列号元素似乎没有直接的方法,可以用list。delete list【2】                                        
ruby也可以简单的使用-号删除,但是要用[]括起来而且删除不会实质改变数组,而是返回元素被删除后的列表
python 打印控制台只用print ,ruby有print、puts、p#为阅读美观还是敲个tab吧……
python:          ruby:
.append()           <<     .push
.count()             .count()
.extend()           .concat 
.index()               .index
.insert()              .insert
.pop()                 .pop
.remove()            .delete/.delete_if{|blocks| block}
.reverse()            .reverse
.sort()                 .sort
 python的排序有key = len这种可以按特定的方式排序的方式,有sort(method) 这样的特定排序.
Ruby的排序则是使用{|a,b| block}这样特定的排序
python 用“%s is it”% string
ruby 用 “#{ string}"
python 使用input()和raw_input()
ruby使用gets 和 gets.chomp
python 有.find() 返回子串所在位置最左端索引//和index不同的地方在于它可以指定起始点和结束点
ruby使用。index
python使用.join() ruby .join 效果均为连接数组
python使用。lower() ruby使用。downcase
类似的有:
.capitalize()    .capitalize
.upper()          .upcase
.swapcase()    .swapcase
.strip()            .strip
.lstrip()           .lstrip
.rstrip()           .rstrip
python用import ruby 用require
python和ruby的次幂符号** 都是右结合方式都支持序列解包(多重赋值)
python的if while def后面都得有个:ruby不用,但是ruby在结尾都得有个end
python的elif = ruby的elsif
python有== is Ruby有== <=>//is是‘同一性运算符’
二者都有断言assert
python使用for keys in dict 遍历字典中的元素 ruby使用。each{|k,v| block}遍历
python的exec可以执行一段字符串
ruby是eval//python的eval是可以把字符串当成表达式求值
ruby和python均支持链式赋值:x=y=value
 
 
 
不同的是:
python有。title ruby没有
python有。islower() 。istitle() 。isupper()
python使用replace方法得到被替换后的字符串:ruby可以直接替换
都有split 格式是split() 和 .split 
python 有.translate() maketrans() ruby 没有
python 支持函数多重嵌套,函数名作为变量返回,可以被调用
ruby也支持多重嵌套,但是返回函数名字符串,不可以被调用
 
 
python 有字典和hash
ruby没有字典,ruby 只有hash
 
python的方法和ruby的方法都是按位置穿参数,不过python可以指定参数名传参(关键字参数),此时不依赖于位置。
 
python和ruby都支持不定参数,python前面加*,ruby前面可以加*
python的不定参数是用元组实现的。

ruby和Python简单对比的更多相关文章

  1. Rx与Async Task的简单对比

    有关Reactive Extensions的介绍可见https://rx.codeplex.com/,总的来说,你可以当它是又一个异步编程的框架,它以观察者模式实现了对数据流的的“订阅”.一个列表,一 ...

  2. python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  3. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  4. 一个用python简单的封装了aria2的jsonrpc中adduri的脚本

    aria2是一个十分牛逼的下载神器,有时候项目需要一个很牛逼的下载中间件的话,aria2是一个不错的选择.其中支持jsonrpc和websocket的特性尤其诱人.但是python用起来还是有点不爽, ...

  5. 百度 OCR API 的使用以及与 Tesseract 的简单对比

    目录 百度 OCR API 初探 用 Python 调用百度 OCR API 与 Tesseract 的简单对比 百度 OCR API 初探 近日得知百度在其 APIStore 上开放了 OCR 的 ...

  6. Ruby 和 Python 分析器是如何工作的?

    你好! 我作为一名编写Ruby profiler的先驱,我想对现有的Ruby和Python profiler如何工作进行一次调查. 这也有助于回答很多人的问题:“你怎么写一个profiler?” 在这 ...

  7. Ruby. Vs . Python

    前言:从语言的本质上来分析,我对Ruby持反对态度,毕竟语言是为了交流,在表达的效率层面为了正确性必须适当放弃复杂性.且有句老话说的好,Ruby In Rails 才是语言,而Ruby只是这个语言的工 ...

  8. Python简单实现在线更新下载

    Python简单实现 软件在线更新 在线下载(Python simple implementation of software online update and download) 文章来自:htt ...

  9. 警惕!PHP、Node、Ruby 和 Python 应用,漏洞还没结束!

    12 月 10 日凌晨,Apache 开源项目 Log4j2 的远程代码执行漏洞细节被公开,作为当前全球使用最广泛的 java 日志框架之一.该漏洞影响着很多全球使用量前列的开源组件,如 Apache ...

随机推荐

  1. [C++程序设计]有关形参与实参,及返回值说明

    有关形参与实参的说明:(1) 在定义函数时指定的形参,在未出现函数调用 时,它们并不占内存中的存储单元,因此称它们是 形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max ...

  2. 关于python的面向对象编程

    先写上代码,有代码才好理解: #filename:classdemo.py class test: '''just person''' a=1 b=2 c=0 def __init__(self): ...

  3. 愉快的开始 - 零基础入门学习Python000

    愉快的开始 让编程改变世界 Change the world by program 为什么是Python 既然有各种各样的编程语言可以选择,小甲鱼为什么极力鼓励大家来学习Python呢? 跨平台哦亲 ...

  4. 关于STM32工程的错误,狗血错误。。。..\CMSIS\core_cm3.h(1087): error: #20: identifier "IRQn_Type" is undefined

    这件事还是要写一篇博客了,为了后来的人不换致命性的错误 辛辛苦苦写的一个四个不同的引脚不同时钟不同寄存器分别产生四种不同占空比不同周期的信号方波程序超级经典  PS:页尾上传PWM波形产生工程附件供大 ...

  5. 《Programming WPF》翻译 目录

    原文:<Programming WPF>翻译 目录 注:第1.2章我只做了笔记,没有翻译,请大家阅读时注意. 还有就是,这本书的英文版本下载:[O'Reilly] Programming ...

  6. Java Service Wrapper

    Java Service Wrapper 将Java 应用程序部署成Windows系统服务Java Service Wrapper 1 Product Overview 1 Editions 2 Me ...

  7. SVN trunk、branch、tag的用法

    Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tag ...

  8. Wine --- Linux上运行 Windows 应用

    https://www.winehq.org/ Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linu ...

  9. nginx的配置与安装

    说说在Linux系统下安装配置Nginx的详细过程. 1. 从Nginx官网下载Nginx.目前最新的稳定版为:1.6.2. 2. 将下载下来的Nginx上传到/opt/nginx目录下.运行“tar ...

  10. Unity 关于属性的get/set

    学习Unity的可能多数是C#转过来的, 一进来的时候你会发现Unity编写代码,在一些视频或文章中.基本都没有用过get/set使用, 多数是public string name;这样写的公开字段, ...