新手学习python(五)函数

1)定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。

2)使用函数的好处:1、简化代码;2、提高代码的复用性;3、代码可扩展

3)举个例子:

def sayhello():    #使用关键字def定义函数,后面是函数名

print(‘hello world‘)   #函数体

sayhello()   #调用函数

4)参数传递

def calc(a,b):   #a,b为形参,形式参数

res=a*b

print(‘%s * %s=%s‘%(a,b,res))

calc(7,8)   #实参,实际参数

注意:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。

5)四种形参类型

1.位置参数:字面意思也就是按照参数的位置来进行传参,比如说上面的calc函数,a和b就是位置参数,位置参数是必传的,有几个位置参数在调用的时候就要传几个,否则就会报错了。

2.默认参数,默认参数就是在定义形参的时候,给函数默认赋一个值。例如:

def op_file(file_name,content=None):   #content为默认值参数,非必填    f = open(file_name,‘a+‘,encoding=‘utf-8‘)    f.seek(0)    if content:    #不为空代表写        f.write(content)        f.flush()    else:        all_user=(f.read())   #all_user 局部变量,只能在函数内使用        return all_user    #调用完函数之后,返回结果    f.close()

3.可变参数,可变参数用*来接收,非必传参数,不限制参数个数,把传过来的参数放到元祖里,一一对应。
def syz(*args):  #可变参数,即参数组    print(args)#   username=args[0]  #多个参数时,按照下标取数据syz()syz(‘zhangsan‘,‘35435345‘)

4.关键字参数,用**来接收,非必传参数,不限制个数,传过来的参数,放到字典里
def syz2(**kwargs):   #关键字参数    print(kwargs)

syz2()syz2(name=‘zhangsan‘,age=38)syz2(name=‘zhangsan‘,age=38,addr=‘回龙观‘,home=‘四川‘)

6)函数的返回值

每个函数都有返回值,如果没有在函数里面指定返回值的话,在python里面函数执行完之后,默认会返回一个None,函数也可以有多个返回值,如果有多个返回值的话,会把返回值都放到一个元组中,返回的是一个元组。

为什么要有返回值呢,是因为在这个函数操作完之后,它的结果在后面的程序里面需要用到。

函数中的返回值使用return,函数在遇到return就立即结束。

def calc(a,b):

c=a*b

return c,a,b   #函数返回值

res=calc(5,6)   #把函数的返回值赋给res

print(res)

7)局部变量和全局变量

局部变量意思就是在局部生效的,出了这个变量的作用域,这个变量就失效了,比如上面的c就是一个局部变量,出了这个函数之后,就没有c这个值了

全局变量的意思就是在整个程序里面都生效的,在程序最前面定义的都是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list、字典和集合的话,则不需要加global关键字,直接就可以修改。

name =‘zhangsan‘  #全局变量def sayname():    global name  #如果要修改全局变量,需要声明一下,你修改值是全局变量    name=‘lisi‘    print(name)
 

原文地址:https://www.cnblogs.com/bainbian1234/p/8971625.html

时间: 2024-08-28 21:12:32

新手学习python(五)函数的相关文章

PostgreSQL学习手册(五) 函数和操作符

PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:    常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:    下面是PostgreSQL中提供的比较操作符列表: 操作符 描述 < 小于 > 大于 <= 小于或等于 >= 大于或等于 = 等于 != 不等于 比较操作符可以用于所有可以比较的数据类型.所有比较操作符都是双目操作符,且返回boolean类型.除了比较操作符以外,我们还可以使用BETWEEN语句,如

Python新手学习基础之函数-概念与定义

什么是函数? 函数是可以实现一些特定功能的方法或是程序,简单的理解下函数的概念,就是你编写了一些语句,为了方便使用,把这些语句组合在一起,给它起一个名字,即函数名.使用的时候只要调用这个名字,就可以实现语句组里的功能了.Python中自带的一些函数就叫做内建函数,不需要我们自己编写.还有一种是第三方函数,就是其它程序员编好的一些函数,共享给大家使用.前面说的这两种函数都是拿来就可以直接使用的.当然还有一种,就是我们自己编写的为了方便使用的函数,就叫做自定义函数了. 定义一个函数 Python使用

Python新手学习基础之函数-可变参数*

可变参数( * ) 可变参数,顾名思义,它的参数是可变的,比如列表.字典等.如果我们需要函数处理可变数量参数的时候,就可以使用可变参数. 我们在查看很多Python源码时,经常会看到 某函数(*参数1, **参数2)这样的函数定义,这个*参数和**参数就是可变参数,一时会让人有点费解.其实只要把函数可变参数的定义搞清楚了,就不难理解了. 当我们不知道需要用几个参数来定义函数的时候,可变参数就可以大展手脚了. 在Python里,带 * 的参数就是用来接受可变数量参数的. 如果一个函数定义如下: d

Python新手学习基础之函数-return语句与函数调用

return语句 return语句的写法是: return 表达式 return语句用于退出函数,选择性地向调用方返回一个表达式.return在不带参数的情况下,默认返回None. None是一个特殊的值,它的数据类型是NoneType.NoneType是Python的特殊类型,它只有一个值None.它不知道任何运算也没有任何内建方法,和任何其他的数据类型比较永远返回false.你可以将None复制给任何变量,但是你不能创建其他NoneType对象.实例参考: #使用return语句在add函数

新手学习Python时常见的错误

在运行或编写一个程序时常会遇到错误异常,这时Python会给你一个错误提示类名,告诉出现了什么样的问题(python是面向对象语言,所以程序抛出的异常也是类).能很好的理解这些错误提示类名所代表的意思,可以帮助你在最快的时间内找到问题所在,从而解决程序上的问题是非常有帮助的. 搜集了一些python最重要的内建异常类名,并做了简单的介绍: AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码

新手学习python(七)第三方模块

第三方模块,是指别人写好的一些模块,要安装之后才可以使用的. 1)傻瓜式安装 A. 安装好python的前提下,打开cmd. 例如安装pymysql ,在cmd输入命令 pip install pymysql B. 没有pip命令: 1.pycharm里面点python console    2.找到python安装目录    3.然后把安装目录下的scripts目录,加入到环境变量里面即可     ps:环境变量在PATH里面加 C. Unknown or unsupported comman

新手学习python(三)字典相关操作方法

1)字典相关操作方法 infos ={'name':'张三','sex':'男','addr':'广州市','age':'20'} #查找 infos.get('name')   #获取name对应的值 infos.['sex']     #获取sex对应的值, infos.get('phone')  #取不到这个key的话,就是None infos.get('phone',110)   #如果取不到这个值,默认就是110 infos['blood_type']   #如果key不存在,则会报错

新手学习python(八)加密模块(MD5加密)

由于MD5模块在python3中被移除 在python3中使用hashlib模块进行md5操作 import hashlib m=hashlib.md5() #创建MD5对象passwd='aaa123' #待加密密码m.update(passwd.encode()) #不能直接对字符串加密,要先把字符串转成bytes类型print(m.hexdigest()) #打印加密结果#md5加密是不可逆的 ==== 加密函数 ====def my_md5(str): import hashlib ne

新手学习python(十)操作数据库redis

数据库分为两类:1.关系型数据库: MySQL,Oracle,sql server,db2,sqlite 需要sql语句 数据存在磁盘上2.非关系型数据库:mongodb, redis 没有表结构 没有sql语句 使用get('k'),set('xx') 说明:1.redis数据全部存在内存里面 2.redis本身性能是非常好的,每秒支持30w次的读写 import redisr=redis.Redis(host='xx.xx.xx.xx',password='aaaaa',db=0,port=