博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python函数
阅读量:5265 次
发布时间:2019-06-14

本文共 1997 字,大约阅读时间需要 6 分钟。

函数在编程语言中可以理解为 一个功能的整合。

函数的定义和调用  实现一个两个数字相加,并且放回对应的结果。

1 def sum2(num1,num2):2     return num1+num23 4 print(sum2(1,2))

 

函数的文档说明

1 def  sum2(num1,num2):2     "用来计算两个 数的和 并返回"3     return num1+num24 5 使用help(sum2) 将输出函数文档说明的内容。

 

函数的嵌套

1 # 打印一条横线 2 def printOneLine(): 3     print("-"*30) 4  5 # 打印多条横线 6 def printNumLine(num): 7     i=0 8  9     # 因为printOneLine函数已经完成了打印横线的功能,10     # 只需要多次调用此函数即可11     while i

 

全局变量和局部变量

在函数外边定义的都是全局变量(global),而在函数内部定义的是局部变量(locals列表)

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

 

  • 在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
  • 对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

 

函数返回值

1 >>> def divid(a, b): 2 ...     shang = a//b 3 ...     yushu = a%b  4 ...     return shang, yushu 5 ... 6 >>> sh, yu = divid(5, 2) 7 >>> sh 8 5 9 >>> yu10 1

可以有多个返回值,这样返回的就是元祖类型(tuple)。

 

函数参数

1. 缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

1 def printinfo( name, age = 35 ):2    # 打印任何传入的字符串3    print "Name: ", name4    print "Age ", age5 6 # 调用printinfo函数7 printinfo(name="miki" )8 printinfo( age=9,name="miki" )

 

2. 不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

1 def add(a,b,*args,*kwargs):2      pass
View Code

*args 是一个列表  **kwargs是一个字典。

 

3. 引用参数

1 >>> def selfAdd(a): 2 ...     """自增""" 3 ...     a += a 4 ... 5 >>> a_int = 1 6 >>> a_int 7 1 8 >>> selfAdd(a_int) 9 >>> a_int10 111 >>> a_list = [1, 2]12 >>> a_list13 [1, 2]14 >>> selfAdd(a_list)15 >>> a_list16 [1, 2, 1, 2]
View Code

 

Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

1 >>> def selfAdd(a): 2 ...     """自增""" 3 ...     a = a + a   # 我们更改了函数体的这句话 4 ... 5 >>> a_int = 1 6 >>> a_int 7 1 8 >>> selfAdd(a_int) 9 >>> a_int10 111 >>> a_list = [1, 2]12 >>> a_list13 [1, 2]14 >>> selfAdd(a_list)15 >>> a_list16 [1, 2]      # 想一想为什么没有变呢?
View Code

 对于可变类型  +=  和  =+ 是不同的,+=是会改变可变类型的,=+不改变可变类型的值。

 

不可变数据类型有  数字、字符串、元祖

转载于:https://www.cnblogs.com/PythonInMyLife/p/6919644.html

你可能感兴趣的文章
Ztree异步树加载
查看>>
(Problem 62)Cubic permutations(待续)
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
力扣——超过经理收入的员工(数据库的题
查看>>
UVA 10529-Dumb Bones(概率dp)
查看>>
Hibernate4的注解 (持续更新范例中)
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
消息中间件收录集
查看>>
POJ 3278 Catch That Cow - BFS入门
查看>>
Define a static property for F# class
查看>>
UVA - 1225 Digit Counting
查看>>
离开又能有什么???
查看>>
说说API的防重放机制
查看>>
实例演示在SQL中启用全文检索
查看>>
爬虫框架
查看>>
leetcode-20. Valid Parentheses
查看>>
利用MVC的过滤器实现url的参数加密和解密
查看>>
再谈java枚举 ENUM
查看>>
4-12(2)
查看>>
BusinessObjects Enterprise Java SDK
查看>>