什么是函数?

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

函数的定义方法:

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 AOP】@Pointcut的12种用法

    @Pointcut用来标注在方法上来定义切入点. 使用格式:@ 注解(value="表达标签 (表达式格式)").如:@Pointcut("execution(* com ...

  2. 阿里云esc 安装 mysql5.7.27

    1. 下载:  wget  http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm 2. 安装: (1) yum -y in ...

  3. RestTemplate进行访问分页PageInfo

    废话少说,给你们看代码: //provide的controller @ResponseBody @RequestMapping(value = "details",method = ...

  4. Mybatis读取数据实战

    1.Mybatis基础配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configu ...

  5. 【JavaWeb】【JSP】【Bean】JavaBean基础使用方法与操作步骤

    JavaBean基础使用方法与操作步骤 JavaWeb jsp Bean 项目结构 JavaBean的概念 JavaBean是可复用的.平台独立的软件组件 JavaBean既可以是简单的GUI要素,如 ...

  6. [BUUCTF]REVERSE——[GWCTF 2019]xxor

    [GWCTF 2019]xxor 附件 步骤: 无壳,64位ida载入 程序很简单,首先让我们输入一个字符串,然后进行中间部分的操作,最后需要满足44行的if判断,看一下sub_400770函数 得到 ...

  7. int i=i++;和i=++i;和i++

    1.int i=i++; 2.i=++i; 3.i++

  8. LuoguP7426 [THUPC2017] 体育成绩统计 题解

    Update \(\texttt{2021.3.11}\) 修复了一个笔误. Content 太长了,请直接跳转回题面查看. 数据范围:\(n\leqslant 10^4\),\(0\leqslant ...

  9. CentOS7.6 鲜为人知的/etc/resolv.conf 之 /etc/resolv.conf.save (保持/etc/resolv.conf不被修改:/etc/dhcp/dhclient-enter-hooks 无效之/etc/resolv.conf被清空的特殊案例)

    目的: 用户可以自定义/etc/resolv.conf内容,且不被系统修改. 常规方法1: /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件中增加PEE ...

  10. WebSocket协议理解-数据包格式解析

    WebSocket 的诞生 做客户端开发时,接触最多的应用层网络协议,就是 HTTP 协议,而今天介绍的 WebSocket,下层和 HTTP 一样也是基于 TCP 协议,这是一种轻量级网络通信协议, ...