函数定义

什么是函数?

函数就是一个工具

定义函数三种形式

  • 空函数

    def 函数名():
    pass
  • 无参函数

    def 函数名():
    代码块...
  • 有参函数

    def 函数名(x,y):
    print(x,y)

函数定义的特性

函数定义过程,只检测语法,不执行代码。

函数调用

调用函数,使用函数。

def guess():
x = 20
y = 30
if x > y:
print(x)
else:
print(y) guess() # 函数调用. x

函数返回值

函数体内部代码经过一些逻辑处理得到的结果 就叫返回值

返回值(return):返回一个值(可以是所有数据类型)

返回值 可以拿来做其他事情。

def func():
name = "qinyj"
return name
name = func()
print(name) #qinyj

return的特性:

  1. return 返回一个值,如果没有return,默认返回None
  2. return 会终止函数,不运行下面的代码
  3. return 返回值可以返回多个值,用逗号隔开。
  4. return 返回多个值以元组形式接收。

函数的参数

有参函数

形参

形参就是函数在定义阶段内括号中定义的参数,,称之为形式参数,简称形参,本质就是变量名。

位置形参

从左到右依次接收位置实参的值。

def func(x,y):
print(x,y)

默认形参

在函数定义阶段,就默认被赋值。

默认参数的值通常应该是不可变数据类型。

def func(x,y=10):
print(x,y)

特点

  1. 如果没有给参数,使用默认值。
  2. 如果调用的时候传值,使用传的值。
  3. 默认形参必须放在位置形参后面。

实参

位置实参

从左到右依次依次传值给位置形参,一一对应,位置形参有多少个,位置实参也得有多少。

# 调用
func(1,2)

关键字实参

在调用函数的时候,按照key=values的形式指定参数传值,成为关键字实参。

# 调用
func(x=1,y=10)

特定

  1. 按照参数名传给参数值,函数的参数一般为0-3个。

  2. 可以打破位置的限制,为指定的形参赋值。

  3. 关键字实参必须写在位置实参的后面。

可变长参数

可变长参数指的是在调用函数的时候,传入的参数的个数可以不固定。

形参中的可变长参数 *

形参中的* 会将多余的位置实参全部接收,以元组的形式存储,然后把值赋给*后面的变量名,一般用args

可以使用解压缩的形式将值一个一个取出来。a,b,c = args

def sum_self(*args):
res = 0
for num in args:
res += num
return res res = sum_self(1,2,3,4)
print(res) # 10

实参中的可变长参数 *

实参中的* ,会将*后面的变量名的值循环去除,打散成位置实参,

def func(x,y,z,*args):
print(x,y,z,args) lt = [1,2,3]
func(1,2,3,*lt) # 1 2 3 (1, 2, 3)

Python-函数基础(1)的更多相关文章

  1. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  2. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  3. python函数基础学习

    函数的定义与调用: def 函数名(参数1,参数2): ‘’’函数注释’’’ print(‘函数体’) return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def ...

  4. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  5. Python函数基础和函数参数

    函数的定义和函数的调用 return的作用 三种参数的定义 常用的内置函数 len() 函数基础 函数的定义 def 函数名(参数): pass return 表达式 pass在这里表示什么都没有,不 ...

  6. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  7. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

  8. Python函数基础学习(定义、函数参数、递归函数)

    1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: ut ...

  9. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  10. 4.python函数基础

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

随机推荐

  1. 【转】Linux(CentOS) vps安装xfce桌面+VNC

    以前我发过一篇文章利用vnc远程连接VPS桌面,其中用到的是kde桌面,后来知道xfce总体来说比kde占得内存还小些,因为xfce轻便.简单,今天因为一些原因需要在我的vps上搭建用户桌面,所以就试 ...

  2. CodeForces 1166C A Tale of Two Lands

    题目链接:http://codeforces.com/problemset/problem/1166/C 题目大意 给定 n 个数,任选其中两个数 x,y,使得区间 [min(|x - y|, |x ...

  3. SpringAOP中的注解配置

    使用注解实现SpringAOP的功能: 例子: //表示这是被注入Spring容器中的 @Component //表示这是个切面类 @Aspect public class AnnotationHan ...

  4. 《转》python对象

    http://www.cnblogs.com/BeginMan/p/3160044.html 一.学习目录 1.pyhton对象 2.python类型 3.类型操作符与内建函数 4.类型工厂函数 5. ...

  5. LightOJ 1245 - Harmonic Number (II)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1245 题意:仿照上面那题他想求这么个公式的数.但是递归太慢啦.让你找公式咯. ...

  6. 三层(3-tier architecture)基础

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/lhc2207221755/article/details/24802053     之前看过非常多关 ...

  7. spring MVC <mvc:annotation-driven>

    研究SpringMvc 3.2的<mvc:annotation-driven>默认干了什么 如果不配置其他参数,大致相当于以下的配置文件(参考自org.springframework.we ...

  8. 2019-9-11-在-P2P-文件分享应用以文件或文件段为单位的优缺

    title author date CreateTime categories 在 P2P 文件分享应用以文件或文件段为单位的优缺 lindexi 2019-09-11 10:23:27 +0800 ...

  9. JS对象 返回/设置时间方法 get/setTime() 返回/设置时间,单位毫秒数 一小时为:60*60*1000

    返回/设置时间方法 get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数. 如果将目前日期对象的时间推迟1小时,代码如下: &l ...

  10. RabbitMQ学习第一记:用java连接RabbitMQ

    1.什么是RabbitMQ MQ(Message Queue):消息队列,是服务端设计的一个可以存储大量消息的队列,并提供客户端操作队列的方法:生产队列(向队列中添加数据).消费队列(从队列中取数据) ...