python(五)逻辑运算,函数

1,逻辑运算php

python中的逻辑运算符对比php而言,除了少了一个“!”以外,其它的“&”,“|”,and,or,not 都和PHP中的大体相似,什么叫大体相似?
java

由于,“&&”和“&”大体相似,“||”和“|”大体相似python

就是这么任性,你拦不住!编程

用一个简单的例子,大概的说明一下,同时 请记住:判断一个变量的数据类型的方法,可使用 isinstance编程语言

经过上面的代码示例,还引出一个问题,那就是 “布尔”类型的 “True”和“False”,使用 isinstance 去判断的时候实际上是属于 “int”类型的,就像是下面这样:函数

可是,要注意,若是是经过 type 来比较,那么它们必定是不一样的!学习

补充说明:在python中是没有“switch”的哦  ^_^测试

2,函数spa

在各类编程语言中,关于函数大体能够包括这么多内容:定义,调用,参数,返回值it

固然了,python中是不会搞特殊化的,该有的必需要有,不应有的,额。。。。这个也能够有

废话很少说,咱们画(截)个图来看看:

一个简单的例子,就说明了python中关于函数的基本知识,这些也是PHP中函数的知识。

你看,是否是也很容易学习呢!

python的函数,在PHP函数的常见功能上,增长了一些特性,好比说:返回多个值 与 可变参数

3,返回多个值

返回多个值,在PHP的函数中固然能够实现,可是它的限制是在 return 后面只能跟一个返回值变量,也就是说不可以写成这样:return a,b

可是在python中是容许你这么干的,就像是这样,果然是任性( ⊙ o ⊙ )啊!

经过上面程序示例输出的结果,你有没有发现,其实所谓的“函数返回多个值”的本质是什么?

你彻底能够理解成,python在内部针对return作了手脚,当你给它多个值得时候,return会帮你把这个多个值“包装”成一个 tuple,而后给你返回这个tuple,这样就好像是能够返回多个值了。

理解了这句话, 你就知道为何,当python中的函数返回多个值得时候,咱们须要这么来接收了:

你看,是否是也很容易想到呢?

问一个问题:python返回多个值为何会包装成tuple,而不是集合或者列表?

O(∩_∩)O哈!思考一下吧 ^_^

4,可变参数

若是你有过关于java程序的自动装箱,自动拆箱的编程经验,那么对于python的可变参数就是手到擒来的事情。

对于可变参数,有一个不错的测试案例,以下:

要求,定义一个函数,能够请求任意几个值的和,而且返回。

你怎么作?

固然,解决方案是不少的,可是如今咱们用函数的可变参数来实现,就像下面这样:

你看,是否是就实现了呢?

如今,你能够传递任意个参数,而后它就会帮你求出它们的和。

正如程序中看到的同样,能够针对可变参数名“args”来作循环遍历,那你想不想知道“args”的数据类型是什么?

有没有很清楚?

再结合上面的返回多个值,一块儿想想,是否是明白了呢?

那么,这个跟刚开始讲的java的拆箱和装箱有什么异同呢?

其实,在python中所谓的可变参数,就是当你传递多个参数的时候,python能够经过关键字“*”(假设能够这么看),把你的多个参数自动打包成一个tuple,而后传递到函数内部,当你要返回多个参数的时候,也是这样的一个过程。不过是一个传入,一个传出罢了!

若是,你仍是有一点疑惑,那么看看下面的在python中称为关键字参数的东西,或许你就懂了。

5,关键字参数

什么是关键字参数,粗鲁一点的说,就是你能够给你的参数定义一个名字了。

你看,你能够给你的参数定义名字,同时还须要给它指定具体的值,那你是否是有想到python中的一种数据类型呢?

对,就是字典!

经过上面的对比,你大概就可以了解了。

在python中,若是你准备传递多个参数,有两种方案,一是采用“*”,自动打包成元组类型,另一种是采用“**”,自动打包成字典类型。

两种方案各有各的优劣,能够根据不一样的需求进行选择!

若是你准备让你的函数返回多个值,那么必定要记住python会自动帮你打包成元组类型!

那这时你可能就在想,若是我想让python帮我打包成字典类型该怎么作呢?那这个问题,仍是不问的好了吧!

6,补充

综合上面“接近抽象”的解释,对于python的函数有了一个大概的了解,其中最重要的一点是关于python函数的参数。

那么这里补充,也是要告诉你们,python中的参数,我么能够人为的将其划分红四类:必选参数,可选参数,可变参数,关键字参数

那么前两类在其它的编程语言中,好比说PHP,一样适用,重点是后面两种。那关于后面两种参数的使用,你能够联想到java中的自动拆箱、装箱机制,而后记住它们的操做符“*”和“**”就可以熟练运用了!

固然了,这四类参数在同一个函数中是能够混用的,可是顺序必定要是那个顺序哟!


------------------------------------------华丽的分割线---------------------------------------------

写这么多,还挺累 

相关文章
相关标签/搜索