ruby和python简单对比
先說(shuō)說(shuō)題外話,以前很少寫(xiě)blog,最開(kāi)始有整理過(guò)技術(shù)文章到QQ空間,后面整理到WORD以及文本里。再后來(lái)網(wǎng)上查找資料的之后發(fā)現(xiàn)cnblog上面的蠻專業(yè)的。我也覺(jué)得把資料存放在網(wǎng)絡(luò)中永遠(yuǎn)不會(huì)丟。所以就出現(xiàn)在這里了。
今天從五角場(chǎng)回來(lái)后,想起上個(gè)月買的《學(xué)習(xí)ruby》一書(shū)。買這個(gè)本書(shū)完全是因?yàn)閜uppet是ruby寫(xiě)的原因。多多少少會(huì)用到點(diǎn)ruby方面的知識(shí)。一大下午的時(shí)間翻閱了這個(gè)本數(shù)后,和原來(lái)判斷是相同,ruby和python很有80%,甚至更多的相同之處。面向?qū)ο?#xff0c;數(shù)組,哈希表都和python基本相同。簡(jiǎn)單的對(duì)比后,我還是覺(jué)得python更好,更加簡(jiǎn)潔易懂。
ruby一個(gè)功能有多重表現(xiàn)方式很不好,比如語(yǔ)句塊可以do,end或者{}。另外,可能是看的教材比較簡(jiǎn)略,感覺(jué)基本類的方法沒(méi)有python多。
?
不過(guò)ruby也有些不錯(cuò)的地方:
1、each方法
和python的迭代器類似,不過(guò)是顯示的使用。
可用在字符串,數(shù)組,哈希,文件(ruby的說(shuō)法)
aList=['a','b','c']
aList.each do |e|
puts e
end
puts有點(diǎn)類似print,echo輸入,對(duì)應(yīng)的輸入是
aList.each { |e|?puts e }
{}和do end一樣,不過(guò)優(yōu)先級(jí)更高。
遍歷字符串
aString='abc'
aString.each { |i| puts i}
遍歷哈希的k,v
zip={'a'=>1,'b'=>2,'c'=>3,}
需要注意的ruby哈希和python字典key value組合不一樣ruby是=>,python是:分隔。
zip.each {|k,v| puts "#{k},#{v}"}
和python字典一樣也有zip.each_key,zip.each_value
?
2、Dir類
在我影響中python木目錄沒(méi)有當(dāng)做一個(gè)類。ruby中把目錄當(dāng)成一個(gè)類
Dir.chdir('/root')
Dir.getwd()
Dir.pwd()
Dir.mkdir()
Dir.entries()方面能返回目錄下的文件目錄隱藏文件為一個(gè)數(shù)組,所以可以用each方面遍歷目錄。
Dir.entries('/root').each {|f| puts f}
同樣也可以遍歷文件內(nèi)容
File=file.open('/root/test.file')
File.each { |line| print "#{file.lineno}." line }
file.lineno 行編號(hào)
?
3、嵌入ruby
這個(gè)在puppet中運(yùn)用于模板中
#!/usr/bin/env ruby
require 'erb' #類似python import
person = "Jin"
temp=ERB.new("Hello,<%= person %>")
puts temp.result(binding)
?
puppet中的實(shí)例
<% nameservers.each do |ns| %>nameserver <%= ns %>
<% end %>
標(biāo)簽 說(shuō)明
<% ... %> ruby代碼,輸入結(jié)果嵌入一行中
<%= ... %> ruby表達(dá)式,以計(jì)算結(jié)果取代,如用變量取代。
<%# ... %> 測(cè)試;忽略,在測(cè)試時(shí)很好用
?
4、好像Rails還不錯(cuò)
感覺(jué)這個(gè)這個(gè)開(kāi)發(fā)框架比django簡(jiǎn)單。僅僅是感官而已,沒(méi)有深入研究。
轉(zhuǎn)載于:https://www.cnblogs.com/diege/archive/2012/09/22/2698300.html
總結(jié)
以上是生活随笔為你收集整理的ruby和python简单对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 设计模式- 命令模式
- 下一篇: 分享一些国外推广的站点