aaa

Python 判断变量的类型

可紊 提交于 2020-01-16 08:21:35
这里有两种方法。type 和isinstance import types aaa = 0 print type(aaa) if type(aaa) is types.IntType: print "the type of aaa is int" if isinstance(aaa,int): print "the type of aaa is int" bbb = 'hello' print type(bbb) if type(bbb) is types.StringType: print "the type of bbb is string" if isinstance(bbb,str): print "the type of bbb is string" #if the type is NoneType,the isinstance does not work #we should judge the NoneType like below #if row is None #if type(row) is types.NoneType #In my opinion,use the types to judge the type of a param is convinient<span style="font-family:Arial;background-color:

【Leetcode】240. Search a 2D Matrix II

拟墨画扇 提交于 2020-01-12 20:07:41
题目地址: https://leetcode.com/problems/search-a-2d-matrix-ii/ 给定一个矩阵,满足每行都是单调增的,每列也是单调增的。另给定一个数,问该矩阵是否包含这个数。基本思路是,选定矩阵最左下角的那个数 a a a ,如果 t a r g e t target t a r g e t 比 a a a 大,由于 a a a 所在列在 a a a 上方的数都比 a a a 小,所以不用再搜索,那就向 a a a 的右边走一步;如果 t a r g e t target t a r g e t 比 a a a 小,由于 a a a 所在行在 a a a 右边的数都比 a a a 大,所以不用再搜索,那就向 a a a 的上边走一步。如此这般,直到整个矩阵搜索完毕。 例如,我们要在下面的矩阵里搜索 5 5 5 : [ 1 4 7 11 15 2 5 8 12 19 3 6 9 16 22 10 13 14 17 24 18 21 23 26 30 ] \begin{bmatrix} 1 & 4 & 7 & 11 & 15\\ 2 & \textbf{5} & 8 & 12 & 19\\ \textbf{3} & \textbf{6} & 9 & 16 & 22\\ \textbf{10} & 13 & 14 & 17 & 24\\ \textbf

类的 类的结构细分 私有方法,私有属性 类方法 静态方法 属性(特殊) isinstance issubcalss

末鹿安然 提交于 2020-01-11 16:32:37
day25 一丶类的结构细分 成员: 公有属性(静态属性,对象属性),私有属性(私有静态属性,私有对象属性),私有方法,公有方法,类方法,静态方法,属性.代码如下:👇 #### 整合版class A: public_attr = '公共属性' # 公有属性(静态变量) __private_attr = '私有属性' # 私有属性(私有静态变量)​ def __init__(self, name, sex): # 初始化方法 self.name = name # 实例化对象时 公有属性 self.__sex = sex # 实例化对象时 私有属性​ def func(self): # 公有方法(实例化方法,默认将调用者对象传给self) print('in A 类 公有方法')​ def __func2(self): # 私有方法 print('in A 类 私有方法')​​ ### 👇以下的这些 类方法, 静态方法,属性 . 只存在于类空间,不存在对象空间 @classmethod # 类方法 def func3(cls): # cls是一个参数,默认传递当前类的类名 obj=cls() # 实例化一个对象, 因为cls是一个类的内存地址 print('类方法')​ @staticmethod # 静态方法 def func4(): # 默认不需要传参(根据需要,也可以传参),

ES6数组的解构赋值详解

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-08 21:31:11
数组的解构赋值 基本用法 ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称之为解构(Destructuring) // 以前为变量赋值,只能直接指定值 var a = 1; var b = 2; var c = 3; // ES6允许写成这样 var [a,b,c] = [1,2,3]; 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。 下面是一些使用嵌套数组进行解构的例子: let [foo,[[bar],baz]] = [1,[[2],3]]; foo // 1 bar // 2 baz // 3 let [,,third] = ["foo","bar","baz"]; third // "baz" let [head,...tail] = [1,2,3,4]; head // 1 tail // [2,3,4] let [x,y,...z] = ['a']; x // "a" y // undefined z // [] 默认值 解构赋值允许制定默认值 var [foo = true] = []; foo // true [x,y='b'] = ['a']; // x='a', y='b' 注意,ES6内部使用严格相等运算符(===),判断一个位置是否有值。 所以,如果一个数组成员不严格等于undefined

