第五章:函数
1.创建函数
def hello(name):
return ‘hello,’+name
2.记录函数
def hello(name): ’this is hello function’
return ‘hello,’+name
>>hello.__doc__
输出: ’this is hello function’
3.参数
def hello(name):
name=’zq’
return ‘hello,’+name
>>x=’zqq’
>>hello(x)
>>输出x:zqq
函数不能改变外部的值,因为函数的参数作用域是局部的,但是想要改变外部的值的时候怎么办?可以将外部的值放到列表中,这样函数中的变量和外部的列表是同一个引用,就可实现,相反如果不想改变列表的值就应该对原列表复制,然后再进行操作。
4.关键字参数和默认值
def hello1(name,talk):
return talk+’,’+name
可以在调用函数的时候提供参数的名字:
hello1(name=’zq’,talk=’hello’)
输出:hello,zq
有些函数带默认值的:
def hello2(talk,name=’zq’):
return talk+’,’+name
此时,调用函数的时候可以用或者不用提供关键字参数
hello2(talk=‘hello’,)
输出:hello,zq
如果想改变name的值,就给name赋值就可.
5.收集参数
def pri(*paras):
print(paras)
在参数前面加了一个星号,最后会将结果用元组打印出来,收集剩余位置的所有参数(没有等号的),如果没有参数,则是一个空元组。
def pri(**paras):
print(paras)
在参数前面加了两个星号,最后会将结果用字典的形式打印出来,实际上也是收集剩余位置的关键字参数(如:x=1带有等号的,不带等号的用*),如果没有关键字参数,则为空字典
6.反转过程
def add(x,y):
return x+y
>>add(*(1,2))
输出:3
在调用方法的时候,在元组的前面加上星号,将元组转换为参数,与上例相反
def add(x,y):
return x+y
p={‘a’:1,’b’:1}
>>add(**p)
输出:2
7.全局变量
访问全局变量的值:globals[‘变量名’]
访问全局变量的字典:vars
声明全局变量:global
x=1
y=1
def chan(x):
global x
x+=1
return globals()[‘y’]+x
输出:3
8.函数中的函数
def no1():
x=1
def no2():
nonlocal x
x+=1
return no2
注意其中的nonlocal可以访问外部作用域,但不是全局作用域。调用no2()的时候x的值就会加1
9.递归
简单来说就是在函数中自己调用自己,但是要注意无限循环
def func():
func()
上面就是递归,但是是一个无限循环的递归
<!--EndFragment-->
相关推荐
《从零开始学Python数据分析与挖掘》官方纠错 P57:代码中的注释有误,第二段代码的最后一个注释,需改成下方: # 第2至4行,2至5列 print(arr2[1:4,1:5])
从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学...
将自己的python学习经历共享上传 挺适合零基础的人员学习 从零开始学python
从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量...
从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零...
从零开始学Python数据分析与挖掘 从零开始学Python数据分析与挖掘
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开 发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其 他...
从零开始学python
从零开始学Python从零开始学Python
从零开始学Python教程配套代码,零开始学Python开发案例,爬取套图、操作数据库、爬取小说、爬取小说存入数据库、小说网站雏形、日志框架、微信监控、人脸识别、Django后台
将自己的python学习经历共享上传 挺适合零基础的人员学习 从零开始学python
从零开始学Python网络爬虫1
从零开始学Python程式设计(适用Python 3.5以上)畅销回馈版
从零开始学Python AI开发系列141
从零开始学Python AI开发系列351
从零开始学Python AI开发系列121
从零开始学Python AI开发系列431
从零开始学Python AI开发系列471