ruby和Python简单对比

前不久学了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的不定参数是用元组实现的。

时间: 2024-10-12 22:43:21

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

python和ruby语法的简单对比

进入交互解释器 python irb / pry 设置编码 #coding=utf-8   #coding:utf-8 包管理 easy_install/pip  gempip install Markdown gem install Markdown 注释 python单行注释# 开头python多行注释使用三个单引号(''')或三个单引号(""").''' 多行注释1多行注释2 ''' ruby单行注释用#开头ruby多行注释使用  =begin =end=begin多行

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

aria2是一个十分牛逼的下载神器,有时候项目需要一个很牛逼的下载中间件的话,aria2是一个不错的选择.其中支持jsonrpc和websocket的特性尤其诱人.但是python用起来还是有点不爽,所以简单封装一下aria2的jsonrpc. 所以,用python简单的封装了aria2的jsonrpc中adduri的脚本. 使用起来非常简单,仅需要三行代码. from pyaria2 import Jsonrpc jsonrpc = Jsonrpc('localhost', 6800) res

Ruby与Python开发的环境IDE配置(附软件的百度云链接)

Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana Studio3(非常非常好,Ruby和Python开发首选,,和Eclipse使用基本完全一样,提示功能完爆Eclipse,而且界面非常漂亮) 链接:http://pan.baidu.com/s/1cFQr2u 密码:vfc4 教程地址:http://www.cnblogs.com/lsgwr/p/5

Python简单操作笔记

Python 类型转换 str(),repr()|format() : 将非字符类型转成子串 int() : 转为整形 float() : 转为浮点型 list(s) : 将字串s转成列表 tuple(s) : 将字串s转成元组 set(s) : 将字串s转成集合 frozenset(s) : 将字串s转成不可变集合 dict(s) : 创建字典 其d必须是(key,value)的元组序列; chr(x) : 将整形转成字符 ord(x) : 将字符转成整形 hex(x) : 将整形转换成16进

Python简单实现基于VSM的余弦相似度计算

在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知识.        这篇文章主要是先叙述VSM和余弦相似度相关理论知识,然后引用阮一峰大神的例子进行解释,最后通过Python简单实现百度百科和互动百科Infobox的余弦相似度计算. 一. 基础知识 第一部分参考我的文章: 基于VSM的命名实体识别.歧义消解和指代消解 第一步,向量空间模型VSM 

Python 简单爬虫

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import os import time import webbrowser as web import random count = random.randint(20,40) j = 0 while j < count:     i = 0     while i <= 5:         web.open_new_tab('http://www.cnblogs.com/evilxr/p/37642

python网络爬虫入门(二)——用python简单实现调用谷歌翻译

最近在看国外的文档,有些生词不认识.就用谷歌翻译来理解,用着用着闲来无事就按F12查看了下页面的源代码.发现可以用python简单的实现下谷歌翻译的页面功能.于是先上网搜下有没有类似的文章博客,发现几篇不错的,于是参考其他代码与自己的思路,简单的实现了下翻译的功能,代码如下: import re import urllib,urllib2 #----------模拟浏览器的行为,向谷歌翻译发送数据,然后抓取翻译结果,这就是大概的思路------- def Gtranslate(text): #t

【美妙的Python之中的一个】Python简单介绍及环境搭建

美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:          Python英文意思为蟒蛇,故又称为蟒蛇语言,在图标设计上有所体现,贵铎·范·罗萨姆(Guido van Rossum)于1989年创立.Python的特质,简单,优雅,健壮,继承传统编程语言的强大性与通用性,同一时候兼具简单脚本的简单性.         Python的哲学:仅仅用一种方法,最好是仅仅有一种方法

python简单模拟:把树存储在数据表中

在数据库中建立一个表,有Id, fatherId, value 三个字段,就可以存储一个树. 如何把该表中的数据以树的形式呈现出来,下面小弟用python简单模拟一下. 初学python,请大家多多指点.另外非常感谢http://www.cnblogs.com/lzyzizi/对小弟的指点. 运行结果: A-1 B-1 C-1 D-1 E-1 E-2 C-2 B-2 C-3 C-4 源代码: 1 #!user/bin/python 2   3  class noteModel: 4 def __