初识python: 自定义函数
什么是函数?
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。
函数的定义方法:
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: 自定义函数的更多相关文章
- 孤荷凌寒自学python第十七天初识Python的函数
孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...
- 17.python自定义函数
什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:
- python 自定义函数
200 ? "200px" : this.width)!important;} --> 介绍 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参 ...
- python自定义函数和推导
#之所以把这俩写一起,并不是因为这俩有什么关系,因为都太简单,没什么可说的 #自定义函数的格式,def开头,后面空格,在后面是函数名,接括号,括号里是入参参数 #!/usr/bin/python # ...
- python自定义函数和内置函数
函数 1.定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 先定义,后使用 1.2分类 系统函数 自定义函数 1.3语法: def functionname(parameter ...
- Python学习教程(learning Python)--2.3 Python自定义函数传参函数设计
Python里自定义子函数时,可以在调用时携带一些参数到子函数里去处理.具体用法结构如下: def func(arguments): statement statement etc. 定义子函数一定要 ...
- Python自定义函数的参数
在Python中自定义的函数可以有三类不同的参数 formal parameters positional arguments Keyword Arguments When a final forma ...
- Python基础篇【第2篇】: Python自定义函数
Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print ...
- python自定义函数大全
写的零碎的python脚本太多了,到一定阶段就会出现一个问题,即以前写过的脚本找不到了,现在临时要用,还得再重写一遍,这就非常难受了,代码不能复用. 还好我有一个比较好的习惯,我喜欢把python脚本 ...
- python自定义函数可以向前引用不用声明
#有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def next(): print('我在n ...
随机推荐
- 深度解析Spring Cloud Ribbon的实现源码及原理
Ribbon的核心作用就是进行请求的负载均衡,它的基本原理如下图所示.就是客户端集成Ribbon这个组件,Ribbon中会针对已经配置的服务提供者地址列表进行负载均衡的计算,得到一个目标地址之后,再发 ...
- KrakenD url匹配通配符 url_pattern wildcard
KrakenD是一个高性能Api网关, api转发的推荐做法是每个api一个配置项,也就是一个endpoint,其开发者认为api网关和纯粹的L7路由不一样(文章链接). 因此社区版并没有提供通配符 ...
- Jenkins优化
目录 一.修改 JVM 的内存配置 二.修改jenkins 主目录 一.修改 JVM 的内存配置 Jenkins 启动方式有两种方式,一种是以 Jdk Jar 方式运行,一种是将 War 包放在 To ...
- MySQL如何随机筛选25000条数据
一.SELECT * FROM sheet1 t1 ORDER BY RAND() LIMIT 10000; 二.SELECT * FROM sheet1 AS t1 JOIN (SELECT ROU ...
- SpringMVC编程:初始化项目部署后,主页404代码问题解决
SpringMVC 主页404问题 初始化项目后,Tomcat服务器显示404报错问题! 问题解决的原因是:项目依赖的jar包没有随着项目一块打包部署在Tomcat服务器上面,即缺少项目lib依赖. ...
- 复杂SQL案例:用户听课情况查询
供参考: select h.course_id, h.course_type, i.course_title, r.id res_id, r.res_title, h.user_id, u.user_ ...
- JAVA连接redis报错 :stop-writes-on-bgsave-error option
(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist o ...
- Kafka Eagle分布式模式
1.概述 最近有同学留言,Kafka Eagle的分布式模式功能怎么使用,如何部署安装?今天笔者就为大家来详细介绍一下Kafka Eagle的分布式模式功能的安装和使用. 2.内容 首先,这里我们需要 ...
- 【LeetCode】865. Smallest Subtree with all the Deepest Nodes 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- C. Success Rate
Success Rate 题目链接 题意 给你两个分数形式的数,然后有两种变化方式 上下都+1 仅下面部分+1 让你求第一个分数变化到第二个分数的最小步数. 思路 有几种特殊情况分类讨论一下. 首先我 ...