什么是函数?

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

函数的定义方法:

def test(x):
'函数定义方法'
x+=1
return x
解释:
def:定义函数关键字
test:函数名
():可定义形参
'':文档描述
x+=1:代码块或程序处理逻辑
return:结束并返回值

函数为什么要有返回值?
通过返回值接收函数的执行结果,后续的逻辑需要通过此结果执行其对应操作。

实例:给一个文件写入日志信息
import time
# 定义函数
def test1():
'函数练习:添加日志记录'
log_time = time.strftime('%Y-%m-%d %X')
with open('file_a','a') as f:
f.write(log_time+':log msg\n')
# 调用函数
test1()
函数返回值说明:
return 返回值数量=0:返回一个空值(None)
返回值数量=1:返回一个对象(object)
返回值数量>1:返回一个元组(tuples)

实例:
#函数返回类型
def test_None():
print('返回一个空值')
x=test_None()
print(x) def test_object():
print('返回一个对象')
return 0
y=test_object()
print(y) def test_tuples():
print('返回一个元组')
return 1,'hello world',['qwe','asd'],{'001':'simple'}
z=test_tuples()
print(z)

形参:定义的参数叫形参(x,y)
实参:实际传入的参数叫实参(1,2)
不指定参数的情况下:实参与形参位置一一对应

实例:
注:位置传参与关键字传参共用时,关键字参数不能写在位置参数之前
def test_sum(x,y):
'两数之和'
z = x + y
return z
t_sum=test_sum(1,2) #实参与形参位置一一对应
print(t_sum) t_sum2=test_sum(x=1,y=2) #与形参位置无关
print(t_sum2) t_sum3=test_sum(1,y=2) # 错误方式:test_sum(x=1,2) 位置传参与关键字传参共用时,关键参数不能写在位置参数之前
print(t_sum3)
默认值参数:
# 默认值参数
def test_default(x,y=2):
'默认值参数'
z = x + y
return z
print(test_default(2)) #print(tesst_default(2,2))

参数组(不定长参数):

# 参数组,接受位置参数,将多个实参存入一个元组中
# 定义格式:*变量名(一般规范为 *args)
def test_group(*args):
'参数组'
print(args)
test_group(1,2,3,4,5,6) def test_group2(x,*args):
'参数组与位置参数混用'
print(x)
print(args)
test_group2(1,2,3,4,5,6) # 接受关键字参数组,转换成字典
def test_group3(**kwargs):
'参数组键值对形式'
print(kwargs['name'])
test_group3(name='simple',age=25,sex='m') def test_group4(name,**kwargs):
'参数、参数组键值对混用'
print(name)
print(kwargs)
test_group4('simple',age=25,sex='m') #注:参数组必须放在位置参数、默认参数之后
def test_group5(name,age=25,**kwargs):
'参数、默认参数、参数组键值对混用'
print(name)
print(age)
print(kwargs)
test_group5('simple',age=3,sex='m',game='lol') def test_group6(name,age=25,*args,**kwargs):
'参数、默认参数、参数组、参数组键值对混用'
print(name)
print(age)
print(*args)
print(kwargs)
test_group5('simple',age=3,sex='m',game='lol')




初识python: 自定义函数的更多相关文章

  1. 孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...

  2. 17.python自定义函数

    什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:

  3. python 自定义函数

    200 ? "200px" : this.width)!important;} --> 介绍 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参 ...

  4. python自定义函数和推导

    #之所以把这俩写一起,并不是因为这俩有什么关系,因为都太简单,没什么可说的 #自定义函数的格式,def开头,后面空格,在后面是函数名,接括号,括号里是入参参数 #!/usr/bin/python # ...

  5. python自定义函数和内置函数

    函数 1.定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 先定义,后使用 1.2分类 系统函数 自定义函数 1.3语法: def functionname(parameter ...

  6. Python学习教程(learning Python)--2.3 Python自定义函数传参函数设计

    Python里自定义子函数时,可以在调用时携带一些参数到子函数里去处理.具体用法结构如下: def func(arguments): statement statement etc. 定义子函数一定要 ...

  7. Python自定义函数的参数

    在Python中自定义的函数可以有三类不同的参数 formal parameters positional arguments Keyword Arguments When a final forma ...

  8. Python基础篇【第2篇】: Python自定义函数

    Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print ...

  9. python自定义函数大全

    写的零碎的python脚本太多了,到一定阶段就会出现一个问题,即以前写过的脚本找不到了,现在临时要用,还得再重写一遍,这就非常难受了,代码不能复用. 还好我有一个比较好的习惯,我喜欢把python脚本 ...

  10. python自定义函数可以向前引用不用声明

    #有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def next():     print('我在n ...

随机推荐

  1. 【Fastjson】Fastjson反序列化由浅入深

    Fastjson真-简-介 fastjson是由alibaba开发并维护的一个json工具,以其特有的算法,号称最快的json库 fastjson的使用 首先先创一个简单的测试类User public ...

  2. 按照eslint的规则格式化代码

    1.下载eslint. 2.首选项->设置,然后搜索eslint,点击在setting.json中设置.设置内容如下: "editor.codeActionsOnSave": ...

  3. 项目集成seata和mybatis-plus冲突问题解决方案:(分页插件失效, 自动填充失效, 自己注入的id生成器失效 找不到mapper文件解决方案)

    项目集成seata和mybatis-plus,seata与mybatis-plus冲突问题(所有插件失效,自动填充失效,找不到mapper文件解决方案) 自动填充代码: package com.fro ...

  4. MySQL慢日志优化

    慢日志的性能问题 造成 I/O 和 CPU 资源消耗:慢日志通常会扫描大量非目的的数据,自然就会造成 I/O 和 CPU 的资源消耗,影响到其他业务的正常使用,有可能因为单个慢 SQL 就能拖慢整个数 ...

  5. pf4j及pf4j-spring

    什么是PF4J 一个插件框架,用于实现插件的动态加载,支持的插件格式(zip.jar). 核心组件 Plugin:是所有插件类型的基类.每个插件都被加载到一个单独的类加载器中以避免冲突. Plugin ...

  6. [BUUCTF]PWN——ciscn_2019_es_7[详解]

    ciscn_2019_es_7 附件 步骤: 例行检查,64位程序,开启了nx保护 本地试运行一下看看大概的情况 64位ida载入,关键函数很简单,两个系统调用,buf存在溢出 看到系统调用和溢出,想 ...

  7. [BUUCTF]REVERSE——[GUET-CTF2019]re

    [GUET-CTF2019]re 附件 步骤: 查壳儿,upx壳,64位程序 upx脱壳儿,然后扔进64位ida,通过检索字符串,找到有关flag的信息定位到关键函数 让我们输入flag,然后满足su ...

  8. 超链接 a 标签点击时,弹出提示框,可以按照如下来写

    onclick="return confirm('确定删除该条记录?')" 加上这条记录后,就可以在访问href属性指向的链接时,有弹出提示

  9. 数据改变认知——不知怎么选,用RFM模型看舔狗质量!

    假设我长得很漂亮,拥有众多追求者,但是初出闺房的我对这世界上的男人毫无认知,那么该如何选择呢?这真是一个问题! 妈妈说,愿意为我花钱的男人未必爱我,但不愿意为我花钱的男人必定不爱我,而后传授了一套RF ...

  10. git提交报错:Error merging: refusing to merge unrelated histories

    执行: git pull origin master --allow-unrelated-histories 然后再重新push即可