自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 lambda表达式

举个栗子我们在讨论lambda表达式之前先看个例子。现在有个类Person,并且我们创建了数组,要求时根据这些人的年龄排序,我们可以用Arrays类的sort方法进行排序,但是要求需要传入一个比较器,而比较器的具体内容是要我们自己实现的。现在我们可以写成这样:import java.util.Arrays;import java.util.Comparator;public class...

2020-05-01 17:11:07 290

原创 java反射机制

java反射能做什么?好多文章和教程在讲解java反射的时候往往都是上来就说java反射机制是什么,这次我们先来看看java发射机制能做什么,或者说为什么要设计出java的反射机制。我们先来看一看这个场景:程序员小A在做一个项目,写了一个类MyObject,其中有个方法myMethod,在项目中某个地方要调用MyObject中的myMethod。那么他就要在这个地方先通过new方法创建M...

2019-11-23 15:22:39 268

原创 设计模式之工厂模式

工厂模式(FactoryPattern)工厂模式是一种常见的创建型的设计模式,是将对象的创建交给所谓的“工厂”进行,降低了客户端与创建的对象的耦合,也就是解耦。工厂模式又分为简单工厂模式(SimpleFactoryPattern)、工厂方法模式(FactoryMethodPattern)和抽象工厂模式(AbstractFactoryPattern)。如何使用工厂模式,用农民养殖的道理告诉你。...

2019-10-22 22:27:57 259

原创 C++中const与指针

指针声明的格式如下:数据类型 *变量名;const限定符声明并初始化常量的格式如下:const 数据类型 变量名 = 常量;const限定符和指针的组合有如下三种:指向const对象的指针const 类型名称 *指针名;例子:const int *i;首先,变量i之前有指针运算符*,表明i是指针;在指针运算符的*的左边是const int,表明指

2018-01-22 13:23:27 249

转载 C++之cmath常用库函数一览

cmath是c++语言中的库函数,其中的c表示函数是来自c标准库的函数,math为数学常用库函数。 cmath中常用库函数: int abs(int i);//返回整型参数i的绝对值 double fabs(double x);//返回双精度参数x的绝对值 long labs(long n);//返回长整型参数n的绝对值double exp(double x);//返回指数函数e^x的值

2017-12-16 20:24:36 1324

原创 TCP/IP入门知识——应用层

一、关键术语应用编程接口(API):预定义的编程组件集合,应用程序可以使用它来访问系统中的其他部分。文件服务:满足网络上对存储介质写入或者读取文件的请求。打印服务:满足网络上对打印文档的请求。重定向器:检查本地资源,根据需要转发到网络。套接字API:一种网络API,最初是为了BSD UNIX上的应用程序提供TCP/IP接口而开发。二、问答1.OSI模型为什么把应用层的功能进一步划分为3个

2017-04-05 20:45:12 428

原创 TCP/IP入门知识——传输层

一、关键术语多路复用:把多个输入合成一个输出。多路分解:把一路输入导向多个输出。面向流的处理:连续输入(一个字节一个字节),而不是以预定义的数据块输入。熟知端口:常见应用程序所使用的预定义标准端口号,是由IANA 指定。套接字:特定计算机上特定应用程序使用的网络地址,由计算机的IP地址和应用程序的端口号组成。二、问题1.为什么多路复用和多路分解是必要的? 如果TCP/IP不支持多路复用

2017-03-30 16:47:38 534

原创 TCP/IP入门知识——网际层

一、关键术语地址类: IP地址的分类系统。地址解析协议(ARP):网际层的重要协议,用于获取与IP地址相对用的物理地址。ARP缓存记录着最近解析的物理地址和IP地址对。BOOTP:用来远程启动计算机或者其他网络设备的协议。点分十进制:基数为10,而且用4个数字来表示二进制的IP地址的形式,这个4个数字分别表示二进制地址的4个八位组,这4个数字之间用句点分开(209.121.131.12)。

2017-03-29 17:10:02 596

原创 TCP/IP入门知识——网络访问层

一、关键术语访问方法:控制对传输介质访问的过程。CRC(循环冗余码校验):一种计算检验和的方法,用于检验数据帧中内容的正确性。CSMA/CD(载波侦听多路访问/冲突检测):以太网使用的网络访问方法。以太网:一种非常流行的局域网体系,使用CSMA/CD网络访问方法。帧校验序列(FCS):以太网帧中的字段,包含一个基于CRC的校验值,用来校验数据。逻辑链路控制子层:OSI数据链路层的一个子层

2017-03-29 14:36:56 491

