目录:
一、准备工作
二、数据类型
三、控制语句
四、函数初级
五、高级特性
六、函数高级
一、准备工作
1.1 input()和print()
- input()
input()返回的数据类型是str,str不能直接和整数比较;

- print()
有时可能会用到参数sep、参数end;

1.2 Pyhton3中的注释
- 单行注释是 #,快捷键是 Ctrl + /;
- 多行注释是三个单引号'''或者三个双引号"""。
1.3 环境搭建
- 秦路教程——安装anaconda;
- 下载地址:anaconda清华镜像(比官网下载快很多);
- 在Jupyter里的2个快捷键: shift+回车;ctrl+回车。
二、数据类型
2.1 基础数据类型
2.1.1 整型和浮点型
- 运算符+、-、*、/、//地板除(只取结果的整数部分)、%余数、**乘方;
2.1.2 字符串型
Part1
1.字符串的表现形式:单引号、双引号、三引号;
2.转义字符\,可以转义很多字符,比如,\n表示换行;
3.为了简化,Python还允许用r' '表示' '内部的字符串默认不转义;
4.如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容;
Part2
1.字符编码:ASCII、Unicode和UTF-8,其中,UTF-8是可变长度的编码;
2.str类型的数据(字符串) 、bytes类型的数据(以字节为单位的数据);
举例,'ABC'和b'ABC';
两者转换:str通过encode()方法可以编码为指定的bytes;
要把bytes变为str,就需要用decode()方法。
3.len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数;
Part3
1.输出格式化的字符串:占位符、%、括号
理解:
A、关于占位符 %s %d
B、关于括号,若只有一个占位符,括号可以省略;括号内为变量或者值。
2.另一种格式化字符串的方法是使用字符串的format()方法,但麻烦。
Part4
1.str是不变对象;
理解:所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
2.1.3 布尔型
一个布尔值只有True、False两种值;
2.1.4 None型
- 空值是Python里一个特殊的值,用None表示;
- None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
2.2 高级数据类型
2.2.1 列表
- list是有序集合;
- 索引,有2种方式,正数0,1,2,3和负数-1,-2,-3,-4;
- 切片,切片是左闭右开,冒号前后可省略,省略时,表示“从最左端/至最右端”;
- 增: insert、append、“+”;
- 删: pop;
- 改: 直接对索引/切片进行赋值;
- 二维列表。
2.2.2 字典
- Key:value键值对;dict的key必须是不可变对象;
- 无序,即没有索引;
- 增:用=赋值
- 删:pop函数,要删除一个key,用pop(key)方法,对应的value也会从dict中删除;
- 改:用=赋值
- 查:若要批量的查,可使用list(a.keys())、list(a.items()),接下来就可以用索引了。
2.2.3 元组
2.2.4 集合
2.3 理解变量
变量和对象
- 在Python中,等号=是赋值语句,可以把任意数据类型的对象赋值给变量;
- 同一个变量可以反复赋值,而且可以是不同类型的变量;
- 理解变量在计算机内存中的表示也非常重要;(重点理解:变量和指向);
- 变量的作用域:函数内、函数外。
三、控制语句
3.1 if
- 用法1:if
- 用法2:if else
- 用法3:if elif else
- If判断条件的简写

3.2 while
- continue
- break
3.3 for...in...循环
- for I in range()
- for I in list对象
- for I in dict.keys()、for I in dict.values()、for I,j in dict.items()
四、函数初级
4.1 Part1
- 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”;
- 函数可以返回多个值;Python的函数返回多值,其实就是返回一个tuple;
- 函数的参数:位置参数、默认参数、可变参数、关键字参数。
4.2 Part2
- 在函数内部可调用其他函数。若一个函数在内部调用自身本身,这个函数就是递归函数。
五、高级特性
5.1 切片操作
- List、tuple、字符串,均可用于切片操作;
5.2 迭代操作
- 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration);
- 当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。
- 只要是可迭代对象,无论有无下标,都可以迭代。
- Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代list的索引和元素本身;
- 常用的可迭代对象:
(1) range() 函数返回的是一个可迭代对象(类型是对象)
注:关于range(),可省略0;左闭右开;可以切片,返回的仍是range对象。
(2) 字典,for value in d.values()、for k, v in d.items()
(3) List、tuple、字符串
5.3 列表生成式(重要)
- 在一个列表生成式中,for前面的if ... else是表达式;
- 而for后面的if是过滤条件,不能带else。
5.4 生成器(难)
5.5 迭代器(难)
六、函数高级
函数式编程,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
6.1 高阶函数
6.1.1 什么是高阶函数
- 那么函数名是什么呢?函数名其实就是指向函数的变量!
- 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
6.1.2 常用高阶函数
- map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
- reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4),返回结果是什么? - filter()也接收一个函数和一个序列;filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
- sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序。
6.2 匿名函数
- 匿名函数lambda x: x * x;
- 关键字lambda表示匿名函数,冒号前面的x表示函数参数;
- 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
网友评论