Java开发者的Python快速进修指南:控制之if-else和循环技巧
简单介绍
在我们今天的学习中,让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员,我们将跳过一些基础概念,如变量和数据类型。如果遇到不熟悉的内容,可以随时查阅文档。但在编写程序或逻辑时,if-else判断和循环操作无疑是我们经常使用的基本结构。毕竟,我们初步编写的代码很多时候都是在if嵌套中度过的。随着经验的积累,我们才逐渐开始考虑如何将设计模式融入代码中进行优化。循环也是同样如此,我们的取值逻辑涉及到分页批量处理,遍历是不可或缺的。
基础
首先,让我们深入了解一下Python的写法。在Python中,缩进是至关重要的,这与我们编写YAML文件时的逻辑非常相似。在Python中,同一层逻辑保持相同的缩进,子逻辑则进一步缩进,而换逻辑则从新的一行从头开始。
在编程中,我们经常使用打印语句来进行调试和输出信息。不同于Java中的println和print,Python中只有一个print函数。然而,它具有一个默认的第二个参数end,你可以使用类似这样的方式进行打印:print('test', end='\t')。这对于控制输出的结尾非常有用。在函数调用方面,Python允许传递默认值,这使得函数调用时不像Java那样必须提供所有参数。
这些是Python中一些基础的语法和习惯,接下来我们将深入探讨更多关于if判断和循环的内容,以及如何在Python中灵活运用这些概念。
if判断
在Python中,if判断的灵活性给我们带来了很多便利。特别是在缩进写法上,省略了冗长的括号,使得代码更加清晰。不仅如此,Python还提供了elif来简化多个条件的判断,让你的键盘少敲两次,看起来更简洁。下面,让我们通过一个例子来深入了解:
# 例子:判断一个数字的正负和奇偶性num = int(input("请输入一个整数:"))if num > 0:print("这是一个正数。")
elif num < 0:print("这是一个负数。")
else:print("这是零。")if num % 2 == 0:print("这是一个偶数。")
else:print("这是一个奇数。")
了解了Python中的if判断写法后,让我们研究一下在业务逻辑中常用的and和or操作符。这两个操作符在Python中的灵活运用能够使代码更加简洁,提高可读性。
在业务逻辑中,有些开发者习惯在if判断中直接使用and和or,而不愿意提前声明变量记录判断值。这样的写法虽然直接,但也可能让代码变得冗长。让我们通过一个实例来展示如何巧妙地运用and和or:
# 例子:验证用户名和密码是否同时符合要求username = input("请输入用户名:")
password = input("请输入密码:")# 判断用户名和密码是否同时满足条件
if len(username) > 5 and len(password) >= 8:print("用户名和密码符合要求,验证通过。")
else:print("用户名或密码不符合要求,请重新输入。")
在这个例子中,我们通过and操作符将两个条件同时纳入判断,使得验证逻辑更加清晰。
接下来,让我们看一下取反操作,Python中使用的是not。这与Java中使用感叹号!的逻辑相似,但更贴近自然语言,提高了可读性。下面是一个简单的取反操作的例子:
# 例子:判断一个数字是否不在指定范围内number = 25if not (10 <= number <= 20):print("这个数字不在10到20之间。")
else:print("这个数字在指定范围内。")
通过这个例子,你可以更好地理解在Python中如何使用not进行取反操作。
while循环
在Python中,while循环不仅与Java一样有强行退出的break和继续执行的continue关键字,而且有一个独特的特性,即在循环正常结束后可以使用else块,前提是循环没有被break中断。这个特性使得Python中的while循环更加灵活,可以在循环结束后执行特定的业务逻辑。
让我们通过一个例子来深入了解:
# 例子:利用while循环计算数字的阶乘,并在循环结束后输出结果num = int(input("请输入一个正整数:"))
factorial = 1
count = 1while count <= num:factorial *= countcount += 1
else:print(f"{num}的阶乘是:{factorial}")print("循环正常结束,执行了else块中的业务逻辑。")
在这个例子中,循环通过while count <= num条件进行控制,当循环正常结束时,执行else块中的代码。这种结构在Java中是不常见的,但在Python中却是一种很有用的模式。
for循环
与while循环类似,for循环在Python中也有强行退出的break和继续执行的continue关键字。下面是一个使用for循环的例子:
# 例子:遍历列表并输出元素的平方,并在循环结束后输出提示信息numbers = [1, 2, 3, 4, 5]for num in numbers:square = num ** 2print(f"{num}的平方是:{square}")
else:print("for循环正常结束,执行了else块中的业务逻辑。")
在这个例子中,我们使用for循环遍历列表numbers,并计算每个元素的平方并输出。同样地,循环正常结束后,执行了else块中的代码。
总结
在今天的学习中,我们简要了解了Python的控制流程,特别是if-else判断和循环操作。作为有着Java开发经验的程序员,我们跳过了一些基础概念,着重探讨if判断和循环的灵活运用。Python的缩进写法和与Java的一些语法区别都是需要注意的地方。在编写程序时,if嵌套和循环是基础结构,而设计模式的融入和循环的灵活运用则是经验积累后的优化方向。在学习中,我发现Python的语法简洁,控制流程更为灵活,使得编写清晰可读的代码变得更加容易。
文章转载自:努力的小雨
原文链接:https://www.cnblogs.com/guoxiaoyu/p/17828158.html
相关文章:
Java开发者的Python快速进修指南:控制之if-else和循环技巧
简单介绍 在我们今天的学习中,让我们简要了解一下Python的控制流程。考虑到我们作为有着丰富Java开发经验的程序员,我们将跳过一些基础概念,如变量和数据类型。如果遇到不熟悉的内容,可以随时查阅文档。但在编写程序或逻辑时&…...
二进制部署k8s集群-过程中的问题总结(接上篇的部署)
1、kube-apiserver部署过程中的问题 kube-apiserver.conf配置文件更改 2、calico的下载地址 curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O 这里如果kubernetes的节点服务器为多网卡配置会产生报错 修改calino.yaml配置文件 解决方法: 调…...
IOS 关于CoreText的笔记
放大 一.CoreText计算attributeString显示所占区域 百度搜索有三种方法: 1.方法 - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(nullable NSStringDrawingContext *)context 2.使用CTFrameRef 的 CTFrameGetLin…...
基础课6——开放领域对话系统架构
开放领域对话系统是指针对非特定领域或行业的对话系统,它可以与用户进行自由的对话,不受特定领域或行业的知识和规则的限制。开放领域对话系统需要具备更广泛的语言理解和生成能力,以便与用户进行自然、流畅的对话。 与垂直领域对话系统相比…...
Hive常见的面试题(十二道)
Hive 1. Hive SQL 的执行流程 ⾸先客户端通过shell或者Beeline等⽅式向Hive提交SQL语句,之后sql在driver中经过 解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 ANTLR&…...
1688商品详情API跨境专用接口php java
一、引言 随着全球电子商务的快速发展,跨境电子商务已经成为一种重要的国际贸易形式。1688作为全球最大的B2B电子商务平台之一,不仅拥有大量的商品资源,还为商家提供了丰富的API接口,以实现更高效、更便捷的电子商务活动。其中&a…...
h264流播放
参考文章: Android MediaCodec硬解码H264文件-CSDN博客...
02-1解析xpath
我是在edge浏览器中安装的xpath,需要安装的朋友可以参考下面这篇博客最新版edge浏览器中安装xpath插件 一、xpathd的使用 安装lxml pip install lxml ‐i https://pypi.douban.com/simple导入lxml.etree from lxml import etreeetree.parse() 解析本地文件 htm…...
Python算法——树的镜像
Python中的树的镜像算法详解 树的镜像是指将树的每个节点的左右子树交换,得到一棵新的树。在本文中,我们将深入讨论如何实现树的镜像算法,提供Python代码实现,并详细说明算法的原理和步骤。 树的镜像算法 树的镜像可以通过递归…...
ModStartCMS v7.6.0 CMS备份恢复优化,主题开发文档更新
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…...
vscode 推送本地新项目到gitee
一、gitee新建仓库 1、填好相关信息后点击创建 2、创建完成后复制 https,稍后要将本地项目与此关联 3、选择添加远程存储库 4、输入仓库地址,选择从URL添加远程存储仓库 5、输入仓库名称,确保仓库名一致...
C++函数指针变量
#include <iostream> using namespace std;void MyFun(int x){cout << x << endl; }//函数指针的声明 void (*FunP) (int);/*** MyFun的函数名与FunP函数指针都是一样的,即都是函数指针* MyFun函数名是一个“函数指针常量”* FunP是一个“函数指针…...
各类语言真实性能比较列表
这篇文章是我所做或将要做的所有真实世界性能比较的索引。如果你对想要看到的其他真实世界案例有建议,请在评论中添加。 用例 1 — JWT 验证 & MySQL 查询 该用例包括: 从授权头部获取 JWT验证 JWT 并从声明中获取电子邮件使用电子邮件执行 MySQL…...
华为笔记本MateBook D 14 2021款锐龙版R7集显非触屏(NbM-WFP9)原装出厂Windows10-20H2系统
链接:https://pan.baidu.com/s/13Kyy95GME-asli4woNN_ww?pwdbqa8 提取码:bqa8 HUAWEI华为MateBookD14原厂Win10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序...
Springboot 对于数据库字段加密方案(此方案是对字符串处理的方案)
背景:在erp开发中,有些用户比较敏感数据库里的数据比较敏感,系统给用户部署后,公司也不想让任何人看到数据,所以就有了数据库字段加密方案。 技术 spring boot mybatisplus 3.3.1 mybatisplus 实际提供了 字段加密方案 第一 他…...
[C++]:8.C++ STL引入+string(介绍)
C STL引入string(介绍) 一.STL引入:1.什么是STL2.什么是STL的版本:2-1:原始版本:2-2:P. J 版本:2-3:RW 版本:2-4:SGL版本: 3.STL 的六大组件&…...
C++基础从0到1入门编程(三)
系统学习C 方便自己日后复习,错误的地方希望积极指正 往期文章: C基础从0到1入门编程(一) C基础从0到1入门编程(二) 参考视频: 1.黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难 2.系统…...
[Jenkins] 物理机 安装 Jenkins
这里介绍Linux CentOS系统直接Yum 安装 Jenkins,不同系统之间类似,操作命令差异,如:Ubuntu用apt; 0、安装 Jenkins Jenkins是一个基于Java语言开发的持续构建工具平台,主要用于持续、自动的构建/测试你的软…...
设计模式 -- 适配器模式(Adapter Pattern)
适配器模式:属于结构型模式,结合了两个独立接口的功能,作为 两个不兼容的接口之间的桥梁 。 介绍 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要…...
Axios传值的几种方式
<body><script src"https://unpkg.com/axios/dist/axios.min.js"></script></body> axios基本使用 默认是get请求 注意:get请求无请求体,可以有body,但是不建议带 使用get方式进行无参请求 <script>axios(…...
模拟电路经典设计解析与工程实践
1. 模拟电路设计的艺术:那些令人拍案叫绝的经典设计在模拟电路设计的浩瀚海洋中,总有一些电路设计能让人眼前一亮,它们或简洁优雅,或构思巧妙,或性能卓越。作为一名从业十余年的模拟电路工程师,我想分享几个…...
Univer全栈框架实战指南:3步构建企业级AI原生表格应用
Univer全栈框架实战指南:3步构建企业级AI原生表格应用 【免费下载链接】univer Build AI-native spreadsheets. Univer is a full-stack framework for creating and editing spreadsheets on both web and server. With Univer Platform, Univer Spreadsheets is d…...
新型macOS Infinity窃密木马利用Nuitka Python载荷与ClickFix传播
首例针对macOS的ClickFix攻击活动Malwarebytes研究人员发现名为Infinity Stealer的新型macOS信息窃取木马,该木马使用Nuitka编译的Python载荷,通过伪造Cloudflare验证页面诱骗用户执行终端命令进行传播。据Malwarebytes报告指出,这是首次观察…...
从抓包实战到协议栈:深入解析DDS核心报文与通信机制
1. 从HelloWorld抓包开始认识DDS 第一次接触DDS协议时,很多人会被各种专业术语搞得晕头转向。其实最快的学习方式就是从实际案例入手——就像我当初用Fast DDS的HelloWorld示例做实验那样。这个经典案例包含一个发布者和一个订阅者,正好能展示DDS最核心…...
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
一、背景与问题缘起 MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作,需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT 注释(因业务实际需要存储大数值关联字段)。 表的核心特性为Java 多线程密集读写,业务请求持续…...
OpenSSL实战:从零构建私有CA体系及多级证书签发指南
1. 为什么需要私有CA体系? 在日常开发中,我们经常遇到需要HTTPS加密通信的场景。比如微服务之间的API调用、内部系统的数据传输、物联网设备的安全连接等。虽然可以使用公共CA机构颁发的证书,但在以下场景中,自建CA体系会更加灵活…...
RCS调度系统:从架构蓝图到智能协同的实战解析
1. RCS调度系统:现代仓储的智能大脑 想象一下,在一个数万平方米的智能仓库里,上百台AGV(自动导引车)正在同时穿梭。它们有的在搬运货架,有的在分拣包裹,还有的在自动充电。这些AGV既不会撞车&am…...
koanf命令行参数解析:高级POSIX兼容标志处理指南
koanf命令行参数解析:高级POSIX兼容标志处理指南 【免费下载链接】koanf Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. 项目地址:…...
智慧园区能源管理系统解决方案
某园区集成生产、办公、生活三大功能,建设有生产厂房、化学品库、辅助用房、气罐站、研发楼、综合楼及其他配套设施,涉及到多种用能,包含电能、天然气、压缩空气、冷热能等,带来日益高昂的能耗成本与能源浪费隐患。 1、制冷空调监…...
别再手动写Excel了!用Coze+GPT-4o,5分钟把Word需求文档变成测试用例表格
从Word到Excel:零代码打造智能测试用例生成流水线 每次产品需求文档更新后,测试团队最头疼的莫过于手动编写成百上千条测试用例。传统方式下,测试工程师需要反复阅读PRD文档,逐条提取功能点,再按照固定模板填充到Excel…...