原创 TCP/IP入门知识——TCP/IP的工作方式

一、关键术语应用层: TCP/IP栈中的一层,它支持网络应用,提供与本地操作环境相交互的接口。传输层: TCP/IP栈中的一层,提供错误控制和确认功能,并充当网络应用程序的接口。网际层: TCP/IP栈中的一层,提供提供逻辑寻址和路由选择。网络访问层: TCP/IP栈中的一层,提供与物理网络连接的接口。TCP(传输控制协议):传输层中一个可靠的、面向连接的协议。UDP(用户数据包协议):

2017-03-28 20:17:12 779

原创 TCP/IP入门知识——什么是TCP/IP

一、关键术语ARPAnet:一种实验性网络,也是TCP/IP的诞生地。局域网(LAN):供单个办公室、组织或者家庭使用的小型网络,通常只占据一个地理位置。网络协议:对通信过程的一个具体方面进行定义的一组通用规则。TCP/IP:在Internet和很多其他网络上使用的网络协议簇。IP地址:用于定位TCP/IP网络上的计算机或者其他联网设备的逻辑地址(例如,打印机)。逻辑地址:通过协议软件配

2017-03-28 16:48:54 1819

原创 python的推导式编程

最近看了一篇文章一行python代码,刚一开始看,惊呆了,python竟然可以这样写,大牛绝逼是大牛。事后仔细了解了一下代码和作者,作者的确是大牛,但发现一行python代码并不是多么神秘,反而很简单,就是python的推导式。 我先写一个简单地列表推导式:[x for x in range(5)]结果:[0,1,2,3,4]还可以用表达式代替x的位置:[x*x for x in range(5)

2017-03-15 18:52:56 402

翻译 Selenium3.0 文档——selenium.webdriver.support.wait

class selenium.webdriver.support.wait.WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)参数:Driver:WebDriver的驱动程序 Timeout:最常超是时间,默认以秒为单位 Poll_frequency:休眠时间的间隔时间,默认为0.5秒 Igno

2017-02-21 17:10:02 1675

翻译 Selenium3.0 文档——selenium.webdriver.support.expected_conditions

class selenium.webdriver.support.expected_conditions.alert_is_presentalert是否出现。class selenium.webdriver.support.expected_conditions.element_located_selection_state_to_be(locator, is_selected)定位一个元素检查的它

2017-02-21 16:29:47 3981

翻译 Selenium3.0 文档——selenium.webdriver.support.abstract_event_listener

selenium.webdriver.support.abstract_event_listener.AbstractEventListenerafter_change_value_of(element, driver)after_click(element, driver)after_close(driver)after_execute_script(script, driver)afte

2017-02-21 14:57:56 1287

翻译 Selenium3.0 文档——selenium.webdriver.common.keys

selenium.webdriver.common.keys.KeysADD = '\ue025'ALT = '\ue00a'ARROW_DOWN = '\ue015'ARROW_LEFT = '\ue012'ARROW_RIGHT = '\ue014'ARROW_UP = '\ue013'BACKSPACE = '\ue003'BACK_SPACE = '\ue003'CANCEL

2017-02-21 14:53:47 2716

翻译 Selenium3.0 文档——selenium.webdriver.common.by

selenium.webdriver.common.by.By支持的定位器分类。CLASS_NAME = 'class name'CSS_SELECTOR = 'css selector'ID = 'id'LINK_TEXT = 'link text'NAME = 'name'PARTIAL_LINK_TEXT = 'partial link text'TAG_NAME = 'tag n

2017-02-21 14:46:56 7998

翻译 Selenium3.0 文档——selenium.webdriver.common.alert

class selenium.webdriver.common.alert.Alert(driver)允许操作alert用这个类可以和alert提示框互动。它包括了取消、确定、输入和从alert提示框获取文本的方法。 确认或取消alert提示框:Alert(driver).accept()Alert(driver).dismiss()向alert提示框输入值:name_prompt = Aler

2017-02-21 09:45:58 1454

翻译 Selenium3.0 文档——selenium.webdriver.common.action_chains

class selenium.webdriver.common.action_chains.ActionChains(driver)ActionChains是一个底层的自动交互的方法,例如鼠标移动、鼠标按键事件、键盘响应和菜单右击交互。这些对于像悬停和拖拽这种复杂的行为很有用。创建用户行为。当你调用ActionChains类中的动作方法时,这些动作都被存储在ActionChains类中的队列中。一旦

2017-02-21 09:10:20 2584

转载 深入理解Python中的生成器(转载)

