ruby和python简单对比
先说说题外话,以前很少写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简单。仅仅是感官而已,没有深入研究。
转载于:https://www.cnblogs.com/diege/archive/2012/09/22/2698300.html
ruby和python简单对比相关推荐
- 对比Ruby和Python的垃圾回收(2):代式垃圾回收机制
本文由 伯乐在线 - 熊崽Kevin 翻译自 patshaughnessy.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 对比Ruby和Python的垃圾回收(1) 上周,我根据之前在RuPy ...
- 对比 Ruby 和 Python 的垃圾回收
注:这篇文章基于我在布达佩斯的RuPy大会上所作的演讲.我觉得与其直接将幻灯片发布出来,不如在我还有印象的时候将它写成博客来的更有意义.同 样,我会在将来发布RuPy大会的视频链接.我计划将在Ruby ...
- sql和python的区别_数据处理简单对比:Excel,SQL,Python
前言 无论是什么工具,做数据分析的时候一定会涉及到两类工作: 合并多个关联表 做数据透视表 这篇文章简单对比一下Excel.SQL和Python在这两类任务上的实现过程,从而对比其异同. 用到的数据表 ...
- 主流WEB开发语言简单对比(转)
主流WEB开发语言简单对比 原文链接:http://www.uml.org.cn/site/201401091.asp 随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...
- 主流WEB开发语言简单对比
主流WEB开发语言简单对比 随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已经有将近半个世纪了.经过这半个世纪的语言发展,我们所接触的语言基本上都是高级语言了.这篇文章主要对 ...
- python好学-所有人都说Python 简单易学,为何你觉得难?
记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 学习之前网上的教材看了,Python的书也看了,包括<核心 ...
- Python 简单入门指北(二)
Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...
- php 获取当前url hash,http - 我可以在服务器端应用程序(PHP,Ruby,Python等)上读取URL的哈希部分吗?...
http - 我可以在服务器端应用程序(PHP,Ruby,Python等)上读取URL的哈希部分吗? 假设URL为: www.example.com/?val=1#part2 PHP可以使用GET数组 ...
- PHP、Node、Ruby和Python应用,漏洞修复
12 月 10 日凌晨,Apache 开源项目 Log4j2 的远程代码执行漏洞细节被公开,作为当前全球使用最广泛的 java 日志框架之一.该漏洞影响着很多全球使用量前列的开源组件,如 Apache ...
最新文章
- R语言ggplot2可视化:jupyter中设置全局图像大小、jupyter中自定义单个ggplot2图像结果的大小
- Sparsity稀疏编码(一)
- Java虚拟机详解03----常用JVM配置参数
- .bin 文件用excel文件打开_用PYTHON读写excel文件
- 用MATLAB结合四种方法搜寻罗马尼亚度假问题
- jetty java web_i-jetty 下的JavaWeb开发(一)
- zookeeper 四字命令的使用
- 调试工具BTrace 的使用--例子
- 【数学问题2】动力学建模
- 强行进入加密QQ空间
- FME将ArcGIS符号化转为CAD填充
- 百度地图,坐标反查,拾取坐标位置
- MySQL快速解决“is marked as crashed and should be repaired“故障
- 自走棋冷知识之源码篇
- 刚装修的房子多久能住?集成墙面真的好吗?
- 发表Nature等杂志四十多篇论文老师带您学单细胞测序数据挖掘和课题设计 2020年1月11-12日 上海...
- 多核CPU 跟 进程/线程
- Vue中利用moment.js(时间格式化插件)做一个倒计时组件
- 扫描文件转换成word软件
- java通过代理使用redis,redis自动关闭连接,释放资源
热门文章
- 我的网站-广西信息平台_广西虚拟主机
- .Net Core中利用TPL(任务并行库)构建Pipeline处理Dataflow
- 部署ajax服务-支持jsonp
- JDK8对并发的新支持
- Android OpenCV Manager简介
- Using mongoDB's Profiler analyze the performance of database operations
- objective-c如何在linux下进入Modern模式
- 黑暗城堡-(最小生成树+最短路)
- 5中排序算法(冒泡,选择,插入,快速,归并)
- python与mysql数据库连接中常见错误