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(…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
