自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Allen的博客

虚心若愚,求知若渴

  • 博客(24)
  • 收藏
  • 关注

原创 Python自学笔记导航页

序言本人抱着极大的热情和兴趣,利用业余时间自学Python。将学习过程中遇到的困惑一一记录下来,本着知识公开分享的原则,将其汇总成一些文档。希望对看到的朋友有所帮助。博客中涉及到的一些实例代码都是我自己在写博客的过程中一边实践一边摘录的,希望看到的朋友自己动手做一遍。 笔者从事嵌入式工作已数年有余,对于编程语言的学习积累了一些自己的感悟和认知。无论哪种语言,在学习过程中还是要以实践为主,这就...

2018-07-24 21:37:50 659

原创 Python自学笔记---13.高阶函数

高阶函数 本节部分内容借鉴廖雪峰老师的的博客1.变量可以指向函数无论是在C语言还是在Python中函数都可以有一个返回值,来返回整个函数运算的结果。f = str(159) #函数的返回值赋值给变量print(f)那么在C语言中还有一种叫做函数指针,就是把函数的地址赋值给一个变量。在C语言中在调用函数的时候需要使用间接寻址符号 * 来寻址。龟叔在玩Python的时候...

2018-09-05 23:28:31 286

原创 Python自学笔记---16.Python中的print语句

Python中print语句1.逗号分隔符在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:x = 1y = 2z = 3print("the values are", x, y, z)#打印结果为 the values are 1 2 3在上述实例中,对于每个对象,将调用str()函数来生成输出字符串。...

2018-08-29 22:04:02 813

原创 Python自学笔记---15.标准输入,输出和错误

标准输入,输出和错误 解释器提供了3种标准文件对象,分别为标准输入、标准输出和标准错误,他们在sys模块中分别以sys.stdin、sys.stdout和sys.stderr的形式提供。以如下代码为例写入标准输出并从标准输入中读取一行输入:mport syssys.stdout.write("Enter your words:")name = sys.stdin.read...

2018-08-29 00:02:32 1062

原创 Python自学笔记---14.文件和文件对象

文件和文件对象 我在学习Linux的文件时,总结了一个规律。面对一个文件时,要操作这个文件首先就要打开这个文件,然后对其进行读写。当然这个读写的方式却有很多。Python内置了读写文件的函数,用法和C是兼容的。1.打开文件的常规操作在Python内置的函数open用于打开和创建文件对象,如下所示:fd = open("path") #打开文件"path",path也...

2018-08-27 23:24:59 350

原创 Python自学笔记---12.匿名运算符

使用lambda语句可以创建表达式形式的匿名函数,形如 lambda args : expression1.匿名函数的概念args可以是以逗号分隔的一系列参数,而expression是用到这些参数的表达式,如下实例a = lambda x, y : x + yr = a(3, 9)使用lambda语句定义的代码必须是合法的表达式。lambda语句中不能出现多条语句和其...

2018-08-21 00:20:30 337

原创 Python自学笔记---11.列表推导

用到函数的一个常见操作是将其用于一个列表的所有项,并使用结果来创建一个新的列表。1.列表的生成式如果我们要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]能用哪种方法呢?当然最基础的方法可以参见列表(上) 但是,这种只适合项比较少的一些场景,现在我们要生成1到999的列表怎么办呢?list(range(1,11)) #生成的结果不包含11,只...

2018-08-19 13:01:05 326

原创 Python自学笔记---10.生成器 yield

