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的不定参数是用元组实现的。
相关文章
相关标签/搜索