-
立即执行函数详解及运用
2020-03-14 19:58:46作用:造出一个函数作用域,防止污染全局变量,它既不会提升,也不会污染全局对象,尽量的把功能封装在函数中 首先得知道, 只有表达式才能被执行符号执行 被执行符号执行的表达式他的名字会被自动忽略 当函数成为一...立即执行函数
定义:此类函数没有声明,在一次执行过后即释放。适合做初始化工作。
作用:造出一个函数作用域,防止污染全局变量,它既不会提升,也不会污染全局对象,尽量的把功能封装在函数中
首先得知道,- 只有表达式才能被执行符号执行
- 被执行符号执行的表达式他的名字会被自动忽略
当函数成为一个表达式时,它既不会提升,也不会污染全局对象。将函数变为一个函数表达式的方式之一,将函数用小括号括起来。
然而,这样一来,函数无法通过名称调用。如果书写一个函数表达式,然后将立即调用,该函数称之为立即执行函数 IIFE(Imdiately Invoked Function Expression)。
由于大部分情况下,函数表达式的函数名没有实际意义,因此,可以省略函数名。没有名字的函数,称之为匿名函数//w3c建议写法: (function () { var a = 1, b = 2, c = 3; console.log(a, b, c); }()); //2. (function (){ var a = 1, b = 2, c = 3; console.log(a, b, c); })();
上面说到了只有表达式才能被执行符号执行负责就会报错,但是有这个特殊情况
function test(a, b, c,d) { console.log(a + b + C + d) ; }(1,2,3,4);
这里他不会报错,但也不会执行…他会分开执行
function test(a, b, c,d) { console.log(a + b + C + d) ; } (1,2,3,4);
tip:>(免费获取最新完整前端课程关注vx公众号:前端拓路者coder,回复:资料
如果这个文章对你有用的话,欢迎点赞转发关注,让更多的小伙伴看到呀,毕竟分享是一个程序员最基本的美德!!!
如果有不对的请大佬指教) -
pythontk界面显示函数中的变量值_Python 100天从新手到大师 | Day 6 函数和模块使用...
2020-12-30 22:38:00函数的作用如下面有一个问题,计算三个三角形的面积。如果只运用之前所学的知识,我们需要复制粘贴三遍之前我们写的海伦公式代码:而函数的出现可以使我们将这类功能封进函数里,每当我们想要调用此功能时,我们只...本文以GitHub上为素材,规划为约100天的练习,每次的学习和总结均发在这里。有错误的地方还请朋友们指正。
函数的作用
如下面有一个问题,计算三个三角形的面积。如果只运用之前所学的知识,我们需要复制粘贴三遍之前我们写的海伦公式代码:
而函数的出现可以使我们将这类功能封进函数里,每当我们想要调用此功能时,我们只需要调用该函数即可。例如:
定义函数
参照上面的例子,我们使用关键词def来构建函数,后面的括号内可以放入传进函数内的参数,python的函数定义和数学中的函数定义类似,传入函数的参数可以理解为自变量,经过函数变换后我们可以使用return返回需要的结果,可以理解为函数中的因变量。
函数的参数
函数的参数有多种写法,除将变量名写进括号内外,我们也可以采用默认值,即预先规定好参数的值,例如我们写一个扔骰子并求和的函数,默认函数内有两个筛子:
这样子是默认两个骰子扔出并求和,如果想要3个筛子求和,就直接输入Throw_the_dice(3)即可。
但在我们利用函数解决问题的过程中,可能我们并不知道函数具体要传入几个参数(例如求和问题中我们可能事先不知道是几个数求和)。我们可以使用可变参数。
下面利用求和函数来演示
*args 可以承载多个数据传入函数中,例如:
用模块管理函数
有时候我们在和别人共同开发时,会遇到函数名冲突的情况,例如:
那么最后结果只会打印第二个函数的结果,因为第一个函数已经被覆盖住。如果想两个函数都被打印出来,我们可以采用模块管理函数。
还是用两个foo函数举例。
新建一个python文件命名为module2.py
再新建一个python文件名为module3.py
如果我们想分别使用这两个函数,可以引用模块:
这样子两个函数都可以打印但当这样子引用的时候:
则打印结果出来的都是第二个函数的结果,因为第一个函数也被覆盖了。
在模块中我们还会遇到别的代码,例如:
如果引用这个模块使用foo函数,那么module3内的其余执行代码也会一并执行,输出两行文字。
为了避免这种情况,我们可以这样写
这样子只有在直接执行文件时才可以运行全部代码,而导入模块时他的名字时module3而不是main
练习部分
实现计算最大公约数和最小公倍数
代码如下:
官方代码如下:
判断一个数是不是回文数
Tips:回文数即从前往后和往后往前看时一样的
官方代码如下:
判断一个数是不是素数
官方代码如下:
判断输入的正整数是不是回文素数
官方如下:
在这里我们看到,如果我们将两个函数组合起来可以解决更复杂的问题,这就是我们构建函数的意义。
变量作用域
最后我们讨论变量作用域的问题。参考一下代码:
最终打印输出的a的值是多少呢?是100。因为在函数内a就寻找到100的取值,就不需要再去全局寻找变量值了。
变量作用域分为4种,分别为全局变量、嵌套变量、局部变量和内置变量。全局变量意思为跳脱函数外对于全局都有影响的变量,由于函数内部也可以嵌套函数,则第一层函数内、第二层函数外的变量即为嵌套变量,函数内的是局部变量,因为该变量只影响局部。内置变量即def、if、else等这些关键词。
下面用一段代码统一演示:
再回到最开始的例子,那么如何改变a的值,使得打印的a也为200呢?我们可以使用下面的方法:
通过global a来指示函数内a的值置于全局,即使全局没有该变量,在后面仍可以使用这个变量。
在我们正常编程当中,应当避免使用过多的全局变量,因为全局变量的生命周期长、影响过于广泛。
-
SQL语句灵活运用
2019-06-25 09:39:36一、运用SQL语句查询一段时期内的数据 方法1: DATEDIFF函数 语法: ...department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写 //查...一、运用SQL语句查询一段时期内的数据
方法1:
DATEDIFF函数
语法:DATEDIFF(department, startdate, enddate)
1
DATEDIFF函数,主要作用于返回两个日期差的一个函数
department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写//查询当天的数据
select sum(balance) from student_Info where DATEDIFF(dd, date, date)=0//查询近7天的数据
select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)<=7//查询近30天的数据
select sum(addmoney) from ReCharge_Info where DATEDIFF(dd, date, date)<=30//查询昨天的数据
select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)=1//查询季度数据
select sum(addmoney) from ReCharge_Info where DATEDIFF(qq, date, date)=0//查询一年的数据
select sum(addmoney) from ReCharge_Info where DATEDIFF(yy, date, date)=0
方法2:
使用between
between表示两者之间,查询结果更灵活,范围更广泛
语法:字段名 between startdate and enddate
代码展示//查询student_info表中balance列在一段时间范围内的总和
select sum(balance) from student_info where status=1 and ispay='未结账' and date between @date1 and @date2
//sum:sql语句中求和函数,括号内为要求和的列。date为表中的日期列,@date1,@date2为U层给的具体日期,也可称为实参
二、运用SQL语句查询最新数据
方法1
查询最新日期,可查出最新最近生成的数据select * from orderlist_info where cardid=@cardid and ispay='未付款' and date=(select max(date)from orderlist_info
方法二
查询最新时间的数据,用于数据生成日期相同,时间不同的情况select * from orderlist_info where cardid=@cardid and ispay='未付款' and time=(select max(time)from orderlist_info
方法三
运用order by 排序,倒序查询,查询结果是最新最近的数据select top 1 * from OrderList_info where cardid=123 and ispay='未付款' order by id desc
三、SQL语句的计算类查询总数:select count from 表名
求和:select sum(列名) from 表名
平均:select avg(列名) from 表名
最大:select max(列名) from 表名
最小:select min(列名) from 表名
四、随机查询数据库中数据,随机生成随机数
应用背景:查看客户的反馈意见与留言。select top 1 * ,NEWID() as random from Ideas_Info where status='未处理' order by random
-
中文版Excel.2007公式与函数应用宝典 1/2
2012-04-06 18:29:44享有“电子表格先生”美誉的国际知名作者John Walkenbach在这种常用的公式和函数,并给出大量的实例帮读者理解这些公式和函数的运用及技巧。能过学习本书,读者可以掌握Excel的精华,制作出精美实用的电子表格,成为... -
中文版Excel.2007公式与函数应用宝典 2/2
2012-04-06 18:37:14享有“电子表格先生”美誉的国际知名作者John Walkenbach在这种常用的公式和函数,并给出大量的实例帮读者理解这些公式和函数的运用及技巧。能过学习本书,读者可以掌握Excel的精华,制作出精美实用的电子表格,成为... -
C#机房重构随笔记之SQL语句灵活运用
2019-06-06 18:00:18一、运用SQL语句查询一段时期内的数据 方法1: DATEDIFF函数 ...department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写 //查询当天的数据 ...一、运用SQL语句查询一段时期内的数据
方法1:
DATEDIFF函数
语法:DATEDIFF(department, startdate, enddate)
DATEDIFF函数,主要作用于返回两个日期差的一个函数
department:一个参数,在SQL语句中位于DATEDIFF括号里的第一个参数位置,SQL语句中的dd,wk为department的缩写//查询当天的数据 select sum(balance) from student_Info where DATEDIFF(dd, date, date)=0 //查询24小时内的数据 select * from T_ChargeInfo where ischeck='未结账' and DateDiff(hh, time, getDate()) <= 24 //查询近7天的数据 select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)<=7 //查询近30天的数据 select sum(addmoney) from ReCharge_Info where DATEDIFF(dd, date, date)<=30 //查询昨天的数据 select sum(addmoney) from ReCharge_Info where DATEDIFF(wk, date, date)=1 //查询季度数据 select sum(addmoney) from ReCharge_Info where DATEDIFF(qq, date, date)=0 //查询一年的数据 select sum(addmoney) from ReCharge_Info where DATEDIFF(yy, date, date)=0
方法2:
使用between
between表示两者之间,查询结果更灵活,范围更广泛
语法:字段名 between startdate and enddate
代码展示
//查询student_info表中balance列在一段时间范围内的总和 select sum(balance) from student_info where status=1 and ispay='未结账' and date between @date1 and @date2 //sum:sql语句中求和函数,括号内为要求和的列。date为表中的日期列,@date1,@date2为U层给的具体日期,也可称为实参
二、运用SQL语句查询最新数据
方法1
查询最新日期,可查出最新最近生成的数据select * from orderlist_info where cardid=@cardid and ispay='未付款' and date=(select max(date)from orderlist_info
方法二
查询最新时间的数据,用于数据生成日期相同,时间不同的情况select * from orderlist_info where cardid=@cardid and ispay='未付款' and time=(select max(time)from orderlist_info
方法三
运用order by 排序,倒序查询,查询结果是最新最近的数据select top 1 * from OrderList_info where cardid=123 and ispay='未付款' order by id desc
三、SQL语句的计算类查询
总数:select count from 表名 求和:select sum(列名) from 表名 平均:select avg(列名) from 表名 最大:select max(列名) from 表名 最小:select min(列名) from 表名
四、随机查询数据库中数据,随机生成随机数
应用背景:查看客户的反馈意见与留言。select top 1 * ,NEWID() as random from Ideas_Info where status='未处理' order by random
当点击下一条的时候,随机生成未处理的用户投诉反馈,效果图
随笔记!希望对您能有所帮助,欢迎评论区留言!
-
IDL帮助(中文).doc
2011-03-14 00:21:36过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号和函数的调用 190 使用程序控制语句 191 IDL中表达式的真和假 191 ... -
String.format()的简单用法介绍
2021-02-18 12:51:13作用效果有点像C语言中的printf()函数。 常用转换符: ①通用浮点数: 比%f,%a长度更短的一种格式输出,显示6位有效数字,而且会进行四舍五入。 ②散列码: 不必用冗长的线性搜索技术来查找一个键,而是用一个 -
excel的使用
2012-11-25 17:06:01首先打开“工具”菜单,单击“宏”命令中的“Visual Basic编辑器”,进入Visual Basic编辑环境,在“工程-VBAobject”栏中的当前表上单击鼠标右键,选择“插入”-“模块”,在右边栏创建下面的函数rrr,代码如下: ... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:181.11 extern在函数声明中是什么意思? 6 1.12 关键字auto到底有什么用途? 7 类型定义(typedef) 7 1.13 对于用户定义类型,typedef 和#define有什么区别? 7 1.14 我似乎不能成功定义一个链表。我试过... -
你必须知道的495个C语言问题.pdf
2013-01-20 14:30:541.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *... -
[你必须知道的495个C语言问题]人民邮电出版社.扫描版.pdf
2011-10-01 21:39:521.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef 和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedef struct{char *... -
C语言入门经典(第4版)--源代码及课后练习答案
2013-02-02 17:18:559.2.2 在函数之间共享变量 336 9.3 调用自己的函数:递归 338 9.4 变元个数可变的函数 341 9.4.1 复制va_list 344 9.4.2 长度可变的变元列表的基本规则 344 9.5 main()函数 345 9.6 结束程序 346 9.7 函数库... -
C语言入门经典(第4版)--详细书签版
2013-02-02 17:16:509.2.2 在函数之间共享变量 336 9.3 调用自己的函数:递归 338 9.4 变元个数可变的函数 341 9.4.1 复制va_list 344 9.4.2 长度可变的变元列表的基本规则 344 9.5 main()函数 345 9.6 结束程序 346 9.7 函数库... -
php高级开发教程说明
2008-11-27 11:39:22的底部是诸如一行中的词序或是一个词中的字母顺序的一些东西。 逻辑分析过程将提取这些形式信息,然后按顺序遍历此树,并设法将信息译成有意义的结 果,这是一种语法上的翻译(这个句子有什么样的结构?),还是一种... -
IDL入门教程.doc
2011-09-21 18:29:16过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号和函数的调用 190 使用程序控制语句 191 IDL中表达式的真和假 191 ... -
IDL编程语言入门教程
2009-04-14 22:11:35过程和与函数中变量的作用范围 181 创建定位参数 181 定义可选的或必须的定位参数 182 定义关键字 183 创建输出型参数 186 编写IDL函数 189 方括号和函数的调用 190 使用程序控制语句 191 IDL中表达式的真和假 191 ... -
C#微软培训教材(高清PDF)
2009-07-30 08:51:17C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕... C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 ... -
C#微软培训资料
2014-01-22 14:10:17C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出... -
VB.Net常用语法
2009-03-15 23:47:02您可以在函数中调用,包括在API中(当然VB.Net不再使用winAPI). 甚至一些至关紧要的过程也不例外:如new过程(此方法王国荣文章中 有介绍) 如: class class1 Overloads Public Sub New() 。。。。。。 ... -
C# Primer Plus中文版
2009-05-24 00:25:018.7 变量的作用域 205 8.8 goto语句 208 8.9 switch语句 210 8.9.1 switch语句规则1 213 8.9.2 switch语句规则2 214 8.9.3 switch语句规则3 216 8.9.4 switch语句规则4 218 8.9.5 使用switch语句 218 8.10 条件操作... -
2009达内SQL学习笔记
2010-02-10 19:46:58保存在oracle数据库中的所有操作细节: spool oracleday01.txt :开始记录 spool off :开始保存细节 四、SELECT语句:选择操作、投影操作。 select:从一个或多个表中检索一个或多个数据列。包含信息:想选择... -
计算机应用技术(实用手册)
2011-07-29 16:32:16当设定为[Enabled](启动)时,如果你的系统中所安装的硬盘有更动,在POST的开机过程中,屏幕会出现一道提示讯息。 First Boot Device / Second Boot Device / Third Boot Device / Boot Other Device: 在[First ... -
JAVA 正则表达式
2010-01-15 11:16:37在使用 Pattern.compile 函数时,可以加入控制正则表达式的匹配行为的参数: Pattern Pattern.compile(String regex, int flag) flag 的取值范围如下: Pattern.CANON_EQ 当且仅当两个字符的"正规分解(canonical ...
-
行政法与行政诉讼法--期末复习资料.pdf
-
vsphere7.0补丁
-
中山大学《酒店管理》期末考试试卷.pdf
-
只需要会Oracle,就是全栈开发工程师了?!
-
awk指令常用内容
-
西南科技大学《电力工程基础》作业及其答案.pdf
-
【布道者】Linux极速入门
-
浙江科技学院《土木工程材料》16套复习测试题(含答案).pdf
-
浙江科技学院《钢结构原理》选择简单题汇总.pdf
-
分库分表后如何解决不同维度查询的问题
-
PPT大神之路高清教程
-
六级核心词汇01
-
西南科技大学《大物》多套期末复习试卷含答案.pdf
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
【爱码农】C#制作MDI文本编辑器
-
浙江科技学院《C语言程序设计》两套期末考试试卷(含答案).pdf
-
华为1+X——网络系统建设与运维(中级)
-
mybatisplus的VO分页
-
access应用的3个开发实例
-
浙江科技学院《土力学》习题答案(全).pdf