day9

前方高能---初识函数

一.  什么是函数

  函数:对代码块和功能的封装和定义.

二. 函数的定义,函数名,函数体,以及函数的调用

  def 函数名():

    函数体

  函数体:就是函数被执行之后要执行的代码.

三, 函数的返回

  执行完函数之后,我们可以使用return来返回结果.

函数中return的使用:

  1.函数中遇到return,此函数结束,不在继续执行.

def yue()print('打开手机')print('打开微博')print('进入阚清子和纪凌尘微博')returnprint('去留言,你喜欢大海,我爱过你.')     # 这句话不会被执行.
yue()

  2.给函数的调用者一个访问结果.

def yue()print('拉拉')print('啥呀')return '哒哒哒'
girl = yue()
print(girl)    # 哒哒哒

  函数的返回值可以有多个结果

def yue():print('拉拉')print('啥呀')print('大大')return '脉动','巴啦啦'
girl = yue()
print(type(girl))    # tuple

  总结一下: 1.遇到return,此函数结束,函数后面的东西将不会再执行

       2. return返回值.

  关于返回值:

      如果return什么都不写,或者干脆不写return,那么返回的就是None

      如果return后面写了一个值,则调用者可以接收一个结果.

      如果return后面写了多个结果,则调用者可以接收一个tuple,调用者可以直接解构成多个变量.

四. 函数的参数

  参数,函数在调用的时候指定具体的一个变量的值,就是参数.

    语法:

def  函数名(参数列表):函数体

  关于参数:

  1, 形参

  写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx

  2, 实参

  在函数调用的时候给函数传递的值,叫实参,实际执行的时候给函数传递的信息,表示给函数xxx

  3, 传参

  给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

def yue(chat):    # chat 形参print('笨蛋')print('哈哈哈')print('想喝',chat)print('cheer up')
yue('脉动')    # 实参

len('字符串')    # '字符串'在这里就是实参
print('麻花藤')    # '麻花藤'就是实参

 参数的分类:

  1,位置参数

def yue(chat,address,age):    # 形参print('拿出手机')print('打开'+chat)print('找个'+address+'附近漂亮的'+str(age)+'岁妹子')print('哒哒哒')
yue('微信','北京',18)    # 实参

  分析: 在访问yue()的时候,我们按照位置的顺序分别把'微信','北京',18,赋值给chat.address,age.在传参过程中,系统会默认按照位置把实参赋值到形参.

练习: 编写编程,给函数传递两个参数a,b.比较啊,a,b的大小,返回a,b中最大的那个数.

答案:

def my_max(a,b):if a > b:return aelse:return b
#有点麻烦,我们在这里学一个三元运算符.
def my_max(a,b):c = a if a > b else b    # 当a>b成立返回a,否则返回breturn c

  2, 关键词参数

def  yue(chat,address,age):print('哈哈哈')print('打开'+chat)print('找个'+address+'附近漂亮的'+str(age)+'岁妹子')print('嘿嘿嘿')
yue(chat='微信',age=18,address='北京')    # 关键字参数

  3,可以把上面两种参数混合着使用,也就是说在调用函数的时候可以给出位置参数,也可以指定关键词参数.

# 函数参数
yue('微信',age=18,addreass='上海')    #正确.第一个位置赋值给chat,后面的参数开始指定关键字.

yue(age=18,'微信',addreass='广州')    # 错误,最开始使用了关键字参数,那么后面的微信的位置就串了,容易出现混乱.

  注意: 在使用混合参数的时候,关键字参数必须在位置参数后面.

综上: 在实参的角度来看,分为三种.

  1.位置参数

  2,关键字参数

  3, 混合参数,位置参数必须在关键字参数前面.

 

  在形参角度看,一共分为三种,

  位置参数,按照位置来赋值,到目前为止,我们编写的函数都是这种.

def  yue(chat,address,age):print('拿出手机')print('打开'+chat)print('找个'+address+'附近漂亮的'+str(age)+'岁妹子')print('呃呃呃')

  默认值参数, 在函数声明的时候,就可以给出函数参数的默认值,在调用的时候可以给出具体的值,也可以不给值,使用默认值.

def stu_info(name,age,sex=''):print('录入学生信息')print(name,age,sex)print('录入完毕')
stu_info('张强强',18)

 注意: 必须先声明位置参数,才能声明默认参数.

综上: 在形参的角度来看.

  1.位置参数

  2.默认值参数(大多数传进来的参数都是一样的,一般用默认参数.)

转载于:https://www.cnblogs.com/marry215464/p/9443473.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 数据库索引

数据库索引在数据库中、索引使数据库程序无须对整个表进行全表扫描就可以在其中找到所需的数据;数据库中的索引是某个表中一列或者若干列值的集合、以及物理标识这些值的数据页的逻辑指针清单;MySQL 索引的增删查SQL 语句效率的分析索引的作用&#xff1…

ES6-17 class与对象

class 模拟类的方式语法糖(把以前的写法换了一个方式) 类内部的方法是不可枚举的 ES5用Object.assign拓展的原型属性是可枚举的 function Point(x, y) {this.x x;this.y y; } // 这样定义的原型上方法eat\drink是可枚举的 Point.prototype Object…

8.8 正睿暑期集训营 Day5

目录 2018.8.8 正睿暑期集训营 Day5总结A 友谊巨轮(线段树 动态开点)B 璀璨光滑C 构解巨树考试代码ABC2018.8.8 正睿暑期集训营 Day5时间:3.5h(实际)期望得分:602020实际得分:202020 比赛链接这里也有一些 总结 线段树!&#xff0…

算法 --- 二叉树的最大深度

