函数与模块

if __name__ == ‘__main__’:  #模拟程序的入口,一个编程的良好习惯

 

函数(function:是为完成一个操作而组合在一起的语句组

好处:1、可以省去编写重复代码的苦闷

                   2、可以组织和简化编码

                   3、提高代码可读性

     分类:1、内置函数(官方文档:https://docs.python.org/zh-cn/3/library/functions.html) 

                                 老九常用函数总结:http://wiki.xuetang9.com/?p=7170

2、自定义函数

【老九】【Python】函数与模块

 

     bool()如果不给参数,默认为False;值为0,空序列(空列表、空字符串)、None等,

              返回False

     str(),str(None)返回None(字符串)

     complex(),将字符串转换为一个复数,运算符之间不能有空格,

     ASCII码:空格-32  A-65  a-97

     ord(),求当前字符对应的数字(ASCII码)

     chr(),求当前数字对应的字符(ASCII码)

        

math模块

【老九】【Python】函数与模块

 

补充两个内置函数

         eval(),编译执行函数,动态的表达式求值。

         exec(),可以用来执行字符串语句。

变量的操作

         globals(),返回当前作用域内的全局变量和其组成的字典

         locals(),返回当前作用域范围内局部变量和其组成的字典

 

定义函数的语法:函数定义由函数名称、形式参数以及函数体组成

         def <函数名>([参数列表]):   # def:表示定义函数 <>:表示固定的,[]:表示可选的

                   <函数体>

                   [return <返回值列表>]

 

【老九】【Python】函数与模块

注意:Python中,传递参数的时候实际上传递的是对象(共享传参,形参是实参的别名)。

                   函数体中出现pass表示该函数不用实现。

                   当函数不写返回值的时候,默认回返回一个None

                   一个函数最好只做一件事。

                   函数的调用分为位置参数和命名关键字参数,使用位置参数要求参数按照定义函数

                            中的顺序进行传递,使用命名关键字时,参数的顺序是任意的。

【老九】【Python】函数与模块

 

                   可变参数:*是个分隔符,告诉Python解释器这是个可变参数。(可变参数实际

上是参数在传递给函数时,函数内部自动将多个参数组装成一个元组对象)。

                  

                   参数的传递机制

【老九】【Python】函数与模块

 

可变数据类型呢故事指变量所指向的内存地址的值是可以被改变的。

【老九】【Python】函数与模块

 

                   想要改变列表原来的值必须使用下标进行访问修改。

                   传参使用切片,相当于创建一个新的切片列表进行访问修改,不影响原来的列表

 

 

模块化代码:模块化可以使代码易于维护和调试,提高代码的重用性,可以将函数的定义放在一个被称为模块的py文件中,这些模块文件后面就可以被我们的程序导入并重复使用了。

         使用import进行引入。:import 模块名

         引入包中的模块太长可以取别名:import 包名.模块名 as 别名

         从某个包中引入某个模块:from 包名 import 模块名

         导入某个包下的所有子模块(不推荐使用):from 包名 import *

 

变量的作用域:指变量可以在程序中被引用的范围

  1. 所有函数之外创建的变量是全局变量,可以被所有函数访问(在函数中修改全局变量不是一个好习惯)
  2. 在函数内部定义的变量被称为局部变量,只能在函数内部访问。局部变量的作用域从创建变量的地方开始,直到包含该变量的函数结束为止。
  3. 如果在函数中想访问当前模块定义的全局变量,那么需要在变量前添加global(全局的)关键字。

函数小总结:

可变与不可变类型

在Python中,一切皆为对象,一切皆为对象的引用

不可变的类型:int、float、string、number、tuple,特点是不可变对象的值并没有发生改变,变得只是创建了新的对象,改变了变量对对象的引用

可变类型:列表、字典、集合、自定义类型,特点所谓可变对象,对象的内容可变。

传递参数的5种方式

  1. 位置参数:参数定义的位置好饿传递时的位置要求一致。(默认使用位置参数调用)
  2. 默认参数:在函数定义的时候在形参列表中使用=赋值,使用默认参数时,默认参数必须指向不可变对象。当默认参数类型为可变类型时,可变对象只会被执行一次

3、关键字参数(key word arguments):使用**定义

【老九】【Python】函数与模块

 

4、命名关键字参数:在关键字参数的基础上限制传入关键字的变量名(*后面的变量名)

   【老九】【Python】函数与模块

5、不定长参数:使用*,注意和命名关键字的区别

【老九】【Python】函数与模块

 

注意:书写的时候,必须遵循的顺序为:位置参数 -> 默认参数 -> 不定长参数 -> 关键字参数 -> 命名关键字参数。如果参数列表中存在不定长参数,后面如果再出现命名关键字参数,就可以不用单独一个星号来分隔了

 

元组:tuple

         1、与列表相似,不同之处就在于元组的元素不能被修改

         2、列表使用的是中括号,元素使用的是小括号

         3、列表属于可变类型,元组属于不可变类型(一旦创建,元素不能被修改)

         4、Python内部对元组进行了大量的优化,访问和处理速度都比列表快

         5、不能删除元组中的某个元素,只能使用del删除整个元组。

         tuple1 = tuple((1,2,3))                         #创建一个包含3个元素的元组对象

         tuple2 = (1,)                                           #创建一个元素的元组时,必须带有逗号

      

遇到问题,可加老九君个人QQ:614940318,请备注来自CSDN
老九学堂免费C、C++、Java课程地址: https://study.163.com/courses-search?keyword=老九学堂

徐老师线下全栈就业班开始报名啦~

零基础开讲,8个月,Java全栈学习,终身推荐就业

【老九】【Python】函数与模块

  

 

相关文章:

  • 2022-01-08
  • 2021-07-24
  • 2021-11-11
  • 2022-12-23
  • 2021-05-22
  • 2021-10-31
  • 2021-12-25
猜你喜欢
  • 2021-08-01
  • 2022-12-23
  • 2021-07-21
  • 2022-01-01
  • 2021-05-09
  • 2021-06-24
相关资源
相似解决方案