深入浅出解析Python基础语法

rainbow
Lepaskan: 2020-05-22 11:00:19
asal
114 orang telah melayarinya

每天分享10条,一起飞!

1、列表分片:

1.jpg

2、列表神奇的地方:

(1)比较大小:

2_1.jpg

(2)列表相加+:

2_2.jpg

(3)列表用乘法时,变成复合赋值:

2_3.jpg

(4)列表中in/not in的用法:

2_4.jpg

(5)列表分片"拷贝"的概念:

分片拷贝语法:列表名[:];

分片拷贝的本质:开辟一个新的内存空间;

2_5.jpg

备注:真正的拷贝是要使用分片的方法;

3、元组与列表之间的区别:

答:元组和列表最大的区别就是你可以任意修改列表中的元素,可以任意插入或者删除一个元素,而对元组是不行的,元组是不可改变(像字符串一样),所以你也别指望对元组进行原地排序等高级操作了。

3_1.jpg

备注:元组可以不用小括号来定义(list = 1,2,3,4)

3_2.jpg

4、利用字符串的拼接+来实现更新和删除:

4_1.jpg

4_2.jpg

5、用join来分隔字符串:

5_1.jpg

split()跟join()正好相反, split()用于拆分字符串:

5_2.jpg

replace()方法如其名,就是替换指定的字符串:

5_3.jpg

6、字符串的格式化:

(1)format()函数使用:

6_1.jpg

(2)格式化操作符:%

6_2.jpg

7、序列:

(1)list()、tuple()、str(obj);

7_1.jpg

(2)len();

7_2.jpg

(3)max()和min();

7_3.jpg

(4)sum()、sorted()和reversed();

7_4.jpg

(5)enumerate()和zip();

7_5.jpg

8、python函数:

(1)函数文档

8_1.png

8_2.jpg(2)关键字参数:

8_3.jpg

(3)默认参数:这点跟PHP很像

8_4.jpg

(4)收集参数:这点很有趣,为懒人准备的

8_5.jpg

星号*其实即可以打包又可以'解包",假如你需要将一个列表a传入test参数的收集参数*params中,那么调用test(a)时便会出错,此时需要在a前边加上个星号(*)表示实参需要"解包"后才能使用:

8_6.jpg

(5)全局变量:

8_7.jpg但不排除有些人还是坚持"虚心接受,死性不改"这八字原则,仍然觉得有必要在函数中去修改这个全局变量,那么你不妨可以使用global关键字来达到目的!

8_8.jpg

(6)内嵌函数:

(7)闭包:这个我个人觉得最有意思,有深度;

闭包是函数式编程的一个重要的语法结构,函数式编程是一种编程范式,著名的函数式编程语言就是LISP语言(大家可能听说过这门语言,主要应用于绘图和人工智能,一直被认为是天才程序员使用的语言)。

8_10.jpg备注:闭包针对的是内部函数,所以不能在外部直接调内部函数;

8_11.jpg(8)lambda表达式:又名匿名函数

8_12.jpg(9)filter()和map():

filter()有两个参数。第一个参数可以是一个函数也可以是None,如果是一个函数的话,则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回True的值筛选出够;如果第一个参数为None,则直接将第二个参数中为True的值筛选出来,来,我们直接看个例子:

8_13.jpg

map在这里不是地图的意思,在编程领域,map一般作"映射"来解释。map()这个内置函数也有两个参数,仍然是一个函数和一个可迭代序列,将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕,返回所有加工后的元素构成的新序列。有了刚才filter()的经验,我们直接看代码:

8_14.jpg

(10)递归是"神马":

递归这个概念,是算法的范畴,本来不属于Python语言的语法内容,但每个编程语言系列教学里都要讲递归,那是因为如果你掌握了递归的方法和技巧,你会发现这是一个非常棒的编程思路!

说了那么多,在编程上,递归是什么这个概念还没讲呢!递归,从原理上来说就是函数调用自身这么一个行为,接下来我们来看个阶乘例子:

8_15.jpg

9、字典和集合:

(1)创建和访问字典:

字典是Python中唯一的映射类型,映射是数学上的一个术语,指两个元素集之间元素相互“对应”的关系。如图所示,映射图解;

9_1_1.jpg

通过{}来创建:

9_1_2.jpg

通过dict()来创建字典:

9_1_3.jpg建议用{}来创建字典,看起来舒服;

(2)字典内置方法:

fromkeys()方法用于创建并返回一个新的字典,它有两个参数:第一个参数是字典的键;第二个参数是可选的,是传入键对应的值。如果不提供,那么默认是None,举个例子:

9_2_1.jpg这个例子告诉我们做事不能总是想当然,有时候现实会给你狠狠的一棒,fromkeys()方法并不会将值"one"、"two"和"three"分别赋值键1、2和3,因为fromkeys()把("one","two","three")当成一个值了。

----------------------------------------------------------------------------------------------------------

key()、values()和items():

keys()用于返回字典中的键,values()用于返回字典中所有的值,那么items()当然就是返回字典中所有的键值对(也就是项),举个例子:

9_2_2.jpg

----------------------------------------------------------------------------------------------------------

get()、in和not in:

get()方法提供了更宽松的方式去访问字典项,当键不存在的时候,get()方法并不会报错,只是默默地返回了一个None,表示啥都没找到;如果希望找不到数据时返回指定的值,那么可以在第二个参数设置对应的默认返回值;

9_2_3.jpg

如果不知道一个键是否在字典中,那么可以使用成员资格操作符(in或not in)来判断;

----------------------------------------------------------------------------------------------------------

clear()清空一个指定的字典:

可能有同学会认为使用变量名赋值为一个空字典的方法来清空字典,这样做存在一定的弊端,我们来看个例子;

9_2_4.jpg

-------------------------------------------------------------------------------------------------------

copy()方法是复制字典:

9_2_5.jpg

-------------------------------------------------------------------------------------------------------

pop()和popitem()方法:

pop()是给定键弹出对应的值,而popitem()是弹出一个项,这两个比较容易:

9_2_6.jpg

setdefault()方法和get()方法有点相似,但是setdefault()在字典中找不到相应的键时会自动添加:

9_2_7.jpg-------------------------------------------------------------------------------------------------------

update()方法用来更新字典:(其实上面也是有方法的,只是这个更正宗)

9_2_8.jpg

10、集合:

在Python3里,如果用大括号括起一堆数字但没有体现映射关系,那么Python就会认为这堆玩意儿就是个集合。

10_1.jpg

由于集合中的元素是无序的,所以并不能像序列那样用下标来进行访问,但是可以使用迭代把集合中的数据一个个读取出来:(add()和remove()方法)

10_2.jpg

有些时候希望集合中的数据具有稳定性,也就是说,像元组一样不能随意地增加或删除集合中的元素。那么我们可以定义不可变集合,这里使用的是frozenset()函数,没错,就是把元素给frozen(冰冻)起来:

10_3.jpg

Atas ialah kandungan terperinci 深入浅出解析Python基础语法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!