随着前面阿法尔go打败了围棋大师,让人工智能、机器学习大火了一把,然后学习人工智能和机器学习前提也需要掌握一定的Python知识点,那么学习这些前,我们究竟应该先掌握哪些Python知识点呢?
第一阶段:python基础
python基本数据结构
1、list: a[1,2,3]
2、tuple: a(1,2,3) 一旦初始化,就不能改变内容
3、dict:{‘a’:1,‘b’:2,‘c’:3} key:value (dict中的key值不能改变)
4、set: a([1,2,3]) (初始化的时候,传入的是list,set中的key也不能重复,set可以看做是数学意义上的无序和无重复元素的集合)
python的for循环
1)for … in 的循环,一次把list或者tuple中的元素迭代出来
2)for x in …的循环,把每个元素带入变量x中进行计算
python的函数参数
默认参数:
必选参数在前,默认参数在后。且默认参数必须指向不变对象(不能是list)
2)可变参数:(传入的参数的个数是可变的)
3)关键字参数:
python的列表生成式
python的列表生成式有点过于强大,能够花式生成各种符合要求的列表,包括全排列,if判断都行。由于内容有点多,这里直接贴一个链接python的列表生成式。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
这里还有一个生成器的概念,现在并不是很懂,还是先把链接放这里,以后用到了看不懂再回过头来看这个。
生成器
python的函数
1)高阶函数:python当中的函数也可以复制给变量
如果一个函数以函数为参变量,那么这个函数称为高阶函数
python当中的map和reduce,还有filter
这两个都是高阶函数,接受两个参数,第一个参数是函数变量,第二个参数是一个list。
map(f,nums)意思是将函数f作用于nums这个list中的每一个元素
reduce(f,nums)的作用类似于归约
同为高阶函数的sorted
sorted要单独拿出来说,因为它的输入和前面所描述的输入正好相反
sorted(nums,func),sorted可以对list直接排序,但是默认升序,我们可以自定义排序函数来实现sorted函数的任意排序功能
将函数作为返回值实现python闭包
这里也没太弄明白用处在哪里,先贴链接,以后遇到了回过头来再看
python闭包
python中的正则表达式
python中的正则表达式lamda也叫做匿名函数
[图片上传失败…(image-fc0493-1629341095228)]
使用匿名函数的好处是因为匿名函数没有名字,不用担心函数名产生的冲突问题
python模块概念
当python文件被当作为模块被其他模块引用时,并不会直接执行test函数,if判断将失败。因此这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试
2)python,实现函数和变量的私有保护,可以通过_前缀来实现
,_前缀表示该变量/函数为此模块私有,其他模块并不应该访问(不应该访问并不能代表不能访问)
在主函数中调用
同样是可以调用的,单数从编程习惯上来说不应该引用private函数
python中的面向对象编程
和普通函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且调用时不用传递该参数。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
python多进程和多线程
也可以用multiprocessing来创建子进程
创建子进程的时候,只需要传入一个执行函数和函数的参数,创建一个process实例,用start方法启动,这样创建进程比fork还要简单,join()方法可以等待子进程结束后在继续往下运行,通常用于进程间的同步。
多线程VS多进程
多进程:最大的优点就是稳定性高,因为一个子进程崩溃了,不会影响主进程和其他子进程。缺点就是,在windows环境下,创建多个进程开销巨大。
多线程:通常比多进程快一点,但是也块不到哪里去。多线程模型下,任一个线程崩溃都会导致整个程序崩溃,因为所有线程共享进程的内存。
在线程和进程中,应当优选process,因为process更稳定,而且process可以分布到多台机器上,而thread最多只能分布到同一台机器的多个cpu上。
python当中的正则表达式(re模块)
这部分内容涉及到python中独特而又强大的字符串匹配机制,内容比较复杂和庞大,先留个坑
正则表达式
python基础大概就记了这些笔记,当然python编程是很强大的,分布式和网络编程包括python爬虫等都相当强大。