Python 函数
函数能提高应用的模块性,和代码的重复利用率。我们之前已经使用过一些Python提供的内建函数,比如print()。当然我们也可以自己创建函数,叫做自定义函数。
Python 函数定义规则
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。Python 函数定义的语法
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表): 函数体
Python 函数的定义示例
# 例:定义函数,输出”Hello World”def hello(): print("Hello World!")
Python 函数的调用
函数不调用就不会执行。调用函数通过函数名完成。
# 例:调用我们之前定义的hello函数:def hello() : print("Hello World!")hello()
输出:
Hello World!
Python 函数的参数传递
def hello(name) : print("Hello {}".format(name))hello('Mrzhang')
输出:
Hello Mrzhang
Python 函数关键字参数
def hello(name,age=18) : print("Hello my name is {},今年{}岁".format(name,age))hello('Mrzhang')hello('Mrzhang',22)hello(age=66,name='Mrli')
输出:
Hello my name is Mrzhang,今年18岁Hello my name is Mrzhang,今年22岁Hello my name is Mrli,今年66岁
注:参数中传入不可变类型的数据,相当于将原数据复制了一份.
注:参数中传入可变类型的数据,可以对原有数据进行操作,也可以重新赋值.Python 函数的return语句
def hello(name) : print("Hello {}".format(name)) return '我是一个字符串返回值'hello('Mrzhang')print('-----我是一条分割线-----')print(hello('Mrli'))
输出:
Hello Mrzhang-----我是一条分割线-----Hello Mrli我是一个字符串返回值
变量作用域
Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这些语句内定义的变量,外部也可以访问.
# 例:x = int(10) # python内置作用域y = 2 # 当前模块中的全局变量Globaldef outfuction(): outfx = 2 # 外层作用域 def infunction(): infx = 3 # 局部作用域
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
# 例:total = 0; # 这是一个全局变量def sum( arg1, arg2 ): total = arg1 + arg2 # total在这里是局部变量. print ("函数内是局部变量 : ", total) return totalsum( 10, 20 )print ("函数外是全局变量 : ", total)
内置函数
内置函数见菜鸟教程
模块
模块的概念
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py
模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。模块的使用
import 语句
import os # 导入系统内置模块 osprint (os.listdir()) # 调用os模块的listdir()方法 遍历当前文件夹的所有文件
输出:
['test.py'] # 你输出的和我可能不太一样,需要查看你当前目录下有哪些文件
自建一个模块 并写入两个方法 一个说你好 一个说拜拜
然后导入 并调用两个方法 通过绝对路径调用模块from…import 语句
导入模块中的指定 部分/方法 到当前命名空间下
from tool.test1 import sayHello,sayByesayBye()sayHello()
输出:
Byehello
如下图:
Python dir()函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回.