python(五)逻辑运算,函数

情到浓时终转凉″ 提交于 2020-03-10 23:24:07

1,逻辑运算

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

因为,“&&”和“&”大致类似,“||”和“|”大致类似

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

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

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

但是,要注意,如果是通过 type 来比较,那么它们一定是不同的!

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

2,函数

在各种编程语言中,关于函数大致可以包括这么多内容:定义,调用,参数,返回值

当然了,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中的自动拆箱、装箱机制,然后记住它们的操作符“*”和“**”就能够熟练运用了!

当然了,这四类参数在同一个函数中是可以混用的,但是顺序一定要是那个顺序哟!


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

写这么多,还挺累 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!