思路: 1.二叉树的深度,等于Max(左子树最大深度,右子树最大深度) 1 2.节点不存在时,此时的深度为0 3.当节点存在,左右子树不存在时(此时为叶子节点) 返回1 /*** Definition for a binary tree node.* function TreeNode(val) {* this.val val;* this.left this.righ…

ES6-18/19 异步的开端-promise

ES6-18异步的开端-promise ES6-19 promise的使用方法和自定义promisify try catch只能捕获同步异常,不能捕获异步的 等待所有异步都执行完,打印结果,比较笨拙的方法,在每个异步操作加arr.length 3 && show(arr) Promis…

leetcode35 C++ 4ms 搜索插入位置

class Solution { public:int searchInsert(vector<int>& nums, int target) {for(int i 0;i<nums.size();i){if(nums[i] > target){return i;}}return nums.size()-1;} }; 转载于:https://www.cnblogs.com/theodoric008/p/9449049.html

OpenCV-Python 中文教程(搬运)目录

OpenCV-Python 中文教程 OpenCV官方教程中文版&#xff08;For Python&#xff09; OpenCV2-Python-Tutorials 段力辉 译 说明&#xff1a;搬运自linux公社pdf文件&#xff0c;粗略搬运&#xff0c;仅作个人笔记参考&#xff0c;有时间再美化 部分文件参考&#xff1a; https:/…

算法 --- 平衡二叉树

解题思路: 1.首先写一个返回深度的函数d 2.写一个遍历函数t 3.在t中首先判断,r是否为空(为空则此时就是平衡二叉树,返回true),然后判断是否为叶子节点(r.left null && r.right null)若是则返回true,最后判断,其左子树的深度与右子树的深度之差是否大于1.若是则返回fal…

【co】ES6-20/21 iterator与generator

ES6-20 iterator与generator ES6-21 async与await、ES6的模块化 try catch不能捕获异步异常 try catch是同步代码 try {setTimeout(() > {console.log(a)}) } catch (e) {console.log(e) }iterator 内部迭代器&#xff1a;系统定义好的迭代器接口&#xff08;如数组Symbol…

嵌入式系统UBOOT

一个完整的嵌入式linux系统包含4部分内容&#xff1a;Bootloader、Parameters、Kernel、Root File System。3、4、5、6部分详细介绍了这4部分的内容&#xff0c;这是Linux底层软件开发人员应该掌握的。通过学习这些章节&#xff0c;您可以详细了解到如何在一个裸板上裁减、移植…

驱动芯片

一 LED驱动芯片&#xff1a; 1.1 TM1640:16位数码管驱动芯片&#xff0c;2线制控制&#xff08;CLK/DIN&#xff09;,SCLK低电平时DIN输入&#xff0c;而SCLK高电平时保持DIN保持不变&#xff1b;开始传输&#xff1a;SCLKH时DIN由高变低&#xff0c;停止传输SCLKH时DIN由由低变…

jquery --- 控制元素的隐藏/显示

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <body> <div id"panel"><h5 class"head">什么是jquery?</h5><div class"content" style"display:non…

confusion_matrix(混淆矩阵)

作者&#xff1a;十岁的小男孩 凡心所向&#xff0c;素履可往 目录 监督学习—混淆矩阵 是什么&#xff1f;有什么用&#xff1f;怎么用&#xff1f; 非监督学习—匹配矩阵 混淆矩阵 矩阵每一列代表预测值&#xff0c;每一行代表的是实际的类别。这个名字来源于它可以非常容…

Python 21 Django 实用小案例1

实用案例 验证码与验证 KindEditor 组合搜索的实现 单例模式 beautifulsoup4 验证码与验证 需要安装Pillow模块 pip stall pillow1、首先需要借助pillow模块用来画一个验证码图形&#xff0c;这里单独封装了一个py文件&#xff0c;调用一个方法就好了 1 #!/user/bin/env python…

jquery --- 事件处理函数的event对象的几个属性(方法)说明

1.event.type: 事件的类型 $(a).click(function(event) {alert(event.type);return false; // 阻止链接跳转 }); // click2.event.preventDefault(): 阻止默认事件 $("#sub").bind("click", function(event) {var username $("#username").va…

数据恢复软件

链接&#xff1a;https://pan.baidu.com/s/1n6x5vhW-3SY8MAvvnqVtog 密码&#xff1a;thh0转载于:https://www.cnblogs.com/huanu/p/9452039.html

VMware

1.VMware软件安装&#xff1a; https://jingyan.baidu.com/article/9f7e7ec09da5906f281554d6.html 2&#xff0c;镜像文件下载地址&#xff1a;http://www.cnbeta.com/articles/tech/566773.htm 有图形界面。 或是在官网&#xff1a;https://wiki.centos.org/Download 2.cento…

jquery --- 全选、全不选、反选、提交

注意:jquery 提供的$(’#id’).attr(‘checked’,true)方法,在某些情况下会失效… 因此,使用js原生的 .checked true方法 控制 // html <form>你爱好的运动是? <br/><input type"checkbox" name"items" value"足球" /> 足球…

【重要】ES6-23 JavaScript模块化

前端js模块化的演变发展 模块化解决的问题 传统模块化、插件化 CommonJS AMD/CMD ES6模块化 ES6以前 没有js引擎 一开始js写在html的script标签里js内容增多&#xff0c;抽取出index.js文件&#xff0c;外部引入js再增加&#xff0c;index.html对应index.js index2.html对应ind…

Quartz.Net定时任务EF+MVC版的web服务

之前项目采用JAVA 的 Quartz 进行定时服调度务处理程序&#xff0c;目前在.NET下面使用依然可以完成相同的工作任务&#xff0c;其实什么语言不重要&#xff0c;关键是我们要学会利用语言实现价值。它是一个简单的执行任务计划的组件&#xff0c;基本包括这三部分&#xff1a;J…