3个月可以学好Python吗?月薪20K的大佬给你讲解函数和模块
Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python代码同样遵循于GPL(General Public License)协议,Python语法简洁而清晰,具有丰富和强大的类库,它常被称为胶水语言,能够把用其他语言制作的各种模块(尤其是C、c++)很轻松联结在一起,正因为Python语言的简洁、开发效率高,它常被用于网站开发,网络编程,图形处理,黑客编程等等。下面我们看下Python的函数和模块为例,如何3一月快速学习PYTHON。
默认参数值
最常用的一种形式是为一个或多个参数指定默认值。这会创建一个可以使用比定义时允许的参数更少的参数调用的函数,例如
这个函数可以通过几种不同的方式调用:
只给出必要的参数:
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 关键字。它测定序列中是否包含某个确定的值。
默认值在函数 定义 作用域被解析,如下所示
将会输出 5 。
Lambda 形式
出于实际需要,有几种通常在函数式编程语言例如 Lisp 中出现的功能加入到了Python。通过 lambda 关键字,可以创建短小的匿名函数。这里有一个函数返回它的两个参数的和: lambda a, b: a+b。 Lambda 形式可以用于任何需要的函数对象。出于语法限制,它们只能有一个单独的表达式。语义上讲,它们只是普通函数定义中的一个语法技巧。类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量:
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);将字符串按空格分割成一个单词列表。
一、模块简介
模块是实现了某个功能的代码集合,比如几个.py文件可以组成代码集合即模块。其中常见的模块有os模块(系统相关),file模块(文件操作相关)
模块主要分三类:
自定义模块 :所谓自定义模块,即自己编写Python文件组成的模块。
第三方模块 :采用其他人编写的模块,即第三方提供的模块
内置模块:python内置的模块
import的工作机制
import语句导入指定的模块时或执行三个步骤 找到模块文件 在指定的路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有 被导入的文件才会留下.pyc文件 执行模块的代码来创建其所定义的对象 模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性 注意:模块只在第一次导入时才会执行如上步骤。 后续的导入操作只不过是提取内存中已加载的模块对象 reload()可用于重新加载模块
上面是简单基的介绍,下面我们看下Python的系统学习路线:
知识点太多了,看的不是很清楚,欢迎在下面评论区留言如何快速3个月学习Python。好了,今天在知识点就分享到这里。祝大家早日成为Python大牛!