【Python】从基础到进阶(三):深入了解Python中的运算符与表达式

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 一、引言
    • 二、运算符
      • 1. 算术运算符
      • 2. 比较运算符
      • 3. 逻辑运算符
      • 4. 位运算符
      • 5. 赋值运算符
      • 6. 其他运算符
    • 三、表达式
      • 1. 表达式的定义
      • 2. 运算符的优先级
      • 3. 使用括号提升可读性
      • 4. 组合运算符与复合表达式
    • 四、案例:计算学生的平均成绩
      • 1. 输入多个学生的成绩
      • 2. 使用各种运算符计算总成绩和平均成绩
      • 3. 判断学生成绩的等级
      • 4. 完整案例代码
    • 五、总结
      • 1. 运算符的类型和用法
      • 2. 表达式的构建与运算符优先级
      • 3. 案例应用
      • 4. 实际编程建议

在这里插入图片描述

一、引言

在前两篇文章中,我们已经了解了Python的基础知识,包括基本的数据类型和数据类型转换,以及基本的输入输出操作。在实际编程过程中,运算符和表达式是不可或缺的部分,它们不仅用于执行基本的算术运算,还用于比较值、进行逻辑判断和操作位等。理解并熟练使用各种运算符和表达式,将大大提高代码的可读性和编写效率。

本篇文章将深入探讨Python中的各种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符以及其他一些特殊运算符。我们还将学习如何正确构建表达式,了解运算符的优先级,并通过实际案例来应用这些知识。希望通过本文的学习,您能更加全面地掌握Python编程的基础知识,为后续的进阶学习打下坚实的基础。

在这里插入图片描述


二、运算符

在Python编程中,运算符用于执行各种操作,如算术运算、比较值、逻辑判断和位操作等。以下是Python中常用的运算符及其功能介绍:

1. 算术运算符

