python 之函数
一 函数的定义:
对功能和动作的封装和定义.
二 函数的格式:
def 函数名(形参列表): 函数名就是变量名:规则就是变量的规则
函数体(return)
ret = 函数名(实参列表)
三 函数的返回值:
函数结束执行后给调用方的结果
return,只要执行到return 函数的本次调用就会被停止
1.如果函数不写return, 没有返回值。 接收到的是None
2.写了return。 return后面什么都不写或者return后面的是None. 返回None
3.return 一个值。 返回一个结果
4.return 值,值,值 返回多个值。结果是元组
列子: 下面里面可以有return,也可没有,有的话只能写一个return,
def learn ():
print("学习物理")
print("学习化学")
# return "成绩50" #打印score 此时不会有 学习生物和学习语文
print("学习生物")
print("学习语文")
# return "成绩90分","成绩91","成绩95" #此时返回的score为一个元祖("成绩90分","成绩91","成绩95")
return #,可以不跟值,此时返回为None
score = learn()
# learn()
print(score)
四函数的参数:
参数: 函数在调用的时候给函数传递的信息 形参: 在函数声明的位置的变量
实参: 在函数调用的时候给出的具体的值 传参: 在函数调用的过程中把实参赋值给形参的过程.
实参:
1. 位置参数. 按照位置给形参传递信息
2. 关键字参数. 按照形参的名字给参数传递信息
3. 混合参数. 先位置后关键字
形参:
1. 位置参数
2. 默认值参数, 必须写在位置参数后面
3. 动态参数
例如:
def yue(tools): # 在函数声明的位置。 给出来的参数叫形参。 形式上的一个参数. 用一个变量来表示
print("拿出手机")
print("打开%s" % tools)
print("找一找心怡的对方.")
print("出来吃吃饭")
print("唱唱歌")
print("跳跳广场舞")
# 在函数调用的时候。把实参的值赋值给形参的过程叫传参
yue("微信") # 在函数调用的地方给出的具体的值。 参数叫实参. 实际参数
yue("陌陌")
yue("探探")
1实参的列子:
1.位置参数: #按照位置给形参赋值
def food(good_food,nogood_food,drink):
print("我要吃",good_food,nogood_food,drink)
food("木须肉盖饭","粥","可口可乐") #我要吃 木须肉盖饭 粥 可口可乐
2.关键字参数: 按照形参的名字给参数赋值
def food(good_food,nogood_food,drink):
print("我要吃",good_food,nogood_food,drink)
food(good_food="木须肉盖饭",drink="可口可乐",nogood_food="粥")#我要吃 木须肉盖饭 粥 可口可乐
3.混合参数:#位置参数必须放在前面,关键字参数放在后面
def food(good_food,nogood_food,drink):
print("我要吃",good_food,nogood_food,drink)
food(drink="木须肉盖饭","可口可乐","粥") #错误,drink 必须放在后面
2形参的列子:
1.位置参数: 按照位置声明参数,和实参一样
def information(name,age,sex):
print(name,age,sex)
information("王以太","29","女")
information("张甲乙","1","女")
information("张旭","29","男")
information("妈妈","43","女")
2.默认值参数: 给参数传递值的时候, 不给值, 默认值起作用. 保证你至少有个值能用.给值得话,默认值不起作用.顺序: 位置参数必须放在前面。 默认值参数必须放在后面.
def information(name,age,sex="女"):
print(name,age,sex)
information("王以太","29",)
information("张甲乙","1",)
information("张旭","29","男")
information("妈妈","43",) 此时的结果和1位置参数的结果一致,使用于大多情况一致的输入,特殊的单独处理即可.
3.动态参数: 动态参数,用于参数不确定时用.
格式: def fun (*args)
fun(args)
列子1.假如参数不确定时,如下的列子,每人饭量不一样,吃的种类不一样,此时用到动态传参.
def fun(*food): #*表示的是不定参数,可以传递任意个信息,参数名称还是food,且接收到的信息为元祖()
print("我要吃",food)
fun("米饭") #*表示位置参数的动态传参 结果为我要吃 ('米饭',)
fun("一锅米饭","一箱辣条","一桶方便面","可口可乐")#我要吃 ('一锅米饭', '一箱辣条', '一桶方便面', '可口可乐')
fun ("一碗米饭","辣条","雪碧") #结果为我要吃 ('一碗米饭', '辣条', '雪碧')
列子2.动态参数必须在位置参数后.
def fun (*food,a,b):
print("我要吃",food,a,b)
fun("苹果","梨子","香蕉") #此时程序会报错,全被food接收了,a和b永远接收不到参数.
def fun (a,b,*food):
print("我要吃",a,b,food)
fun("苹果","梨子","香蕉","橘子") #我要吃 苹果 梨子 ('香蕉', '橘子')

python 之函数的更多相关文章
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
- python strip()函数 介绍
python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...
- python split()函数
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...
- Python数学函数
1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- Python之函数与变量
本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- 【C++实现python字符串函数库】一:分割函数:split、rsplit
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...
随机推荐
- 【Java集合】LinkedList详解前篇
[Java集合]LinkedList详解前篇 一.背景 最近在看一本<Redis深度历险>的书籍,书中第二节讲了Redis的5种数据结构,其中看到redis的list结构时,作者提到red ...
- java线程安全问题原理性分析
1.什么是线程安全问题? 从某个线程开始访问到访问结束的整个过程,如果有一个访问对象被其他线程修改,那么对于当前线程而言就发生了线程安全问题:如果在整个访问过程中,无一对象被其他线程修改,就是线程安全 ...
- alpinelinux
https://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos https://nixos.org/nix/manual/#ch-installing-b ...
- Selenium2学习(十三)-- JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
- 关于method not exist:think\db\Query->render错误解决方法
{volist name="Teachers" id="Teachers" key="key"} <tr> <td> ...
- 3.GlusterFS 企业分布式存储的搭建
3.1 硬件要求 一般选择 2U 机型,磁盘 SATA 盘 4TB,如果 IO 要求比较高,可以采购 SSD 固态硬盘.为了充分保证系统的稳定性和性能,要求所有 glusterfs 服务器硬件配置尽量 ...
- 如何清理Windows缩略图缓存?
从Win95的IE4开始就有缩略图缓存了,缩略图缓存作用主要是用于存储Windows资源管理器缩略图图像文件.这加快了图像的显示速度,因为每次用户查看文件夹时都不需要重新生成这些较小的图像.缩略图缓存 ...
- 使用Gardener在Google Cloud Platform上创建Kubernetes集群
Gardener是一个开源项目,github地址: https://github.com/gardener/gardener/ 使用Gardener,我们可以在几分钟之内在GCP, AWS, Azur ...
- BZOJ4520:[CQOI2016]K远点对(K-D Tree)
Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对. Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标 ...
- Uva 10534 波浪子序列
题目链接:https://vjudge.net/contest/160916#problem/C 题意: 求一个奇数长的子序列,前一半严格递增,后一半严格递减:O(nlogn) 分析: 再次复习一下L ...