IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python知识点10---函数 -> 正文阅读

[Python知识库]Python知识点10---函数

Python的函数和Scala的函数很像,语法很简单,注意点如下

1、函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()2、任何传入参数必须放在圆括号中间,圆括号之间可以用于定义参数。
3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4、函数内容以冒号起始,并且缩进。
5、return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

例如:
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

Python的函数其实在开发中,有一些会迷茫的点,这里我总结起来给大家说一下

1、函数的参数有多种写法,后面我会给大家罗列知识点,不过要知道Python的变量是一种弱检查,说白了就和js一样,名称只是数据的引用,而不会有类型的限制,所以导致大家书写的时候可能会很别扭,不知道怎么操作了,其实这一点大家完全不用去多做考虑,我个人觉得Python对于这个问题处于放弃状态,就是说方法体按照需要的逻辑正常,如果使用函数时传入的参数不一样,那就直接报错了,没有其他预防方法

2、在Python中,函数必须先定义在调用,不能像c++那样声明函数

3、对于Python来说,同样遵行形参和传参的准则,但是Python更加详细的区分了值传递和地址传递,其中字符串、元组 和 数值是不可更改的对象,也就是我们常识的值传递,而列表、字典这些容器则是可以修改的对象,也就是地址传递,集合和布尔是两个特殊的数据类型不在考虑范围内


Python函数的参数,也有不同的叫法。

一、必备参数

必备参数就是我们常用的那种,写在参数位中,且对于方法体必不可少的参数

可写函数说明
def printme( str ):
   print str
 
调用printme函数
printme()

上面这个例子中没有传递必备参数str,所有执行的时候会报错
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    printme()
TypeError: printme() takes exactly 1 argument (0 given)

二、关键字参数

关键字参数,是指Python允许通过形参名称指定传入参数,忽略列常规写法中的顺序概念

def printme( str , index) :
	print str
 
#调用printme函数
printme(index = 1 , str = 'My Tom')

三、默认参数

默认参数,是指该参数拥有默认值,使得该参数可以不用传递

def printme( str , index = 1) :
	print str

#调用printme函数
printme(str = 'My Tom')

四、不定长参数

不定长参数,说的其实就是可变参,底层原理是一个容器,可变参定义的时候由星号开头

def printinfo( *vartuple ):
   for var in vartuple:
      print var
 
# 调用printinfo 函数
printinfo( 70, 60, 50 )

不过在Python开发中大家可能会见到两个星号开头的参数,其实这个也叫可变参,只不过底层的实现容器不一样

一个星号的时候是普通的可变参,它的底层实现是一个元组

def printinfo( *vartuple ):
    print vartuple
 
# 调用printinfo 函数
printinfo( 70, 60 )

结果:(70, 60)

两个星号的时候叫做含关键字的可变参,它的底层是字典

def printinfo( **vartuple ):
    print vartuple
 
# 调用printinfo 函数
printinfo( name=70, age=60 )

结果:{'age': 60, 'name': 70}

除了常规的函数,Python也支持默认函数,原理是lambda表达式

sum = lambda arg1, arg2: arg1 + arg2
print(sum(1,1)) 	---输出2

Python也可以写递归函数,不过我这里就不写了,毕竟递归大家都知道是怎么回事,函数调用自身而已


同时Python函数的返回值任然是return关键字
def sum( arg1, arg2 ):
   return arg1+arg2
 
# 调用sum函数
total = sum( 10, 20 )

print(total)

Python的返回值还支持拆包操作,就是返回多个返回值

def num():
    return 100 , 200
 
# 调用printinfo 函数
num1 , num2 = num()

print(num1)
print(num2)

这里针对拆包说一句题外话,拆包不止可以作用在返回值上,还可以在平常操作中进行,必须我们写for循环遍历字典的时候遍历用的变量有两个,那就是一种拆包操作

不过对于字典我们其实可以直接拆包

a = {"name" : "Tom" , "age" : 12}
b , c = a
print(b)	---key
print(c)
print(a[b])		---value
print(a[c])

当然与函数相关联的局部变量、全局变量的概念我相信大家都知道,我这里就不给大家解释了,给大家准备了一个例子
total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
   #返回2个参数的和."
   total = arg1 + arg2 # total在这里是局部变量.
   print "函数内是局部变量 : ", total
   return total
 
#调用sum函数
sum( 10, 20 )
print "函数外是全局变量 : ", total
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:28:29  更:2021-09-04 17:29:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:54:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码