算术运算符用于执行基本的数学运算。

  • 加法(+):将两个操作数相加。
    result = 5 + 3  # 结果是8
    
  • 减法(-):从第一个操作数中减去第二个操作数。
    result = 5 - 3  # 结果是2
    
  • 乘法(*):将两个操作数相乘。
    result = 5 * 3  # 结果是15
    
  • 除法(/):将第一个操作数除以第二个操作数。
    result = 5 / 3  # 结果是1.6666666666666667
    
  • 取整除法(//):将第一个操作数除以第二个操作数并取整。
    result = 5 // 3  # 结果是1
    
  • 取余(%):返回第一个操作数除以第二个操作数的余数。
    result = 5 % 3  # 结果是2
    
  • 幂运算()**:返回第一个操作数的第二个操作数次幂。
    result = 5 ** 3  # 结果是125
    

2. 比较运算符

比较运算符用于比较两个值,并返回布尔值(True或False)。

  • 等于(==):检查两个操作数是否相等。
    result = 5 == 3  # 结果是False
    
  • 不等于(!=):检查两个操作数是否不相等。
    result = 5 != 3  # 结果是True
    
  • 大于(>):检查左操作数是否大于右操作数。
    result = 5 > 3  # 结果是True
    
  • 小于(<):检查左操作数是否小于右操作数。
    result = 5 < 3  # 结果是False
    
  • 大于等于(>=):检查左操作数是否大于或等于右操作数。
    result = 5 >= 3  # 结果是True
    
  • 小于等于(<=):检查左操作数是否小于或等于右操作数。
    result = 5 <= 3  # 结果是False
    

3. 逻辑运算符

逻辑运算符用于组合布尔值并返回布尔结果。

  • 与(and):如果两个操作数均为True,则返回True。
    result = True and False  # 结果是False
    
  • 或(or):如果两个操作数中有一个为True,则返回True。
    result = True or False  # 结果是True
    
  • 非(not):取反操作数的布尔值。
    result = not True  # 结果是False
    

4. 位运算符

位运算符用于按位处理整数。

  • 按位与(&):对两个操作数进行按位与操作。
    result = 5 & 3  # 结果是1
    
  • 按位或(|):对两个操作数进行按位或操作。
    result = 5 | 3  # 结果是7
    
  • 按位异或(^):对两个操作数进行按位异或操作。
    result = 5 ^ 3  # 结果是6
    
  • 按位取反(~):对操作数进行按位取反操作。
    result = ~5  # 结果是-6
    
  • 左移(<<):将操作数的位左移指定的位数。
    result = 5 << 1  # 结果是10
    
  • 右移(>>):将操作数的位右移指定的位数。
    result = 5 >> 1  # 结果是2
    

5. 赋值运算符

赋值运算符用于给变量赋值。

  • 赋值(=):将右操作数的值赋给左操作数。
    result = 5  # 结果是5
    
  • 加赋值(+=):将右操作数的值加到左操作数上,并赋值给左操作数。
    result = 5
    result += 3  # 结果是8
    
  • 减赋值(-=):将右操作数的值从左操作数中减去,并赋值给左操作数。
    result = 5
    result -= 3  # 结果是2
    
  • 乘赋值(*=):将右操作数的值乘到左操作数上,并赋值给左操作数。
    result = 5
    result *= 3  # 结果是15
    
  • 除赋值(/=):将左操作数除以右操作数,并赋值给左操作数。
    result = 5
    result /= 3  # 结果是1.6666666666666667
    
  • 取整除赋值(//=):将左操作数整除右操作数,并赋值给左操作数。
    result = 5
    result //= 3  # 结果是1
    
  • 取余赋值(%=):将左操作数取余右操作数,并赋值给左操作数。
    result = 5
    result %= 3  # 结果是2
    
  • 幂赋值(=)**:将左操作数的值进行幂运算,并赋值给左操作数。
    result = 5
    result **= 3  # 结果是125
    

6. 其他运算符

  • 成员运算符(in, not in):用于检查一个值是否在序列中。
    result = 3 in [1, 2, 3]  # 结果是True
    result = 4 not in [1, 2, 3]  # 结果是True
    
  • 身份运算符(is, is not):用于检查两个对象是否为同一对象。
    a = [1, 2, 3]
    b = a
    result = a is b  # 结果是True
    result = a is not b  # 结果是False
    

三、表达式

在编程中,表达式是由运算符和操作数组合而成的结构,用于计算某个值。理解如何构建和使用表达式是掌握编程语言的重要部分。以下是关于表达式的详细介绍:

1. 表达式的定义

表达式是由变量、常量、运算符和函数调用等组成的计算结构。表达式可以是简单的单个值或变量,也可以是复杂的计算式。

# 简单表达式
a = 5# 复杂表达式
b = (a + 3) * 2 - 4 / 2

2. 运算符的优先级

在一个表达式中,不同运算符的优先级决定了它们的计算顺序。优先级高的运算符会优先计算。如果不明确运算顺序,可以使用括号来提高可读性并确保正确计算。

运算符的优先级(从高到低):

  1. 幂运算符()**
  2. 正负号(+ -)
  3. 乘法、除法、取整除、取余( / // %)*
  4. 加法、减法(+ -)
  5. 比较运算符(== != > < >= <=)
  6. 逻辑运算符(not and or)

示例:

result = 2 + 3 * 4  # 结果是14,因为乘法优先于加法
result = (2 + 3) * 4  # 结果是20,因为括号内的表达式优先计算

3. 使用括号提升可读性

在复杂表达式中,使用括号可以提高代码的可读性,并明确表达式的计算顺序。即使在某些情况下括号是多余的,也建议使用括号来让代码更清晰。

示例:

result = 2 + (3 * 4)  # 括号明确了乘法先于加法
result = ((2 + 3) * 4) / 2  # 复杂表达式使用多个括号明确计算顺序

4. 组合运算符与复合表达式

组合运算符用于简化表达式的书写,如加赋值、减赋值等。这些运算符结合了基本的运算符和赋值操作。

示例:

a = 5
a += 3  # 相当于 a = a + 3
a *= 2  # 相当于 a = a * 2

复合表达式是指包含多个运算符和操作数的表达式。这些表达式需要注意运算符的优先级和使用括号来确保正确的计算结果。

示例:

result = (5 + 3) * (2 - 4 / 2)  # 复杂表达式,包含多个运算符和括号

通过掌握运算符的优先级、使用括号提升可读性以及理解组合运算符的用法,可以编写更加高效和可读的代码。在下一部分,我们将通过一个具体的案例来应用这些知识。


四、案例:计算学生的平均成绩

为了更好地理解运算符和表达式的实际应用,我们将通过一个具体的案例来计算学生的平均成绩。这个案例将涉及到输入多个学生的成绩,使用各种运算符计算总成绩和平均成绩,并判断学生成绩的等级。

1. 输入多个学生的成绩

首先,我们需要从用户处获取多个学生的成绩。我们可以使用input()函数来实现这一点,并将输入的成绩存储在一个列表中。

示例代码:

# 获取学生成绩的数量
num_students = int(input("请输入学生的数量:"))# 初始化成绩列表
grades = []# 获取每个学生的成绩
for i in range(num_students):grade = float(input(f"请输入第{i + 1}个学生的成绩:"))grades.append(grade)print("所有学生的成绩:", grades)

2. 使用各种运算符计算总成绩和平均成绩

获取成绩后,我们可以使用算术运算符来计算总成绩和平均成绩。

示例代码:

# 计算总成绩
total_score = sum(grades)# 计算平均成绩
average_score = total_score / num_studentsprint("总成绩:", total_score)
print("平均成绩:", average_score)

3. 判断学生成绩的等级

根据平均成绩,我们可以判断学生的成绩等级。这里我们使用比较运算符和逻辑运算符来实现。

示例代码:

# 判断成绩等级
if average_score >= 90:grade_level = "优秀"
elif average_score >= 80:grade_level = "良好"
elif average_score >= 70:grade_level = "中等"
elif average_score >= 60:grade_level = "及格"
else:grade_level = "不及格"print("学生的平均成绩等级:", grade_level)

4. 完整案例代码

下面是完整的代码,结合了上述所有步骤:

# 获取学生成绩的数量
num_students = int(input("请输入学生的数量:"))# 初始化成绩列表
grades = []# 获取每个学生的成绩
for i in range(num_students):grade = float(input(f"请输入第{i + 1}个学生的成绩:"))grades.append(grade)# 打印所有学生的成绩
print("所有学生的成绩:", grades)# 计算总成绩
total_score = sum(grades)# 计算平均成绩
average_score = total_score / num_students# 打印总成绩和平均成绩
print("总成绩:", total_score)
print("平均成绩:", average_score)# 判断成绩等级
if average_score >= 90:grade_level = "优秀"
elif average_score >= 80:grade_level = "良好"
elif average_score >= 70:grade_level = "中等"
elif average_score >= 60:grade_level = "及格"
else:grade_level = "不及格"# 打印学生的平均成绩等级
print("学生的平均成绩等级:", grade_level)

通过这个案例,我们运用了算术运算符、比较运算符和逻辑运算符,了解了如何通过表达式来进行数据的处理和判断。这有助于我们更好地理解和应用Python中的运算符与表达式。


五、总结

在本篇文章中,我们深入探讨了Python中的各种运算符及其在表达式中的应用。通过学习这些内容,您应该能够更好地理解并应用运算符和表达式,以编写更加高效和可读的代码。以下是本篇文章的要点回顾:

1. 运算符的类型和用法

  • 算术运算符:用于执行基本的数学运算,如加法、减法、乘法、除法、取整除、取余和幂运算。
  • 比较运算符:用于比较两个值,并返回布尔值(True或False)。
  • 逻辑运算符:用于组合布尔值,进行逻辑判断。
  • 位运算符:用于按位处理整数。
  • 赋值运算符:用于给变量赋值,结合了基本运算和赋值操作。
  • 其他运算符:包括成员运算符和身份运算符,用于检查值在序列中的存在情况或对象是否为同一对象。

2. 表达式的构建与运算符优先级

  • 表达式:由变量、常量、运算符和函数调用等组成的计算结构。
  • 运算符优先级:决定了表达式中运算符的计算顺序。优先级高的运算符会优先计算。
  • 使用括号提升可读性:在复杂表达式中,使用括号可以明确计算顺序,提高代码的可读性。

3. 案例应用

通过计算学生的平均成绩这一案例,我们实际应用了各种运算符,完成了从输入成绩到计算总成绩、平均成绩,并根据平均成绩判断成绩等级的过程。这不仅巩固了我们对运算符和表达式的理解,也展示了如何在实际编程中应用这些知识。

4. 实际编程建议

  • 多练习:通过编写不同的代码段来练习各种运算符和表达式。
  • 注重可读性:使用括号和适当的变量名来提高代码的可读性和可维护性。
  • 理解优先级:牢记运算符的优先级,并在不确定时使用括号来明确计算顺序。

通过本篇文章的学习,相信您对Python中的运算符和表达式有了更深入的了解和掌握。希望这些知识能为您在编写高效、可读的代码时提供帮助。在接下来的文章中,我们将继续探讨更多Python编程中的重要概念和技术,敬请期待。

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

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

相关文章

微信管理神器能解决哪些问题?

1、为了自身利益&#xff0c;销售离职单独干&#xff08;带走客户&#xff09; 企业的客户都被销售带走了&#xff0c;那企业会遭到一定的损失&#xff0c;客户的资源是非常保密或重要的。 2、销售客户难以统计&#xff0c;不知道销售整体在干啥&#xff08;没有统计&#xf…

redis学习(009 实战:黑马点评:缓存穿透、缓存雪崩 、缓存击穿)

黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 总时长 42:48:00 共175P 此文章包含第40p-第p45的内容 文章目录 缓存穿透解决方案缓存空对象布隆过滤 解决方案实现缓存穿透总结 缓存雪崩解决方案 缓存击穿解决方…

Codeforces Round 957 (Div.3)

传送门 A. Only Pluses 时间限制&#xff1a;1秒 空间限制&#xff1a;256MB 输入&#xff1a;标准输入 输出&#xff1a;标准输出 问题描述 Kmes 写下了三个整数 a、b 和 c&#xff0c;以记住他要给 Noobish_Monk 的香蕉数量是 a b c。 Noobish_M…

vue3<script setup>自定义指令

main.ts // 自定义指令 app.directive(color,(el,binding) > {el.style.color binding.value })这段代码定义了一个名为color的自定义指令&#xff0c;并将其注册到Vue应用实例app上。自定义指令接收两个参数&#xff1a;el和binding。el是绑定指令的元素&#xff0c;而bi…

Ubuntu22.04安装NIVIDIA显卡驱动总结

1.首先在安装驱动时需要判断系统有无GPU以及GPU的型号 可以参考这篇文章&#xff1a; https://blog.51cto.com/u_13171517/8814753#:~:textubuntu%20%E7%B3%BB%E7%BB%9F%20%E6%80%8E%E4%B9%88%E5%88%A4%E6%96%AD%E7%B3%BB%E7%BB%9F%E6%9C%89%E6%B2%A1%E6%9C%89GPU%201%20%E6%…

【C++】函数重载详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

【LLM大模型】Langchain 介绍与入门

官方介绍 LangChain 是一个利用LLM开发应用程序的框架。它让应用程序具备&#xff1a; 上下文感知能力&#xff1a;将LLM连接到上下文源&#xff08;提示说明、少量示例、用以形成其响应的内容等&#xff09;推理&#xff1a;依靠LLM进行推理&#xff08;例如根据提供的上下文…

全网最详细单细胞保姆级分析教程

各位读者,好久不见,我又归来了,之后的一段时候我将以Rstudio分析单细胞的RNA-seq流程为主,希望各位读者朋友多多支持! 1. pbmc单样本分析 1.包的加载 library(multtest) library(dplyr) library(Seurat) library(patchwork) library(R.utils)2. 清除环境变量 rm(list ls))…

深度解析蚂蚁 SEO 蜘蛛池:提升网站流量的有效利器

在当今数字化时代&#xff0c;网站流量对于企业和个人的在线业务成功至关重要。为了在竞争激烈的网络环境中脱颖而出&#xff0c;众多站长和 SEO 从业者不断探索各种优化策略&#xff0c;其中蚂蚁 SEO 的蜘蛛池成为备受关注的工具之一。 蚂蚁 SEO 蜘蛛池是一种创新的技术手段&a…

HarmonyOS鸿蒙开发入门 , ArkTS语言的了解

鸿蒙&#xff08;即HarmonyOS&#xff0c;开发代号Ark&#xff0c;正式名称为华为终端鸿蒙智能设备操作系统软件&#xff09;是由华为公司2012年以来开发的分布式操作系统&#xff0c;并于2019年8月正式发布。该系统利用“分布式”技术&#xff0c;将手机、电脑、平板、电视、汽…

画封装步骤

parameter参数 1.打开pad designer 2.设计单位mils改为millimeter&#xff0c;保留decimal layers 3.勾选☑️single layer mode

游戏厅ps5体验馆计时收费软件 佳易王电玩馆计时器定时语音提醒系统操作教程

前言&#xff1a; 游戏厅ps5体验馆计时收费软件 佳易王电玩馆计时器定时语音提醒系统操作教程 以下软件操作教程以&#xff0c;佳易王游戏厅电玩店计时计费管理系统软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件操作教程 1、计…

【Python】人生重开模拟器(实现代码)

一、游戏背景介绍 这是一款文字类小游戏。玩家输入角色的初始属性之后&#xff0c;就可以开启不同的人生经历。 完整的程序代码较多&#xff0c;此这里只实现其中的一部分逻辑&#xff08;主要目的&#xff1a;巩固前面学习的 Python 语法基础&#xff09;。 二、设置初始属性…

springboot企业人力资源管理系统-计算机毕业设计源码29005

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

Redis 主从复制,哨兵与集群

目录 一.redis主从复制 1.redis 主从复制架构 2.主从复制特点 3.主从复制的基本原理 4.命令行配置 5.实现主从复制 6.删除主从复制 7.主从复制故障恢复 8.主从复制完整过程 9.主从同步优化配置 二.哨兵模式&#xff08;Sentinel&#xff09; 1.主要组件和概念 2.哨…

基于复旦微V7 690T FPGA +ARM/海光X86+AI的全国产化数据采集人工智能平台

国产化FPGA&#xff1a;JFM7VX690T80主机接口&#xff1a;PCIe Gen3 x88Gbps/lane光纤通道&#xff1a;前面板4路SFP光纤&#xff0c;后面板1路QSFP光纤2组独立的DDR3 SDRAM 缓存&#xff0c;工作时钟频率800MHz2个FMC接口扩展&#xff1a;每个支持16路GTH&#xff0c;线速率10…

提示词工程(Prompt Engineering)是什么?

一、定义 Prompt Engineering 提示词工程&#xff08;Prompt Engineering&#xff09;是一项通过优化提示词&#xff08;Prompt&#xff09;和生成策略&#xff0c;从而获得更好的模型返回结果的工程技术。 二、System message 系统指令 System message可以被广泛应用在&am…

ORB-slam3 安装教程

1. 官网下载源码&#xff1a;GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM 2. 根据官网下载依赖&#xff1a; &#xff08;1&#xff09;eigen3:Eigen 解压后进入源码目录进行编译&#xff1a…

ensp实验:防火墙安全策略用户认证综合策略

实验要求&#xff1a; 示例图&#xff1a; 设备配置&#xff1a; LSW5 vlan配置&#xff1a; 防火墙网络配置&#xff1a; 安全区域配置&#xff1a; 地址组配置&#xff1a; 时钟配置: 一&#xff1a; 办公区策略&#xff1a; 生产区策略&#xff1a; 二&#xff1a; 游客区…

医院健康宣教二维码如何制作?以及应用案例分享

医院正在广泛应用二维码来向患者展示健康宣传教育方面的信息&#xff0c;从疾病预防内容、术后康复训练知识&#xff0c;到日常保健视频&#xff08;如八段锦&#xff09;、饮食注意事项…… 这些内容都能够以二维码的形式呈现&#xff0c;方便患者随时扫码查看获取健康知识&am…