m1

[scala基础]--map基本操作

穿精又带淫゛_ 提交于 2019-12-07 19:11:52
运行环境:jdk1.7、scala-2.10.4 package study //数据结构map object TestMap { def main(args: Array[ String ]): Unit = { var m1=scala.collection.mutable.Map[ String ,Int](( "tom" , 12 ),( "jim" , 21 )) var m2=scala.collection.immutable.Map[ String ,Int](( "tom2" , 22 ),( "jim2" , 21 )) //取值 println ( "m1--->" +m1( "tom" )) println ( "m2--->" +m2( "tom2" )) //添加元素 m1+=( "jony" -> 2 ) m2+=( "jony2" -> 62 ) println ( "m1=" +m1) println ( "m2=" +m2) //遍历元素 m1.foreach(x=> { println ( "m1==>" +x._1)}) m2.foreach(x=> { println ( "m2==>" +x._2)}) //根据key得到值得遍历 m1.keys.foreach { x => { println ( "m1 的key is 【" +x)}

微信小程序のwxs语言

自作多情 提交于 2019-12-05 17:35:14
一、wxs介绍 wxs是微信小程序自身的脚本语言,用来 过滤 和 计算 。wxs可以通过文件可模块标签来定义 文件需要.wxs后缀文件 二、实例 <wxs module="test1"> module.exports = { message:'from test1!' } </wxs> <view>{{test1.message}}</view> wxs中定义变量默认对外不可预见,我们通过 module.exports={} 对外课件。 <wxs module="test1"> module.exports = { message:'from test1!' } </wxs> <view>{{test1.message}}</view> <wxs src="./m1.wxs" module="m1"/> <view>{{m1.message}}</view> <wxs src="./m2.wxs" module="m2"/> <view>{{m2.message}}</view> 可以通过 module.exports = require("./m1.wxs"); 引入其他 三、数据类型 date和regexp不能使用new构造,要使用getdate和getregexp,是否相等可以通过cons判断 四、基础类库 和es5的区别是console只有log方法

基线版本,RC版本,Release版本,Alpha版本,Beta版本

心不动则不痛 提交于 2019-12-05 08:44:59
今天通过SVN查看Spring源码时在tags目录下发现有不同版本的文件夹,如v3.2.0.M1,v3.2.0.RC1,v3.2.0.RELEASE,然后我就产生了这些版本都代表什么含义的疑问。 1. M版本,网上没太多资料,不过在《Spring技术内幕-深入解析Spring架构与设计原理》一书中,作者提过这是“基线版本”,代表着开发的里程碑。 2. RC版本, RC:(Release Candidate) Candidate是候选人的意思,用在 软件 上就是候选版本。Release是发行、发布的意思。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! 3. RELEASE版本,最终版本,运行很稳定的版本,基本上不会有改动。 4. alpha、beta、gamma版本, 广义上对测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。alpha 是指内测,即现在说的CB,指开发团队内部测试的版本或者有限 用户体验测试 版本。beta 是指公测,即针对所有用户公开的测试版本。然后做过一些修改,成为正式发布的候选版本时叫做gamma,现在叫做RC(Release Candidate)。 来源: oschina 链接: https://my

循环导入问题

此生再无相见时 提交于 2019-12-04 15:35:08
循环导入问题 一、什么是循环导入? # m1.py print('from m1.py') from m2 import x y = 'm1' 创建m2的名称空间 执行m2.py,将执行产生的名字丢到m2.py 在当前执行文件中拿到m2.x # m2.py print('from m2.py') from m1 import y x = 'm2' 创建m1的名称空间 执行m1.py,将执行产生的名字丢到m1.py 在当前执行文件中拿到m1.y # run.py import m1 创建m1的名称空间 执行m1.py,将执行产生的名字丢到m1.py 在当前执行文件中拿到m1 如果运行run.py,则会报错 ImportError: cannot import name 'y' 如果运行m1.py,则会报错 ImportError: cannot import name 'x' 如果运行m2.py,则会报错 ImportError: cannot import name 'y' 二、解决方案 我们可以使用函数定义阶段只识别语法的特性解决循环导入的问题,我们也可以从本质上解决循环导入的问题,但是最好的解决方法是不要出现循环导入。 2.1 方案一 # m1.py print('from m1.py') def func1(): from m2 import x print(x) y =

Python连载49-正则举例

牧云@^-^@ 提交于 2019-12-04 02:33:00
一、re举例 import re #查找数字 p = re.compile(r"\d+") #在字符串“ongahjeuf125”中及逆行查找,按照规则p指定的正则进行查找 m = p.match("ong125fdsgdsf48515",3,20)#后面的参数序号3到6的搜索范围 print(m) #上述代码说明 #1.match可以输入参数表示起始位置 #2.查找到的结果只包含一个,表示第一次进行匹配成功的内容 print(m[0])#直接打印出了匹配的内容 print(m.start(0))#打印匹配内容从哪里开始的 print(m.end(0))#打印匹配内容从哪里结束的 2.再举个例子:可以分组获取内容 #参数中re.I代表忽略大小写 p1 = re.compile(r"([a-z]+) ([a-z]+)",re.I) m1 = p1.match("I am relly good man") print(m1) print(m1.group(0)) print(m1.start(0)) print(m1.end(0)) print("===================") print(m1.group(1)) print(m1.start(1)) print(m1.end(1)) print("===================") print(m1.group

细胞分裂

