廖雪峰python学习笔记
文章平均质量分 50
Datawhale
一个开源的学习组织
展开
-
【廖雪峰python进阶笔记】函数式编程
1. 高阶函数高阶函数就是可以把函数作为参数的函数,下面我们看一个简单的高阶函数:def add(x, y, f): return f(x) + f(y)如果传入abs作为参数f的值:add(-5, 9, abs)根据函数的定义,函数执行的代码实际上是:abs(-5) + abs(9)由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数...原创 2018-07-09 15:15:30 · 8603 阅读 · 4 评论 -
【廖雪峰python入门笔记】tuple_创建
tuple: 1. 是另一种有序的列表,中文翻译为“ 元组 ”。 2. tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。同样是表示班里同学的名称,用tuple表示如下:t = ('Adam', 'Lisa', 'Bart')创建tuple: 创建tuple和创建list唯一不同之处是用( )替代了[ ]。现在,这个 t 就不能改变了,tuple...原创 2018-07-06 09:15:35 · 3093 阅读 · 0 评论 -
【廖雪峰python入门笔记】tuple_“元素可变”
前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple: t = ('a', 'b', ['A', 'B'])注意到 t 有 3 个元素:’a’,’b’和一个list:[‘A’, ‘B’]。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到: L = t[2]然后,我们把list的两个元素改一改:L[0] ...原创 2018-07-06 09:15:43 · 2559 阅读 · 2 评论 -
【廖雪峰python入门笔记】tuple_创建单元素
tuple和list一样,可以包含 0 个、1个和任意多个元素。包含多个元素的 tuple,前面我们已经创建过了。包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示:t = ()print(t)() 创建包含1个元素的 tuple 呢?来试试:t = (1)print(t)1 好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?...原创 2018-07-06 09:15:48 · 2298 阅读 · 0 评论 -
【廖雪峰python入门笔记】if语句
1. if语句及缩进规则计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现:age = 20if age >= 18: print('your age is', age) print('adult')print('END')注意: Python代码的缩进规则。具有...原创 2018-07-06 09:15:54 · 2485 阅读 · 0 评论 -
【廖雪峰python入门笔记】for循环
list或tuple可以表示一个有序集合。如果我们想依次访问一个list中的每一个元素呢?比如 list:L = ['Adam', 'Lisa', 'Bart']print(L[0])print(L[1])print(L[2])如果list只包含几个元素,这样写还行,如果list包含1万个元素,我们就不可能写1万行print。这时,循环就派上用场了。Python的 for...原创 2018-07-06 09:16:07 · 2266 阅读 · 0 评论 -
【廖雪峰python入门笔记】while循环
和 for 循环不同的另一种循环是while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。比如要从 0 开始打印不大于 N 的整数:N = 10x = 0while x < N: print(x) x = x + 1while循环每次先判断 x < N,如果为True,则执行循环体的代码块,否则,退出...原创 2018-07-06 09:16:13 · 2391 阅读 · 0 评论 -
【廖雪峰python入门笔记】break和continue
用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。比如计算1至100的整数和,我们用while来实现:sum = 0x = 1while True: sum = sum + x x = x + 1 if x > 100: breakprint(sum)咋一看, while True 就...原创 2018-07-06 09:16:23 · 2112 阅读 · 0 评论 -
【廖雪峰python入门笔记】多重循环
在循环内部,还可以嵌套循环,我们来看一个例子:for x in ['A', 'B', 'C']: for y in ['1', '2', '3']: print(x + y)x 每循环一次,y 就会循环 3 次,这样,我们可以打印出一个全排列:A1 A2 A3 B1 B2 B3 C1 C2 C3...原创 2018-07-06 09:16:30 · 1881 阅读 · 0 评论 -
【廖雪峰python入门笔记】dict
1. dict我们已经知道,list和tuple 可以用来表示顺序集合,例如,班里同学的名字:['Adam', 'Lisa', 'Bart']或者考试的成绩列表:[95, 85, 59]但是,要根据名字找到对应的成绩,用两个 list 表示就不方便。如果把名字和分数关联起来,组成类似的查找表:'Adam' ==> 95'Lisa' ==> 85'Bart...原创 2018-07-07 10:29:51 · 2567 阅读 · 1 评论 -
【廖雪峰python入门笔记】set
1. setdict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。创建 se...原创 2018-07-07 10:30:16 · 2514 阅读 · 0 评论 -
【廖雪峰python入门笔记】函数
1. 函数我们知道圆的面积计算公式为:S = πr²当我们知道半径r的值时,就可以根据公式计算出面积。假设我们需要计算3个不同大小的圆的面积:r1 = 12.34r2 = 9.08r3 = 73.1s1 = 3.14 * r1 * r1s2 = 3.14 * r2 * r2s3 = 3.14 * r3 * r3当代码出现有规律的重复的时候,你就需要当心了,每次...原创 2018-07-07 10:30:23 · 2641 阅读 · 0 评论 -
【廖雪峰python入门笔记】切片
1. 对list进行切片对list进行切片 取一个list的部分元素是非常常见的操作。比如,一个list如下:L = ['Adam', 'Lisa', 'Bart', 'Paul']取前3个元素,应该怎么做?笨办法:>>> [L[0], L[1], L[2]]['Adam', 'Lisa', 'Bart']之所以是笨办法是因为扩展一下,取前N个...原创 2018-07-07 10:30:31 · 1983 阅读 · 0 评论 -
【廖雪峰python入门笔记】迭代
1. 迭代在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:for (i=0; i<list.length; i++) { n = lis...原创 2018-07-07 10:30:37 · 2449 阅读 · 0 评论 -
【廖雪峰python入门笔记】list_替换元素
通过索引赋值进行list元素替换假设现在班里仍然是3名同学:L = ['Adam', 'Lisa', 'Bart']现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班级成员名单,我们可以先把Bart删掉,再把Paul添加进来。另一个办法是直接用Paul把Bart给替换掉:L[2] = 'Paul'print(L)L = [‘Adam’, ‘Lisa’, ...原创 2018-07-06 09:15:20 · 2597 阅读 · 0 评论 -
【廖雪峰python入门笔记】list删除元素_pop()
从list中删除元素Paul同学刚来几天又要转走了,那么我们怎么把Paul 从现有的list中删除呢?如果Paul同学排在最后一个,我们可以用list的pop()方法删除:L = ['Adam', 'Lisa', 'Bart', 'Paul']L.pop()‘Paul’print(L)[‘Adam’, ‘Lisa’, ‘Bart’]pop()方法总是删掉list的...原创 2018-07-06 09:15:01 · 1872 阅读 · 0 评论 -
【廖雪峰python入门笔记】list添加元素_append()和insert()
1. append()现在,班里有3名同学:L = ['Adam', 'Lisa', 'Bart']今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢?第一个办法是用 list 的 append()方法,把新同学追加到 list 的末尾:L = ['Adam', 'Lisa', 'Bart']L.append('Paul')print(L)[‘...原创 2018-07-05 16:44:03 · 2884 阅读 · 0 评论 -
【廖雪峰python进阶笔记】模块
1. 导入模块要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math: import math你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:>>> math.pow(2, 0.5) # pow是函数1.414213562373...原创 2018-07-09 16:01:00 · 2354 阅读 · 0 评论 -
【廖雪峰python进阶笔记】面向对象编程
1. 定义类并创建实例在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下:class Person(object): pass按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我们只需要简单地从object类继承。有了Person类...原创 2018-07-09 18:07:07 · 3153 阅读 · 0 评论 -
【廖雪峰python进阶笔记】类的继承
1. 继承如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承:class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender定义Student类时,只需要把额外的属...原创 2018-07-10 09:50:05 · 2642 阅读 · 0 评论 -
【廖雪峰python进阶笔记】定制类
1. __str__和__repr__如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): ...原创 2018-07-10 15:21:28 · 3955 阅读 · 1 评论 -
【廖雪峰python入门笔记】变量
1. 静态语言和动态语言中的变量表示静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下:int a = 123; // a是整数类型变量a = "mooc"; // 错误:不能把字符串赋给整型变量和静态语言相比,动态语言更灵活。2. 变量在计算机中的内存表示最后,理解变量在计算机内存中的表示也非常重要。当我们写:...原创 2018-07-05 14:14:56 · 4503 阅读 · 0 评论 -
【廖雪峰python入门笔记】字符串_转义字符的使用
转义字符的使用字符串可以用''或者""括起来表示。如果字符串本身包含'怎么办?比如我们要表示字符串 I’m OK ,这时,可以用" "括起来表示:"I'm OK" 类似的,如果字符串包含",我们就可以用' '括起来表示:'Learn "Python" in imooc'如果字符串既包含'又包含"怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串...原创 2018-07-05 14:33:35 · 2748 阅读 · 0 评论 -
【廖雪峰python入门笔记】raw 字符串和多行字符串表示
1. raw 字符串描述 如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。 为了避免这种情况,我们可以在字符串前面加个前缀 r,表示这是一个 raw 字符串,里面的字符就不需要转义了。实例print('\n(~_~)/ \(~_~)n/')(~_~)/ (~_~)n/print(r'\n(~_~)/ \(~_~)n/')\n(~_~)/ (~_~)...原创 2018-07-05 15:04:47 · 2771 阅读 · 0 评论 -
【廖雪峰python入门笔记】Unicode编码_UnicodeDecodeError处理
1.Unicode编码的由来字符串还有一个编码问题。计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65...原创 2018-07-05 15:13:02 · 2271 阅读 · 0 评论 -
【廖雪峰python入门笔记】整数和浮点数
1. 区分整数和浮点数的原因Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数。整数和浮点数混合运算的结果则变成了浮点数。1 + 2.0 # ==> 浮点数 3.0为什么要区分整数运算和浮点数运算呢?这是因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小...原创 2018-07-05 15:31:46 · 2264 阅读 · 0 评论 -
【廖雪峰python入门笔记】布尔运算和短路计算
1. 布尔运算布尔类型只有True和False两种值,但是布尔类型有以下几种运算:1.1 与运算: 只有两个布尔值都为 True 时,计算结果才为 True。True and True # ==> TrueTrue and False # ==> FalseFalse and True # ==> FalseFalse and False原创 2018-07-05 15:44:54 · 2916 阅读 · 0 评论 -
【廖雪峰python入门笔记】list_创建
1. list列表:list 1. 是Python内置的一种数据类型 2. 是一种有序的集合 3. 可以随时添加和删除其中的元素比如,列出班里所有同学的名字,就可以用一个list表示:['Michael', 'Bob', 'Tracy']list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。2. 创建构造list非常简单,按照上面的代码,直接用[...原创 2018-07-05 16:16:22 · 2124 阅读 · 0 评论 -
【廖雪峰python入门笔记】list_按照索引访问
1. 按照索引访问listPython按照索引访问list 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学:L = ['Adam', 'Lisa', 'Bart']那我们如何从list中获取指定第 N 名的同学呢?方法是通过索引来获取list中的指定元素。需要特别注意的是,索引从0开始,也就是说,第一个元素的索引是0,第二个元素的索引是...原创 2018-07-05 16:26:19 · 2050 阅读 · 0 评论 -
【廖雪峰python入门笔记】list_倒序访问
倒序访问list我们还是用一个list按分数从高到低表示出班里的3个同学: L = ['Adam', 'Lisa', 'Bart']这时,老师说,请分数最低的同学站出来。要写代码完成这个任务,我们可以先数一数这个 list,发现它包含3个元素,因此,最后一个元素的索引是2:print L[2]Bart有没有更简单的方法?有!Bart同学是最后一名,俗称倒数第一...原创 2018-07-05 16:33:39 · 2088 阅读 · 0 评论 -
【廖雪峰python入门笔记】列表生成式
1. 生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?方法一是循环:>>> L = []>原创 2018-07-07 10:31:17 · 4813 阅读 · 1 评论