ruby和python简单对比
2012-09-22 18:46
369 查看
先说说题外话,以前很少写blog,最开始有整理过技术文章到QQ空间,后面整理到WORD以及文本里。再后来网上查找资料的之后发现cnblog上面的蛮专业的。我也觉得把资料存放在网络中永远不会丢。所以就出现在这里了。
今天从五角场回来后,想起上个月买的《学习ruby》一书。买这个本书完全是因为puppet是ruby写的原因。多多少少会用到点ruby方面的知识。一大下午的时间翻阅了这个本数后,和原来判断是相同,ruby和python很有80%,甚至更多的相同之处。面向对象,数组,哈希表都和python基本相同。简单的对比后,我还是觉得python更好,更加简洁易懂。
ruby一个功能有多重表现方式很不好,比如语句块可以do,end或者{}。另外,可能是看的教材比较简略,感觉基本类的方法没有python多。
不过ruby也有些不错的地方:
1、each方法
和python的迭代器类似,不过是显示的使用。
可用在字符串,数组,哈希,文件(ruby的说法)
aList=['a','b','c']
aList.each do |e|
puts e
end
puts有点类似print,echo输入,对应的输入是
aList.each { |e| puts e }
{}和do end一样,不过优先级更高。
遍历字符串
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木目录没有当做一个类。ruby中把目录当成一个类
Dir.chdir('/root')
Dir.getwd()
Dir.pwd()
Dir.mkdir()
Dir.entries()方面能返回目录下的文件目录隐藏文件为一个数组,所以可以用each方面遍历目录。
Dir.entries('/root').each {|f| puts f}
同样也可以遍历文件内容
File=file.open('/root/test.file')
File.each { |line| print "#{file.lineno}." line }
file.lineno 行编号
3、嵌入ruby
这个在puppet中运用于模板中
#!/usr/bin/env ruby
require 'erb' #类似python import
person = "Jin"
temp=ERB.new("Hello,<%= person %>")
puts temp.result(binding)
puppet中的实例
<% nameservers.each do |ns| %>nameserver <%= ns %>
<% end %>
标签 说明
<% ... %> ruby代码,输入结果嵌入一行中
<%= ... %> ruby表达式,以计算结果取代,如用变量取代。
<%# ... %> 测试;忽略,在测试时很好用
4、好像Rails还不错
感觉这个这个开发框架比django简单。仅仅是感官而已,没有深入研究。
今天从五角场回来后,想起上个月买的《学习ruby》一书。买这个本书完全是因为puppet是ruby写的原因。多多少少会用到点ruby方面的知识。一大下午的时间翻阅了这个本数后,和原来判断是相同,ruby和python很有80%,甚至更多的相同之处。面向对象,数组,哈希表都和python基本相同。简单的对比后,我还是觉得python更好,更加简洁易懂。
ruby一个功能有多重表现方式很不好,比如语句块可以do,end或者{}。另外,可能是看的教材比较简略,感觉基本类的方法没有python多。
不过ruby也有些不错的地方:
1、each方法
和python的迭代器类似,不过是显示的使用。
可用在字符串,数组,哈希,文件(ruby的说法)
aList=['a','b','c']
aList.each do |e|
puts e
end
puts有点类似print,echo输入,对应的输入是
aList.each { |e| puts e }
{}和do end一样,不过优先级更高。
遍历字符串
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木目录没有当做一个类。ruby中把目录当成一个类
Dir.chdir('/root')
Dir.getwd()
Dir.pwd()
Dir.mkdir()
Dir.entries()方面能返回目录下的文件目录隐藏文件为一个数组,所以可以用each方面遍历目录。
Dir.entries('/root').each {|f| puts f}
同样也可以遍历文件内容
File=file.open('/root/test.file')
File.each { |line| print "#{file.lineno}." line }
file.lineno 行编号
3、嵌入ruby
这个在puppet中运用于模板中
#!/usr/bin/env ruby
require 'erb' #类似python import
person = "Jin"
temp=ERB.new("Hello,<%= person %>")
puts temp.result(binding)
puppet中的实例
<% nameservers.each do |ns| %>nameserver <%= ns %>
<% end %>
标签 说明
<% ... %> ruby代码,输入结果嵌入一行中
<%= ... %> ruby表达式,以计算结果取代,如用变量取代。
<%# ... %> 测试;忽略,在测试时很好用
4、好像Rails还不错
感觉这个这个开发框架比django简单。仅仅是感官而已,没有深入研究。
相关文章推荐
- python和ruby语法的简单对比
- Python和Ruby对比
- 对比Ruby和Python的垃圾回收
- shell、perl和python的简单对比
- python的requests类库(一)requests库和urllib包对比:一个简单get请求
- Java, Python, Ruby, PHP, C等语言性能对比
- Ruby Python Java C C++ 数组使用方法对比
- Ruby对比Python的优势和劣势
- 技术文章 | Python和Ruby两大语言全方位对比
- Java简单入门【对比Python】Part1.POST表单请求
- python和ruby对比
- perl,python和ruby的对比
- Python与C++ 程序的简单实例对比
- 用数据阐述Java, Python, Ruby, PHP, C等各语言性能对比
- 对比Ruby和Python的垃圾回收(2):代式垃圾回收机制
- Java简单入门【对比Python】Part2.POST JOSN请求
- python和ruby变量作用域对比
- 构建简单的 C++ 服务组件,第 2 部分: 通过服务组件体系结构使用 Python、Ruby 和 Web 服务
- Python和Ruby对比
- Python与C++ 程序的简单实例对比