匿名 (未验证) 提交于 2019-12-02 23:57:01
题目描述 H a n k BT Bio-Tech B i o T e c h,生物技术) 领域的知名专家。现在,他正在为一个细胞实验做准备工作:培养细胞样本。 Hanks 1-N i 1 S_i 个同种细胞( S_i 为正整数)。现在他需要选取某种细胞的一个放进培养皿,让其自由分裂,进行培养。一段时间以后,再把培养皿中的所有细胞平均分入 M 个试管,形成 M M份样本,用于实验。 Hanks M很大,普通的计算机的基本数据类型无法存储这样大的 M 值,但万幸的是, m_1 的 m_2 次方,即 M = m 1^ m 2 m_1,m_2 均为基本数据类型可以存储的正整数。 4 个细胞, Hanks 5 个细胞,博士就无法将它们均分入 2 个试管。此时,博士就只能等待一段时间,让细胞们继续分裂,使得其个数可以均分,或是干脆改换另一种细胞培养。 为了能让实验尽早开始, H a n k M 个试管”时停止细胞培养并开始实验。现在博士希望知道,选择哪种细胞培养,可以使得实验的开始时间最早。 输入格式 N ,代表细胞种数。 m 1 , m 2 ,以一个空格隔开,即表示试管的总数 M = m 1^ m 2 . 第三行有 N 个正整数,第 i 个数 Si表示第 i 种细胞经过 1 秒钟可以分裂成同种细胞的个数。 输出格式 一个整数,表示从开始培养细胞到实验能够开始所经过的最少时间(单位为秒)。

初学RFID-破解学校水卡

匿名 (未验证) 提交于 2019-12-02 23:43:01
注:(本文只作技术研究之用,请勿用于非法用途,否则后果自负!!) 基本知识: Mifare Classic card提供1k-4k的容量,我们经常见到的是Mifare Classic 1k(S50),也就是所谓的M1卡。M1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个段,每个段可以保存16字节的内容,反正从0开始数就对了(和数组下标为0开始一样) 每个扇区的第4段呢是用来保存KeyA,KeyB和控制位的,每张卡还有一个唯一标识的UID号 这种卡类的攻击方式大概分为这么几种 1)暴力破解 爆破对于M1卡的破解来说比较有效,因为M1卡是被动卡,需要读卡器来供能,切断供能后卡的临时数据就丢失了,也就是说不会存在输入过多错误密码后造成的锁死之类的情况 FFFFFFFFFFFF、A0B0C0D0E0F0等等都是M1白卡的默认密码,所以当我们使用mfoc这样的工具来爆破的时候基本上都是用这些默认密码来填充剩余扇区的密码 2)重放攻击 刚刚我们说了M1卡是被动卡,当它被供能的时候会产生随机数列,切断供能后数据不会保存,再次供能又会产生一模一样的数列,然后就可以控制切断,再次供能的时间计算出这个数列,进行重放攻击来达到修改数据的目的 3)克隆卡片(卡复制) M1卡的扇区可以保存数据,所以大部分的卡片会选择加密扇区后保存数据,我们可以用 uid卡来进行复制

Python数据库小程序

匿名 (未验证) 提交于 2019-12-02 22:51:30
源代码:# dict1 是 字典 , 用来对应相应元素的下标,我们将文件转成列表,对应的也就是文件的下标,通过下标来找文件元素 dict1 = { 'sort' : 0 , 'name' : 1 , 'age' : 2 , 'phone' : 3 , 'job' : 4 }#将最后需要打印的信息转成列表的形式 def p_message ( m1 ): if '*' in m1 : m1 = dict1 . keys () return m1 m1 = m1 . split ( ',' ) for i in range ( len ( m1 )): m1 [ i ] = m1 [ i ]. strip () return m1 #遍历文件信息,将其转化成列表的形式#将函数转化成生成器,好处是不用一次将文件信息全部传入内存,而是用多少传多少def op_file(m2): m2 = m2.strip() with open(m2 ,encoding='utf=8')as f: for line in f: line = line.strip() line = line.split(',') yield line#进行条件筛选def choose(pp1 ,m3): lis = [] m3 = m3.strip() if '>' in m3: c1 ,c2 = m3.split('>'

XML利用接口显示并导入到数据库

只谈情不闲聊 提交于 2019-12-02 18:15:21
//控制器代码 /// <summary> /// 页面 /// </summary> /// <returns></returns> public ActionResult Index() { return View(); } /// <summary> /// 显示 /// </summary> /// <returns></returns>//Model是根据你接口所需要的字段定义 [HttpGet] public string XmlShow(XMLTable01 m) { string ConnString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; var url = "是你所需要XML的接口"; XmlDocument doc = new XmlDocument();//创建XML操作对象 doc.Load(@url);//加载xml文件的路径 //doc.DocumentElement 是获取XML的根节点 XmlNodeList UserNodes = doc.DocumentElement.ChildNodes;//获取根节点下的子节点,注意是集合,所以返回的是所有子节点 foreach (var item in UserNodes) { XMLTable01 m1 =

多线程

岁酱吖の 提交于 2019-12-01 15:38:55
1.同步方法和非同步方法是否可以同时调用 可以同时调用,可以理解为不加synchronized的方法无视这个对象的锁 int count=10; public synchronized void m1(){ count--; System.out.println(Thread.currentThread().getName()+"m1 started 01 : "+count); try { Thread.sleep(10000L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"m1 started 02 : "+count); } public /*synchronized*/ void m2(){ try { count--; Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"m2 start ..."+count); } public static void main(String[]