【第二部分--Python之基础】02

二、运算符与程序流程控制

1、运算符

1.1 算术运算符

算术运算符用于组织整数类型和浮点类型的数据,有一元运算符二元运算符之分。

一元算术运算符有两个:+(正号)和-(负号),例如:+a还是a,-a是对a的取反运算。

二元算术运算符如右表所示

 

1.2 比较运算符

比较运算符用于比较两个表达式的大小,其结果是布尔类型的数据,即True或False。

比较运算符可用于任意类型的数据,但参与比较的两种类型的数据要相互兼容,即能进行隐式转换。例如:整数、浮点和布尔这三种类型是相互兼容的。

 

 1.3 逻辑运算符

 逻辑运算符用于对布尔型变量进行运算,其结果也是布尔型

Python也采用了“短路”设计。“短路”指逻辑与”和“逻辑或”在计算过程中只要结果确定则不再计算后面的表达式,从而提高效率,有点像电路短路。

 

 

 

 1.4 位运算符

位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整数类型的数据

 

 

按位取反运算中涉及原码、补码、反码运算,比较麻烦。我归纳总结了一个公式:~a=(a+1)X-1,如果a为十进制数178,则~a为十进制数-179;如果a为十进制数-20,则~a为十进制数19。怎么样,这个公式好用吧!

1.5 赋值运算符

 赋值运算符只是一种简写只有算术运算和位运算中二元运算符才有对应的赋值运算符。

 

 

 1.6 运算符的优先级

 

位运算中的难点位反、右移和左移,位反过程比较复杂但可以使用我归纳的公式~a=(a+1)x-1推算出结果右移时高位采用符号位补位符号位为1说明是负数,用1补位;符号位为0说明是正数,用0补位。

位运算优先级中,优先级从高到低大体是:算术运算符位运算符→关系运算符→逻辑运算符→赋值运算符。

2、程序流程控制

2.1 分支语句

Python的设计理念是简单、刚好够用,所以在Python中没有switch语句,多分支功能是通过if-elif-else实现的

2.1.1 if 结构 

if结构的语法如下: 

示例代码如下:

 

2.1.2 if-else 结构

if-else结构的语法如下:

 

 示例代码如下:

 2.1.3 if-elif-else 结构

 if-elif-else结构的语法如下:

示例代码如下:

2.2 循环语句

Python支持两种循环语句:while和for

2.2.1 while语句

在Python中只有while语句,没有do-while语句。while语句先判断循环条件,若条件为True则执行循环体。

一个简单的示例代码如下:

 

 示例代码如下:

 修改示例代码:

 可以对比一下语句的运行结果:

 2.2.2 for语句

基于简单的设计理念,在Python中只有一种for语句,即for-in语句,它可以遍历任意可迭代对象中的元素

注:可迭代对象包括字符串、列表、元组、集合和字典等。

 

示例代码如下:

 

示例代码如下:

 修改示例代码:

 可以对比一下语句的运行结果:

 2.3 跳转语句

跳转语句能够改变程序的执行顺序,包括break、continue和returnbreak和continue用于循环体中而return用于函数中。本节先介绍break和continue语句,对于return语句,将在后面的章节中介绍。

2.3.1 break语句

break语句用于强行退出循环体,不再执行循环体中剩余的语句

 示例代码如下:

 只循环了3次,item==3之后的数据不会被打印出来。

2.3.2 continue语句

 continue语句用于结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。

 示例代码如下:

注意:在输出结果中没有3。

2.4 动动手——计算水仙花数

下面编写代码,通过while循环计算出水仙花数。提示:水仙花数是一个三位数,三位数各位的立方之和等于三位数本身。

下页给出的只是参考代码,你可以自由发挥。计算出的水仙花数有4个:153、370、371和407。

计算结果: 

本章的难点是循环语句(while和for)中的else语句。记住:在循环体正常结束时会执行else语句,如果发生中断,则不运行else语句。

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

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

相关文章

【C++11】thread线程库

【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数:atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…

Git学习笔记之基础

本笔记是阅读《git pro》所写,仅供参考。 《git pro》网址https://git-scm.com/book/en/v2 git官网 https://git-scm.com/ 一、git起步 1.1、检查配置信息 git config --list查看所有的配置以及它们所在的文件 git config --list --show-origin可能有重复的变量名…

科技云报道:从“算力核弹”到生成式AI,新纪元还有多远?

科技云报道原创。 “我们需要更大的GPU”! 3月19日凌晨,一年一度的“AI风向标”重磅会议——GTC 2024如期而至。 英伟达CEO黄仁勋在大会上发布了包括新一代加速计算平台NVIDIA Blackwell、Project GR00T人形机器人基础模型、Omniverse Cloud API、NVI…

