Python中set与frozenset方法和区别详解
set(可变集合)与frozenset(不可变集合)的区别:set无序排序且不重复,是可变的,有add(),remove()等方法。既然是可变的,所以它不存在哈希值。基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in...
View Articlepython实现多线程的两种方式
目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用。 2.7版本之前python对线程的支持还不够完善,不能利用多核CPU,但是2.7版本的python中已经考虑改进这点,出现了multithreading...
View Article冒泡排序算法及Ruby版的简单实现
算法原理:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。实现假设有这样一个数组: [4, 1, 3,...
View Article以MVC的思维方式来理解Ruby on Rails框架的设计结构
在rails中,发送一个请求(/users)的处理全过程如下: 1)、浏览器发送请求(/users) 2)、Rails的 routes会把请求路由给users_controller的index方法 3)、users_controller回调用User Model获取所有的user 4)、User Model会从数据库中把所有的user读取出来, 5)、User...
View ArticleGitHub倡导的Ruby代码编写风格总结
源代码布局方面: 1、所有源文件以UTF-8编码 2、使用2个空格的缩进 3、使用Unix风格的换行符(\n),windows(\r\n)。可使用git config --global core.autocrlf true 防止产生windows风格的换行符。 4、在‘,',‘;'后,操作符(除指数操作之外),‘{',‘}'的前后增加空格,增加代码的可读性。...
View ArticleMonkey Patch猴子补丁编程方式及其在Ruby中的运用
何谓猴子补丁(Monkey Patch)?在动态语言中,不修改源代码而对功能进行追加和变更。使用猴子补丁的目的: 1、追加功能 2、功能变更 3、修正程序错误 4、增加钩子,在执行某个方法的同时执行一些其他的处理,如打印日志,实现AOP等,...
View ArticleRuby使用Monkey Patch猴子补丁方式进行程序开发的示例
猴子补丁(Monkey Patch)是一种特殊的编程技巧。Monkey patch 可以用来在运行时动态地修改(扩展)类或模块。我们可以通过添加 Monkey Patch 来修改不满足自己需求的第三方库,也可以添加 Monkey Patch 零时修改代码中的错误。词源Monkey patch 最早被称作 Guerrilla patch,形容这种补丁像游击队员一样狡猾。后来因为发音相似,被称为...
View ArticleRuby面向对象编程中类与方法的基础学习
打开类和猴子补丁 在Ruby中,类定义的方法和其他的语句没有任何区别,都是一行一行的执行下去的。如下例子:class Example def method_1 puts "method 1" end end class Example def method_2 puts "method 2" end end 本例中,当第一次定义Class...
View ArticleLuhn算法学习及其Ruby版实现代码示例
关于LUHN算法LUHN算法,主要用来计算信用卡等证件号码的合法性。1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存。2、把所有数字相加,得到总和。3、如果信用卡号码是合法的,总和可以被10整除。Luhn 算法或是Luhn...
View Article详解Ruby中的代码块及其参数传递
一,块的声明 块的声明在函数调用之后,用{..}括起来,或do..end封装。{}一般用在单行语句上,do..end用在多行语句上。(1..4).each{|v| print "#{v} "} #输出1 2 3 4 块可以带参数,与函数参数不同,块参数用||封装,当然,可以带多个参数。这些参数怎么定义,实际上是在函数内部定义好的,后面会讲到。二,块内变量的访问...
View Article深入理解Ruby中的代码块block特性
block是什么?在Ruby中,block并不罕见。官方对block的定义是“一段被包裹着的代码”。当然,我觉得这样的解释不会让你变的更明白。对block的一种更简单的描述是“一个block就是一段存储在一个变量中的代码,它和其他的对象一样,可以被随时的运行”然后,咱们通过看一些代码,之后再把这些代码重构成Ruby中的block形式。通过代码来实际的感受,更加直观。比如,对两个数做加法?puts 5...
View ArticleRuby中的block代码块学习教程
1、什么是代码块在Ruby中,{}或do...end之间的代码是一个代码块。代码块只能出现在一个方法的后边,它紧接在方法最后一个参数的同一行上,由yield关键字调用。例如:[1,2,3,4,5].each { |i| puts i }[1,2,3,4,5].each do |i| puts...
View ArticleRuby中的Proc类及Proc的类方法Proc.new的使用解析
Proc是对块及其context(局部变量的作用域以及栈框架)进行对象化处理之后得到的过程对象。您可以像使用无名函数那样来使用Proc,但它不会导入局部变量的作用域(可以把动态局部变量用作Proc局部变量)。在下例中,正因为Proc一直保持着局部变量的作用域,所以才能调用var变量。var = 1$foo = Proc.new { var }var = 2def foo $foo.callendp...
View Article详解Ruby中的代码块对象Proc
Proc对象Proc是由块转换来的对象。创建一个Proc共有四种方法,分别是:示例代码# 法一inc = Proc.new { | x | x + 1}inc.call(2) #=> 3# 法二inc = lambda {| x | x + 1 }inc.call(2) #=> 3# 法三inc = ->(x) { x + 1}inc.call(2) #=> 3# 法四inc...
View ArticleRuby编写HTML脚本替换小程序的实例分享
在一个文件里有很多以下内容:<p style="display:none">此题选D。............</p>而本人要实现的功能是将它替换成:<div style="display:none"...
View Articlepython实现简单购物商城
本文为大家分享了购物商城小程序,供大家参考,具体内容如下软件版本:python3.x功能:实现简单购物商城1.允许用户选择购买多少件2.允许多用户登录,下一次登录后,继续按上次的余额继续购买3. 允许用户查看之前的购买记录(显示购买时间) 4....
View Articlepython字符串的常用操作方法小结
本文实例为大家分享了python字符串的操作方法,供大家参考,具体内容如下1.去除空格str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格>>> a=' hello '>>> b=a.strip()>>>...
View Articlepython实现用户登录系统
本文实例为大家分享了用户登录系统python实现代码,供大家参考,具体内容如下注意事项: 1、使用python3执行程序。按提示输入1或2,登录或退出程序 2、输入用户名后,如果用户名被锁定及无效用户名,程序会退出,请确保输入正确。 3、输入用户名正确后,输入密码。用户名正确的情况下,密码连续输错三次,用户将被锁定,禁止登录系统#!/usr/local/env...
View Articlepython列表的常用操作方法小结
本文实例为大家了python中列表(List)的详解操作方法,供大家参考,具体内容如下1.创建列表。只要把逗号分隔的不同的数据项使用方括号括起来即可List = ['wade','james','bosh','haslem']与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等2.添加新的元素List.append('allen') #方式一:向list结尾添加...
View Articlebat和python批量重命名文件的实现代码
最近从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),现在我也下载完了这些文件,也有这些文件的列表,就是不能一个一个的把文件给重命名吧所以从网上找了这几个脚本。一、使用bat脚本(windows系统默认可用)打开记事本,将这些代码写入记事本,另存为xx.bat文件(注意后缀名,很多小白保存成了xx.bat.txt,因为txt是隐藏的,以为不行)@echo offfor /r...
View Article