標籤:
前不久學了ruby,發現ruby和Python非常像,於是自個測試對比了下,測完了才知道網上有現成的……下面是測試結果 序列(包括列表和元組等)有分區的特點:可能會比較方便的提取其中特定元素,暫時感覺沒什麼用:注意是用:分開兩個數字。負號表示倒數第幾個留空表示開頭或者結尾,python中的分區可以等距分割,格式是兩個冒號ruby則是[4...7]這樣用兩個或者三個句號分區,也可以用[1,2]這種逗號不同的是,ruby似乎不能等距分割,而且ruby逗號方式下兩個參數的意義是第一個是起始元素序號,第二個參數是長度,而python中的兩個參數表示第一個是起始元素序號,第二個是下一段起始元素序號,與ruby中的...相同類似於ruby中的puts“hello world”*4python 中也有 print “hello world”*4當然python中還有[42]*10,好吧ruby也有序列相加均使用簡單的+python使用len(),ruby使用.lengthpython使用in檢查一個字元是否在字串中,ruby使用include?而且均可以用於檢查列表/數組,都可以檢查一個序列是否在一個序列的序列中python 使用min()、max(),Ruby 使用 .min .max,但是ruby.min .max後面可以接一小段含參代碼以對最小值、最大值、第二小值、第二大值等進行一些簡單的處理。python中的字串不能直接被修改 往往用list函數轉換成列表後修改Ruby中的字串可以直接的被修改,而且替換元素不必與被替換元素等長,猜想ruby中的字串就是以列表方式儲存的python中刪除列表元素使用del list[] ruby 使用.deletepython 刪除方式可以有刪除特定[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”% stringruby 用 “#{ string}"python 使用input()和raw_input()ruby使用gets 和 gets.chomppython 有.find() 返回子串所在位置最左端索引//和index不同的地方在於它可以指定起始點和結束點ruby使用。indexpython使用.join() ruby .join 效果均為串連數組python使用。lower() ruby使用。downcase類似的有:.capitalize() .capitalize.upper() .upcase.swapcase() .swapcase.strip() .strip.lstrip() .lstrip.rstrip() .rstrippython用import ruby 用requirepython和ruby的次冪符號** 都是右結合方式都支援序列解包(多重賦值)python的if while def後面都得有個:ruby不用,但是ruby在結尾都得有個endpython的elif = ruby的elsifpython有== is Ruby有== <=>//is是‘同一性運算子’二者都有斷言assertpython使用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 有字典和hashruby沒有字典,ruby 只有hash python的方法和ruby的方法都是按位置穿參數,不過python可以指定參數名傳參(關鍵字參數),此時不依賴於位置。 python和ruby都支援不定參數,python前面加*,ruby前面可以加*python的不定參數是用元組實現的。
ruby和Python簡單對比