1.生成器简述 函数使用关键字 yield 可以定义一个生成器对象。生成器是一个函数,他生成一个值的序列,以便在迭代中使用。如下代码我们先编写一个生成器def count(n): print('before yield n %' ,n) while n > 0: yield n print('after yield %',...

2018-08-15 22:14:36 284

原创 Python自学笔记---9.装饰器

1.装饰器 装饰器是一个函数,其主要用途是包装另一个函数或类。这种包装的首要目的是光明正大地修改或增强被包装对象的行为。其语法上使用特殊的符号 @ 表示装饰器。 这里摘录廖雪峰老师博客的部分内容!函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数def func(): print("hello world")f = funcf(...

2018-08-07 22:43:33 238

原创 Python自学笔记---8.函数作为对象与闭包函数

函数在Python中可以被当作参数传递给其他函数,可以放在数据结构中,以及作为函数的返回值。请看下面这个实例:(摘自《Python参考手册》)def callf(func): return func() #将一个函数作为返回值def helloworld(): return "hello world"str1 = callf(helloworld) #传递一...

2018-08-01 21:52:50 238

原创 数据结构---1.单链表

以下内容记录我自学单链表的全部过程,当然都是以代码的形式体现的。因为之前找工作的时候有几家公司要求我自己实现一个单链表并且对其进行相关的操作,还有一个原因就是在阅读Linux内核代码的时候其中会涉及很多链表等的数据结构知识。首先,强调一下,我学习数据结构几乎没有看什么相关的书籍,可能理论上有些薄弱,都是从论坛或者博客上看了其他人的文章,然后根据自己的理解用一行行代码来实现的,可能有些地方的代...

2018-07-29 23:41:00 288

原创 Python自学笔记---7.Python函数的一些细节

1.参数传递与返回值调用函数时,函数参数仅仅是指代传入对象的名称。参数传递的基本语义和其他编程语言中已知的方式不完全相同,如“按值传递”或“按引用传递”。如果传递不可变的值,参数看起来实际是按值传递。但如果传递可变的对象(列表或者字典)给函数,然后再修改此可变对象,这些改动将反映在原始对象中。如下例:a = [1, 2, 3, 4, 5]def square(item): f...

2018-07-24 22:39:49 748

原创 Python自学笔记---6.Python中的函数

我在学习C语言的时候,在打印了hello world 之后,就开始尝试这在一个函数中打印,并且在一个for循环中调用它,按照自己的意图打印多次。 函数能提高应用的模块性,和代码重复利用率。那么如何在Python中编写自己函数呢 ?且看下文分析Python中的函数定义一个函数的语法如下:def 函数名(参数列表): 函数体 return 返回值 #...

2018-07-23 23:58:11 291

原创 Python自学笔记---5.集合与字典

1.集合 集合(set)是一个无序不重复元素的序列1.1创建集合可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。s = set(['apple', 'xiaomi', 'oppo']) #创建一个字符串集合d = set([1, 2, 3, 4, 5]) #创建一个数值集合...

2018-07-19 22:15:34 402

原创 Python自学笔记---4.元组

尽管元组支持大部分操作与列表相同(如索引,切片和连接),但是创建完元组后不能修改它的内容(即就是无法替换,删除或者添加新的元素)。可以把元组看成一个由多个部分组成的单一对象,而不是可在其中插入或删除项的不同对象的集合。创建元组在圆括号中放入一组数据即可创建元组address = ('www.python.org', 80)first_name = 'Allen'...

2018-07-18 00:23:11 778 2

原创 Python自学笔记---3.列表(下)

最近有些懒散,笔记停更了几天,本节我们延续上节遗留的问题继续开始。将介绍python与列表相关的四个函数与11种方法。 本节的例子将不再给出实验结果,看到的朋友最好自己手动敲一遍,这样体会更深刻。每个例程都是一个独立的实验。在声明一个列表的名称时应该刻意避免使用list,当然其他python的关键字也要避免列表相关的四个函数len函数,len函数输出为int型所以要...

2018-07-12 00:05:37 440

原创 C语言之关键字typedef

C语言提供了一个 类型定义 的功能  typedef 用此来建立新的数据类型名。需要强调的是,从任何意义上来讲,typedef 的声明并没有创建一个新的类型,它只是为某个已经存在的类型增加一个新的名称而已。typedef 声明也没有增加任何新的语义,通过这种方式声明的变量与通过普通方式声明的变量具有完全相同的属性。typedef 类似与#define 语句,但是typedef是由编译器

2018-07-04 00:01:14 792

原创 C语言之关键字const

在c语言中,关键字const 修饰变量,可以使变量的属性 常量化。一个变量 m 在被const 修饰时 在初始化阶段就要对其进行赋值操作,因为一旦被 const 修饰过的变量,在程序的任何地方进行赋值操作都是非法的。(当然也有例外,比如指针 或者被const修饰的形参) Const  int      m= 10;Int constm = 10 ; 以上两种写法都所表达的效果是

2018-07-04 00:00:48 1149

原创 Python自学笔记---2.列表(上)

Python中的列表 列表是任意对象组成的序列(即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象)。序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、检查成员、遍历、最小值和最大值。 列表使用从0开始的的整数索引,使用索引运算符可以访问并修改列表中的项。列表的创建首先我们创建两个列表,如下所示:list1 = [...

2018-07-03 23:56:32 303

原创 Python自学笔记---1.小试牛刀

1. 小试牛刀从大学到现在工作这七八年一直在使用C语言,亦或者是C语言相关的譬如C#,delphi,C++。突然有一天我接触到了Python,一扇新世界大大门就这么被推开了,没有任何征兆。 我就像一个手里拿着棒棒糖的孩子,懵懵懂懂的闯进了一片森林(Python),一下就被震撼了。从前,我以为手里的棒棒糖就是我世界的全部,现在才意识到自己所见如此渺小。像学习C语言一样学习Pyth...

2018-07-01 15:54:23 402

原创 互斥锁&属性

本篇我记录一下自己学习互斥锁的成果。线程同步的概述:    当线程A在对一个共享资源执行写操作时,如果此时线程B恰好也对这个共享资源执行写操作,那么在进程中就会出现两个线程同时对这个共享资源进行写操作,会出现什么结果呢?当然是会破坏我们写入的数据,造成不可预计的错误。    而使用互斥锁(mutex)就正好可以解决这一问题,当线程A在操作(读/写)共享资源时,对其进行加锁,此时如果线程

2018-01-14 15:26:06 672

原创 线程的创建&属性

注:笔者这些文档多出自APUE这本书,旨在督促自己坚持学习,其中没有给出实际的编码例子,是因为本身快速学习的原则,即“花20%的时间掌握80%的内容”,具体的实战会在后续网络编程中一一体现。个人觉得学习编程最佳的路径是在解决问题中掌握知识点。因此线程这几篇都只会讲述个人理解的基础概念。线程创建的相关函数:1.  int pthread_create(pthread_t*thread,

2018-01-07 17:53:16 293

原创 Linux 线程的分离与结合

在开始线程部分内容前,我想还是先把这个概念抛出来,否则在开始《线程的创建&属性》中会有部分内容不太清楚。原理简述:在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程回收其资源和杀死,在被其他线程回收之前,他的存储器资源是不释放的;一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自

2018-01-07 15:26:11 271

原创 Linux线程和进程的区别

我们创建进程一次只能做一件事,如果想要同时做几件事,我们就得创建多进程,但是多进程之间的相互沟通是比较麻烦的,比如内存共享,描述符共享,互斥与同步等等而且在效率上也不如线程快捷。在有了多线程以后,我们就可以在同一个进程中做多件事情。进程又被认为是执行中的程序;而线程是轻量级的进程。线程的资源:一个进程中的大部分信息对该进程的所有线程都是共享的; 可执行程序的代码;程

2018-01-07 15:24:41 306

空空如也

空空如也

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

TA关注的人

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