当前位置:   article > 正文

python学习笔记——函数

python学习笔记——函数

 2. 函数****

2.1. 定义****

一段可以被另外一段代码执行的程序

2.2. 语法****

  1. def 函数名():
  2. 函数体--语法
  3. return 需要的返回值

2.3. 调用****

  1. 函数名()
  2. # 定义函数*
  3. def test_function():
  4. print('我是一个测试函数')
  5. # 调用函数*
  6. if name == 'main':
  7. test_function()
  8. 我是一个测试函数

2.4. 参数****

不传会报错

2.4.1. 顺序传参 必传****

  1. def 函数名(参数1,参数2...)
  2. 函数体
  3. 函数名(传参1,传参2)
  4. def test_function(name, age):
  5. print('我是一个测试函数')*
  6. *if name == 'main':
  7. test_function('Alison', '25')

2.4.2. 关键字参数 - 必传****

  1. def 函数名(参数1,参数2...)
  2. 函数体
  3. 函数名(参数1=传参1,参数2=传参2)
  4. def test_function(name, age):
  5. print('我是一个测试函数')
  6. if name == 'main':
  7. test_function(name='Alison', age='25')

2.4.3. 不定长参数 必传****

2.4.3.1.  args***

可以传任意多个参数进来

并以tuple接收

  1. def test_function(*args):
  2. print(args)
  3. if name == 'main':
  4. test_function('name','age','test')
  5. ('name', 'age', 'test')
2.4.3.2.  kwargs**

不确定需要传递多少个参数的时候,使用关键字参数的形式传递

并以dict接收

  1. def test_function(**kwargs):
  2. print(kwargs)
  3. if name == 'main':
  4. test_function(name='Alison', age=25, sex='女')
  5. {'name': 'Alison', 'age': 25, 'sex': '女'}
2.4.3.3.  args,kwargs*

位置必须args在前,kwargs在后

分别以tuple、dict接收

  1. def test_function(*args,**kwargs):
  2. print(args)
  3. print(kwargs)
  4. if name == 'main':
  5. test_function(1,2,3,4,5,name='Alison', age=25)
  6. (1, 2, 3, 4, 5)
  7. {'name': 'Alison', 'age': 25}

2.4.4. 默认参数****

函数定义的时候就给一个默认值

如果函数调用的时候传入了参数,就是用传入的参数;反之,则使用默认参数

默认参数可以不传递

  1. def test_function(name='Alison',age=25):
  2. print(name,age)
  3. if name == 'main':
  4. test_function('Taylor')
  5. Taylor 25

2.4.5. 拆包****

用于参数传递

1. *

2. **

  1. *args
  2. def test_function(*args):
  3. print(args)
  4. list = [1,2,3,4]
  5. test_function(*list)
  6. (1, 2, 3, 4)
  7. **kwargs
  8. def test_function(**kwargs):
  9. print(kwargs)
  10. dict = {'key1':'val1','key2':'val2'}
  11. test_function(dict) #相当于('key1'='val1','key2'='val2')
  12. {'key1': 'val1', 'key2': 'val2'}

2.5. return返回值****

如果需要返回值,就写return返回内容

反之,就不写,默认返回none

Return是函数执行结束的标识,函数执行遇到return语句,就会结束执行

  1. def test_function(name):
  2. return name
  3. if name == 'main':
  4. result =test_function('张三')
  5. print(result)
  6. 张三 
  7. def test_function():
  8. for i in range(10): #0~9*
  9. ***print(i)
  10. if i == 3:
  11. return 0
  12. elif i == 4:
  13. print('test')
  14. test_function()
  15. 0
  16. 1
  17. 2
  18. 3

2.6. 变量的作用域****

2.6.1. 局部变量****

定义在函数里面,仅限包含的函数可以使用

2.6.2. 全局变量****

定义在函数外面,供全局函数使用

  1. num = '全局变量'
  2. def test_function1():
  3. num = '局部变量'
  4. print(num)
  5. def test_function2():
  6. print(num)
  7. test_function1()
  8. test_function2()

局部变量

全局变量

2.6.3. Global(了解)****

(更好用的方法是 类:类属性)

将局部变量设置成全局变量

语法:global 变量名

注意:只能定义,不能直接赋值,否则会报错

  1. def function():
  2. global test_str
  3. test_str = 'test'
  4. print(test_str)
  5. def function2():
  6. function() #只有在函数运行起来才会在内存中去创建变量,否则代码没运行,直接调用会出错
  7. print(test_str)
  8. function2()
  9. test
  10. test

2.7. 常用函数****

2.7.1. range()****

生成一个从0到x的序列对象,左闭右开

参数:[0、4,1]

1. start:默认为0

2. Stop:必传参

3. step:默认为1,同切片

用途:利用下标操作list

  1. list_1 = ['a', 'b', 'c', 'd']
  2. for k in range(len(list_1)):   # k: 下标,通过下标打印*
  3. ***print(list_1[k])
  4. 2.7.2. Isinstance()****
  5. 判断一个函数对象是否是一个已知类型,返回布尔值
  6. num = 1
  7. res = isinstance(num,int)
  8. print(res)
  9. True

2.7.3. Zip()****

Zip(列表1,列表2)****

  1. def test():
  2. list1 = ['name', 'sex', 'age']
  3. list2 = ['Alison', 'F', '25']
  4. key_val = zip(list1, list2)
  5. print(list(key_val))
  6. if name == 'main':
  7. test()
  8. [('name', 'Alison'), ('sex', 'F'), ('age', '25')]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/354848
推荐阅读
相关标签
  

闽ICP备14008679号