ini 文件操作记要(2): 使用 TMemIniFile

孤者浪人 提交于 2020-01-05 23:54:56
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses IniFiles; var ini: TMemIniFile; procedure TForm1.FormCreate(Sender: TObject); begin ini := TMemIniFile.Create('c:\temp\test.ini'); end;

网页右侧悬浮窗制作

大城市里の小女人 提交于 2019-12-31 02:31:25
❀ 网页右侧悬浮导航制作 现在很多网站页面上都会出现弹出窗口、右下角广告窗、左下角论坛区等等,今天学习了一个右侧悬浮导航的制作,即无论页面超出屏幕多长,往下浏览页面时,悬浮导航依然保持窗口位置不动,展示在用户面前,下面和大家分享一下。(借用网站上的图片资源) 1、首先得具有基本的logo和导航分类,然后规定一个盒子大小,将他们布局好。 2、基本布局完成就得给它设置触动效果,鼠标触碰分类,就会有相应的背景色变化,点击之后就进入内页浏览。 3、重点在于如何将导航盒子固定在一个右侧的位置上不随用户的操作变动,用css样式中的position:fixed(用于固定对象的位置)来实现,不置顶就给它一个距离,左浮动就设置"left:0px;"右浮动就设置"right:0px;",为了能够显示效果,加文字使之超过一个页面的大小可以上下滑动。 1 <body> 2 <div id="NavTop"> 3 <div id="NavCon"> 4 <img src="images/banner.png" class="banner"> 5 <ul> 6 <li><a href="#">独家观点</a></li> 7 <li><a href="#">前排明星</a></li> 8 <li><a href="#">秀场细节</a></li> 9 <li><a href="#">场外街拍</a></li>

IOI2020北大集训 - day4

天涯浪子 提交于 2019-12-26 00:43:14
A - xor 题意 给定 n , d n,d n , d ,求 ∑ 0 ≤ x , y , z < n ( x ⊕ y ⊕ z ) d ( m o d 998244353 ) \sum_{0\le x,y,z < n }(x \oplus y\oplus z)^d \pmod {998244353} 0 ≤ x , y , z < n ∑ ​ ( x ⊕ y ⊕ z ) d ( m o d 9 9 8 2 4 4 3 5 3 ) 其中 ⊕ \oplus ⊕ 表示按位异或。 n < 2 30 , d ≤ 100000 n< 2^{30},d\le 100000 n < 2 3 0 , d ≤ 1 0 0 0 0 0 。 Sol 部分分: d ≤ 10 d\le 10 d ≤ 1 0 下面是一个和正解毫无关系的暴力。 通过数位 d p dp d p 单独对二进制每一位进行考虑。考虑怎么算答案,设 p i p_i p i ​ 表示第 i i i 位是 0 0 0 还是 1 1 1 ,由多项式乘法的组合意义可得: ( ∑ i = 0 log ⁡ n p i 2 i ) d = d ! ∑ l 1 + l 2 + ⋯ + l log ⁡ n = d ∏ i ( p i 2 i ) l i l i ! (\sum_{i=0}^{\log n} p_i 2^i)^d \\ =d!\sum_{l

document.all用法

[亡魂溺海] 提交于 2019-12-21 03:34:54
以前写 JavaScript 脚本时,事件都是采用 object.event = handler; 的方式初始化。这种方式对于 Internet Explorer、Mozilla/Firefox 和 Opera 来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。 但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。 因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用 attachEvent 还是 addEventListener 就可以了。实例如下

Linux定时任务

会有一股神秘感。 提交于 2019-12-17 04:48:22
定时任务的创建: crontab -e 进入任务编辑状态 格式为: * * * * * 命令 分时日月周 2 1 * * * aaa # 代表每天 1:02 分执行 aaa 命令 */2 * * * * aaa # 代表每 2 分钟执行 aaa 命令 执行结果会被发送到 root 的邮件里,如果不想收到定时任务地信息 You have new mail in /var/spool/mail/root 可以把输出重定向: 2 1 * * * aaa > /dev/null 2>&1 每周日凌晨 3 点执行: 0 3 * * 0 command 每隔 2 分钟: */2 * * * * command 来源: CSDN 作者: 蓝关故人 链接: https://blog.csdn.net/weixin_39734304/article/details/103570091