什么是函数?

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

函数的定义方法:

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. Spring Boot with H2 Database

    Learn to configure H2 database with Spring boot to create and use an in-memory database in runtime, ...

  2. Java中的循环结构(二)

    循环结构(二) 学习本章有道的单词: rate:速度,比率 young:年轻的,年少 schedule:时间表,调度 neggtive:消极的;否定 customer:顾客,观众 birthday:生 ...

  3. 优化器统计跟踪(SYS.EXP_HEAD$ SYS.EXP_OBJ$ SYS.EXP_STAT$不)导致表空间 SYSAUX不断增长

    资料来自support文档 ID 2354960.1 环境: aws rds 19c(亚马逊云oracle 数据库) 背景: 在一次查看数据库表段的占用空间大小的时候,无意间发现其中EXP_开头的表占 ...

  4. 新手指南:顶象验证码如何接入微信小程序?

    自2017年小程序发布以来,经过4年的快速发展,小程序已然成为企业互联网布局不可或缺的一环.无论是互联网企业还是拥抱互联网的传统企业,无论是服务导向型企业还是产品导向型企业,小程序都为用户提供了一种轻 ...

  5. 【嵌入式AI】全志 XR806 OpenHarmony 鸿蒙系统固件烧录

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本教程详细记录了 ...

  6. JAVA获取当前日期指定天数之后的日期

    /** * 获取day天之后的日期 * @param day 天数 * @return */ public static String getDate(int day){ Calendar calen ...

  7. Qt5设置lineEdit正则表达式

    说明 本文演示Qt 版本: qt5.14 一个例子 下面的代码中演示 输入框只能输入 冒号.A-F.a-f,数字0~9,最长输入64个字符 /// 设置验证 auto le_set_check = [ ...

  8. 【LeetCode】847. Shortest Path Visiting All Nodes 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/shortest ...

  9. Code(hdu5212)

    Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  10. Ubuntu mininet+Ryu环境安装

    我们使用下载Ryu源代码进行那个安装 Ryu官方文档:http://ryu.readthedocs.io/en/latest/ Ryu电子书:http://osrg.github.io/ryu/res ...