3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python代码同样遵循于GPL(General Public License)协议,Python语法简洁而清晰,具有丰富和强大的类库,它常被称为胶水语言,能够把用其他语言制作的各种模块(尤其是C、c++)很轻松联结在一起,正因为Python语言的简洁、开发效率高,它常被用于网站开发,网络编程,图形处理,黑客编程等等。下面我们看下Python的函数和模块为例,如何3一月快速学习PYTHON。

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

默认参数值

最常用的一种形式是为一个或多个参数指定默认值。这会创建一个可以使用比定义时允许的参数更少的参数调用的函数,例如

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

这个函数可以通过几种不同的方式调用:

只给出必要的参数:

ask_ok('Do you really want to quit?')

给出一个可选的参数:

ask_ok('OK to overwrite the file?', 2)

或者给出所有的参数:

ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')

这个例子还介绍了 in 关键字。它测定序列中是否包含某个确定的值。

默认值在函数 定义 作用域被解析,如下所示

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

将会输出 5 。

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

Lambda 形式

出于实际需要,有几种通常在函数式编程语言例如 Lisp 中出现的功能加入到了Python。通过 lambda 关键字,可以创建短小的匿名函数。这里有一个函数返回它的两个参数的和: lambda a, b: a+b。 Lambda 形式可以用于任何需要的函数对象。出于语法限制,它们只能有一个单独的表达式。语义上讲,它们只是普通函数定义中的一个语法技巧。类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量:

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

re.match

re.match 尝试从字符串的开始全部或者部分匹配某个模式,如:下面的例子匹配第一个单词。

1 import re

2 text = "PythonTab.com is a good Python website"

3 m = re.match(r"(w+)s", text)

4 if m:

5 print m.group(0), ' ', m.group(1)

6 else:

7 print 'not match'

re.match的函数原型为:re.match(pattern, string, flags)

第一个参数是正则表达式,这里为"(w+)s",如果匹配成功,则返回一个Match,否则返回一个None;

第二个参数表示要匹配的字符串;

第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

注意:它能够配配的前提是:开始就必须满足匹配条件

re.search

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

1 import re

2 text = "PythonTab.com is a good Python website"

3 m = re.search(r'Pyt(on)ns', text)

4 if m:

5 print m.group(0), m.group(1)

6 else:

7 print 'not search'

re.search的函数原型为: re.search(pattern, string, flags)

每个参数的含意含意与re.match一样。

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

re.sub

re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :

1 import re

2 text = "PythonTab.com is a good Python website"

3 print re.sub(r's+', '-', text)

re.sub的函数原型为:re.sub(pattern, repl, string, count)

其中第二个函数是替换后的字符串;本例中为'-'

第四个参数指替换个数。默认为0,表示每个匹配项都替换。

re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r's', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。

re.match

re.match 尝试从字符串的开始全部或者部分匹配某个模式,如:下面的例子匹配第一个单词。

1 import re

2 text = "PythonTab.com is a good Python website"

3 m = re.match(r"(w+)s", text)

4 if m:

5 print m.group(0), ' ', m.group(1)

6 else:

7 print 'not match'

re.match的函数原型为:re.match(pattern, string, flags)

第一个参数是正则表达式,这里为"(w+)s",如果匹配成功,则返回一个Match,否则返回一个None;

第二个参数表示要匹配的字符串;

第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

注意:它能够配配的前提是:开始就必须满足匹配条件

re.search

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

1 import re

2 text = "PythonTab.com is a good Python website"

3 m = re.search(r'Pyt(on)ns', text)

4 if m:

5 print m.group(0), m.group(1)

6 else:

7 print 'not search'

re.search的函数原型为: re.search(pattern, string, flags)

每个参数的含意含意与re.match一样。

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

re.sub

re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :

1 import re

2 text = "PythonTab.com is a good Python website"

3 print re.sub(r's+', '-', text)

re.sub的函数原型为:re.sub(pattern, repl, string, count)

其中第二个函数是替换后的字符串;本例中为'-'

第四个参数指替换个数。默认为0,表示每个匹配项都替换。

re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r's', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。

re.split

可以使用re.split来分割字符串,如:re.split(r's+', text);将字符串按空格分割成一个单词列表。

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

一、模块简介

模块是实现了某个功能的代码集合,比如几个.py文件可以组成代码集合即模块。其中常见的模块有os模块(系统相关),file模块(文件操作相关)

模块主要分三类:

  • 自定义模块 :所谓自定义模块,即自己编写Python文件组成的模块。

  • 第三方模块 :采用其他人编写的模块,即第三方提供的模块

  • 内置模块:python内置的模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

import的工作机制

import语句导入指定的模块时或执行三个步骤 找到模块文件 在指定的路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有 被导入的文件才会留下.pyc文件 执行模块的代码来创建其所定义的对象 模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性 注意:模块只在第一次导入时才会执行如上步骤。 后续的导入操作只不过是提取内存中已加载的模块对象 reload()可用于重新加载模块

上面是简单基的介绍,下面我们看下Python的系统学习路线:

3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块

知识点太多了,看的不是很清楚,欢迎在下面评论区留言如何快速3个月学习Python。好了,今天在知识点就分享到这里。祝大家早日成为Python大牛!

相关推荐