【prompt六】MaPLe: Multi-modal Prompt Learning

1.motivation 最近的CLIP适应方法学习提示作为文本输入,以微调下游任务的CLIP。使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了针对视觉和语言分支的多模态提示学习(MaPLe),以…

大数据开发(日志离线分析项目)

大数据开发(日志离线分析项目) 一、项目需求1、使用jqueryecharts的方式调用程序后台提供的rest api接口,获取json数据,然后通过jquerycss的方式进行数据展示。工作流程如下:2、七大角度1、用户基本信息分析模块2、浏览…

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器(卷积核)1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架,相关操作…

openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint

文章目录 openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint252.1 功能描述252.2 语法格式252.3 参数说明252.4 示例 openGauss学习笔记-252 openGauss性能调优-使用Plan Hint进行调优-Scan方式的Hint 252.1 功能描述 指明scan使用的方法&#…

【计算机操作系统】深入探究CPU,PCB和进程工作原理

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【二叉树】Leetcode 102. 二叉树的层序遍历【中等】

二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点) 示例1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 解题思路…

elasticsearch基础应用

1._cat接口 | _cat接口 | 说明 | | GET /_cat/nodes | 查看所有节点 | | GET /_cat/health | 查看ES健康状况 | | GET /_cat/master | 查看主节点 | | GET /_cat/indices | 查看所有索引信息 | es 中会默认提供上面的几个索引,表头…

Spring 自定义 CustomQualifier

为什么写这篇文章 Spring 支持类型注入,并且可以通过Qualifier 或者Mate 调整类型注入的范围。但是通过自定义注解结合现有的 Qualifier 使用起来有种种困难。 将 Qualifier 融合在自定义注解中,在使用 AliasFor 遇到问题仅仅检查注解中的一部分内容是否…

外包干了10天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

Tomcat下载安装以及配置

一、Tomcat介绍 二、Tomcat下载安装 进入tomcat官网,https://tomcat.apache.org/ 1、选择需要下载的版本,点击下载 下载路径一定要记住,并且路径中尽量不要有中文 8、9、10都可以,本博文以8为例 2、将下载后的安装包解压到指定位…

【小黑送书—第十四期】>>重磅升级——《Excel函数与公式应用大全》(文末送书)

今天给大家带来AI时代系列书籍:《Excel 2019函数与公式应用大全》全新升级版,Excel Home多位微软全球MVP专家打造,精选Excel Home海量案例,披露Excel专家多年研究成果,让你分分钟搞定海量数据运算! 由北京…

YOLOv8官方仓库正式支持RT-DETR训练、测试以及推理

YOLOv8太卷啦 | YOLOv8官方仓库正式支持RT-DETR训练、测试以及推理 RT-DETR由百度开发,是一款端到端目标检测器,在保持高精度的同时提供实时性能。它利用ViT的强大特性,通过解耦尺度内交互和跨尺度融合来有效处理多尺度特征。 RT-DETR具有很强…

关闭Elasticsearch built-in security features are not enabled

禁用Kibana安全提示(Elasticsearch built-in security features are not enabled) Kibana提示#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.e…

C语言中位运算介绍

在C语言中,位运算是一种对二进制位进行操作的运算方式,它可以对数据的二进制表示进行位级别的操作,包括按位与、按位或、按位异或、按位取反等。位运算常用于处理底层数据结构、优化代码性能以及实现各种算法。本文将深入介绍C语言中的位运算…

spring 的理解

spring 的理解 spring 是一个基础的框架,同时提高了一个Bean 的容器,用来装载Bean对象spring会帮我们创建Bean 对象并维护Bean对象 的生命周期。在spring 框架上,还有springCloud,spring Boot 的技术框架,都是以Spring为基石的sp…

AIGC工具系列之——基于OpenAI的GPT大模型搭建自己的AIGC工具

今天我们来讲讲目前非常火的人工智能话题“AIGC”,以及怎么使用目前的AI技术来开发,构建自己的AIGC工具 什么是AIGC? AIGC它的英文全称为(Artificial Intelligence Generated Content),中文翻译过来就是“人工智能生成内容”&…

HDFSRPC通信框架详解

本文主要对HDFSRPC通信框架解析。包括listener,reader,handler,responser等实现类的源码分析。注意hadoop版本为3.1.1。 写在前面 rpc肯定依赖于socket通信,并且使用的是java NIO。读者最好对nio有一定的了解,文章中…