生成器(generator)概念生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。生成器语法生成器表达式: 通列表解析语法,只不过把列表解析的[]换成() 生成器表达式能做的事情列表解析基本都能处理,只不过在需要处理的序列比较大时,列表解析比较费内存。>>> gen = (x**2 for x in range(5))

2017-01-08 22:18:58 339

转载 python多线程中join和setDaemon的用法

Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别。1、join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法。 原型:join([timeout]) 里面的参数时可选

2017-01-08 13:46:09 767

原创 python中的装饰器

Python中的装饰器可以很方便的对已有的函数进行改写或者优化,从某种程度上可以将函数看成类,装饰器的作用就是类继承的过程。def log(func): def wrapper(*arg,**kw): print('call %s' % func.__name__) return func(*arg,**kw) return wrapper@logd

2017-01-07 19:39:48 412

原创 python多线程

**什么是线程?** 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。(维基百科) 上面的解释很抽象吧,我再解释一下。当一个程序启动时,就会产生一个进程或者多个进程,当一个进程产生,同时也会产生一个进程,这个进程就是主进程。而主进程还会产生

2016-08-23 21:00:26 366

原创 Python中with用法简析

在python中我们经常见到这样的代码:with open('x.txt') as f: f.read()这是关于文件读写的语句,为什么要这么写呢?如果刚学习python我们一般这么写:f=open('x.txt')f.read()f.close()但是当在读取时出现错误,程序就终止了,文件x.txt还未关闭。这时候我们要引进错误机制:try: f=open('x.txt')

2016-08-19 14:05:32 472

原创 Python练习100例-34

题目:练习函数调用。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-def hello_world(): print('hello world')def three_hellos(): for i in range(3): hello_world()if __name__ == '__main__': t

2016-08-12 13:58:40 272

原创 Python练习100例-33

题目:按逗号分隔列表。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-L = ['1','2','3','4','5']s1 = ','.join(L)print(s1)

2016-08-12 13:44:33 296

转载 详解Python中的join()函数的用法(字符串和os.path)

函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 os.path.join(): 将多个路径组合后返回 一、函数说明 1、join()函数 语法: ‘sep’.join(seq) 参数说明

2016-08-12 13:41:30 17299 3

原创 Python练习100例-32

题目:按相反的顺序输出列表的值。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-a = ['one', 'two', 'three']for i in a[::-1]: print(i)

2016-08-12 13:21:07 312

原创 Python练习100例-31

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。练习代码、:#!/usr/bin/env python3# -*- coding: utf-8 -*-letter = input("please input:")if letter == 'S': print ('please input second letter:') letter

2016-08-12 13:06:31 356

原创 Python练习100例-30

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-while True: try: i=input('请输入数字(10000~99999):') i=int(i) if i>=99999 or i<10

2016-08-12 12:32:11 367

原创 Python练习100例-29

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-i=0while True: try: i=input('请输入数字(0~99999):') i=int(i) if i>=99999 or i<0:

2016-08-12 12:15:51 256

原创 Python练习100例-28

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-def age(n): if n==1: return 10

2016-08-12 11:16:37 287

原创 Python练习100例-27

题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-def output(s): if s=='': return print(s[len(s)-1:len(s)]) output(s[:len(s)-1])s=input('请输入字符:')

2016-08-12 11:04:51 236

原创 Python练习100例-26

题目:利用递归方法求5!。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-def op(n): if n==1: return 1 else: return n*op(n-1)print('5!=%d'%op(5))

2016-08-12 10:40:25 266

原创 Python练习100例-25

题目:求1+2!+3!+…+20!的和。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-num=1sum=0for i in range(1,21): num=num*i sum=sum+numprint('1! + 2! + 3! + ... + 20! = %d' % sum)

2016-08-12 10:34:14 327

原创 Python练习100例-24

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-a=1b=2sum=0for i in range(1,21): sum=sum+b/a x=b b=b+a a=xprint(sum)

2016-08-10 18:20:36 613

原创 Python练习100例-23

题目:打印出如下图案(菱形): * *** ************ ***** *** *练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-import sysfor i in range(1,8): i=4-abs(i-4) for j in range(1,8): if j+i>=5

2016-08-10 17:45:26 265

原创 Python练习100例-22

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-A=['a','b','c']B=['x','y','z']for i in B: for j

2016-08-10 11:11:17 353

原创 Python练习100例-21

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-x=1for i in range(9): x=(x+1

2016-08-10 10:49:35 255

原创 Python练习100例-20

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?练习代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-h=100s=100for i in range(10): h=h/2 s=s+2*hprint(h)print(s)

2016-08-10 09:51:44 346

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除