Python函数和类
一、Python函数
任何程序里面包含的不是函数就是类,Python也是如此。
-
函数的定义
函数的作用有两个:①模块化编程 ②代码重用
函数是独立的,完成特定功能的代码段,在Python程序中,所有的一切都是函数,大多数是有名函数,也存在匿名函数。
def 函数名称([参数1,参数2,.....]):
函数体
...
[return 返回值]
-
函数的参数(形参和实参) 在函数定义和调用的时候,我们能根据自己的需求来实现参数的传递,函数的参数有两种形式:形参和实参。 形参:在函数定义的时候,括号中所编写的参数成为形式参数。 实参:在函数调用的时候,传递的参数成为实际参数 def hello(name):
return name
mingzi ='Mrzhang'
greet(mingzi)
函数的参数类型:位置参数、关键词参数、缺省参数,不定长参数、 在函数定义时,我们可以定义多个参数,但是在函数调用时,我们也应该传递多个参数,正常情况下,要一一对应。 位置参数: def student(name,age,mobile):
print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')
student('zhangsan',20,'1310389090')
关键词参数: def student(name,age,mobile):
print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')
student(name='zhangsan',age=20,mobile='1310389090')
缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不穿该默认值。 注意:定义缺省参数时,一定要把它卸载参数列表的最后面。 def student(name,age,gender='male'):
print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')
student('zhangsan',20)
student('lisi',21,female)
student('wanger',18)
不定长参数:也叫可变参数
def student(*args):
print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')
student('zhangsan',20,'1310389090')
def student(**kwargs):
print(f'学生的名字交{kwargs["name"],今年{kwargs["age"]岁了,联系方式是{kwargs["mobile"]}')
Python组包:把多个数据组成元组或字典的过程。无论是包裹位置传递还是包裹关键字传递,都是一个组包的过程。 -
Python拆包(元组和字典) 拆包:对于函数中的多个返回数据,去掉元组,列表或者字典 ,直接获取里面数据的过程。
def func():
return 100,200
num1,num2=func()
print(num1)
print(num2)
dict1 = {'name':'小明', 'age':18}
a, b = dict1
print(a)
print(b)
print(dict1[a])
print(dict1[b])
-
函数的变量(局部变量和全局变量) 在Python中,定义在函数外部的变量称之为全局变量;定义在函数内部的变量称之为局部变量。
num=1
def func():
i=1
思考:能不能在局部作用域中对全局变量进行更改? 答:global关键字 num=10
def funca():
global num
num =20
funca()
print(num)
-
关于return返回值问题: (1)如果一个函数有两个return,程序如何执行? def return_text():
return 1
return 2
reslut=return_text()
print(result)
(2)如果一个一个函数有多个返回值,该如何书写? def return_text():
return 1,2
result=return_text()
print(result)
-
函数的调用: 在Python中函数和变量一样,都是先定义后进行调用
def hello(name):
return name+',hello!'
result=hello('Mrzhang')
print(result)
-
函数的嵌套 函数的嵌套调用:一个函数里面又调用了另外一个函数。 Python代码执行遵循一个顺序原则: 从上往下,从左往右,一行一行地执行。 def funcA():
print('this is function A.')
def funcB():
print('*' * 40)
print('this is function B')
funcA()
print('*' * 40)
funcB()
代码执行流程: ? 执行第1行时仅仅定义了funcA函数,内部代码没有执行,跳过第2行继续执行, ? 执行到第3行,定义funcB函数,并没有真正的调用和执行。 ? 代码跳到第8行,funcB函数,调用funcB并且执行内部代码,程序返回第4行 ? 执行第4行,打印字符,并继续执行,直到第6行调用函数funcA(),跳到第2行。 ? 第二行执行完毕后,返回funcB,继续第7行,打印字符串。 -
Python的内置函数: 内置函数无须从模块中导入,也不用定义 就可以直接在任意位置直接调用。
abs(-1):求绝对值,返回1
max([1,2,3]):求序列中最大值,可以是列表或元组
min(2,3,4):求序列中最小值,可以是列表或元组
divmod(6,3):取模,返回一个元组,包含商和余数
int(3.9):转换成整数,去尾转换,结果为3
float(3):转换成浮点数
str(123):转换成字符串
list((1,2)):元组转换为列表
tuple([1,2]):列表转换成元组
len([1,3,5]):求序列长度,可以是列表或元组
9.Python文件操作方法(读写)
open函数负责新建、打开文件,并返回操作对象。
read方法将文件内容读取到内存。
write方法将指定内容写入文件
close方法关闭文件,open文件后必须有close文件。
open(filename[,mode,encoding=])
'''
filename 要打开或新建的文件地址或者名称,字符串形式,例如 text.txt 或者E:/python/text.txt
mode 文件访问模式,只读,只写,读写等等,可选参数,有参数列表,默认模式为只读
encoding= 编码解码的标准,如果文件中包含中文信息,需要制定encoding=utf-8
'''
实例:
f=open('test.txt','a+',encoding='utf-8')
data=f.write('Hello World')
read=f.read()
print(read)
?
|