当前位置: 首页 > news >正文

python函数操作逻辑_python(五)逻辑运算,函数

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

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

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

写这么多,还挺累

相关文章:

  • daoi php_php 广告加载类
  • 参考文献起止页码怎么写_会议论文的参考文献格式
  • css 右上角 翻开动画_「冷知识」为什么不要随意操作 CSS?
  • 熊出没机器人光头强_《熊出没》五大兵器,天才威与光头强的战斗机器人谁更厉害?...
  • 北邮 复习 软件工程_重磅!厦大、北邮改考408!反向抄底厦大,面朝大海?
  • ambari hdfs 启动报错_HDFS这些问题你会处理吗?
  • cvc 降噪_耳机降噪技术-ANC、ENC、DSP、CVC
  • 怎么看mmdetection版本_kaggle notebook运行mmdetection并提交结果采坑记
  • matlab hsi图像分割_图像分割之阈值分割(matlab)
  • imx6 配置串口波特率_STM32F103 串口的使用方法
  • 十天征服单片机百度云_单片机学习「1」 初始51单片机
  • jpa删除数据后数据库无修改_Java编程第46讲——强大、奇妙的数据库操作工具JPA...
  • 有赞小程序源码_有赞小程序商城怎么开通,如何收费?
  • docker pycharm 连接_七、连Pycharm都不知道怎么用,学什么Python
  • github图片_通过这个 Go 项目搭建一个图片服务器竟然这么简单
  • Angular Elements 及其运作原理
  • Date型的使用
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • js继承的实现方法
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • maya建模与骨骼动画快速实现人工鱼
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • Yii源码解读-服务定位器(Service Locator)
  • 技术胖1-4季视频复习— (看视频笔记)
  • 面试总结JavaScript篇
  • 入手阿里云新服务器的部署NODE
  • 小而合理的前端理论:rscss和rsjs
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (2)Java 简介
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET文档生成工具ADB使用图文教程
  • @JsonFormat与@DateTimeFormat注解的使用
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [ASP]青辰网络考试管理系统NES X3.5
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [C# 开发技巧]实现属于自己的截图工具
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [docker] Docker的私有仓库部署——Harbor
  • [IM] [Webhook] Webhook实现IM平台机器人
  • [iOS]让Xcode 4.2生成的app支持老的iOS设备(armv6)
  • [LeetCode][面试算法]逻辑闭环的二分查找代码思路
  • [node] Node.js的Web 模块
  • [oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux
  • [office] Excel自带的编辑函数求和方法 #其他#媒体
  • [POJ 1915] Knight Moves
  • [poj2891]Strange Way to Express Integers(扩展中国剩余定理)
  • [Redis]Redis的数据类型
  • [Step By Step]在SAP Business Objects Data Services中使用SQL Transform将数据导入到SAP HANA中(SQL Transform)...