【编程基础之Python】11、Python中的表达式
【编程基础之Python】11、Python中的表达式
- Python中的表达式
- 表达式与运算符
- 算术表达式
- 赋值表达式
- 比较表达式
- 逻辑表达式
- 位运算表达式
- 总结
Python中的表达式
在Python中,表达式是由操作数、运算符和函数调用等组成的语法结构,可以进行各种数学运算、逻辑判断、字符串操作等。表达式可以被解释器求值,其结果可以赋值给变量、作为函数参数等。
Python中常见的表达式类型有算术表达式、赋值表达式、比较表达式、逻辑表达式和位运算表达式等。
表达式与运算符
表达式是由操作数和运算符组成,可以被求值为一个值或对象。而运算符则是用于执行运算的特殊符号或关键字,是表达式的一部分。
表达式和运算符之间存在密切的联系。表达式中的操作数通过运算符来进行各种操作,从而得到一个新的值或对象。运算符可以分为多种类型,如算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等,每种类型的运算符都有其特定的运算规则。与运算符相对应,表达式就有算术表达式、赋值表达式、比较表达式、逻辑表达式和位运算表达式等。
表达式中的操作数可以是字面量、变量、函数调用等。字面量可以包括整数、浮点数、复数、字符串、布尔值、None等。变量则是用于存储值的标识符,可以在程序中被赋值和修改。函数调用是指通过函数名和参数列表来调用函数,并返回函数的返回值。
表达式和运算符在Python中都有其特定的语法和优先级。Python的语法规则定义了如何构造合法的表达式,并指定了各种运算符的优先级和结合性。优先级指定了哪些运算符优先级较高,应该先进行计算,而结合性指定了在表达式中具有相同优先级的运算符应该如何结合。
虽然表达式和运算符紧密相连,但它们的含义却是不同的。表达式是用来计算和返回一个值的,而运算符则是指示表达式中各个值之间的关系的符号。比如,对于表达式3 + 4,其运算符为+,表达式的值为7。而对于运算符+本身,它并不具有任何计算能力,它只是用来指示3和4之间的加法运算的。
算术表达式
算术表达式用于执行数学运算,包括加、减、乘、除和取模等。算术表达式对应于Python中的算术运算符,以下是Python支持的算术表达式:
- 加法表达式(a + b):用于两个数字或字符串的相加。
- 减法表达式(a - b):用于两个数字的相减。
- 乘法表达式(a * b):用于两个数字相乘。
- 除法表达式(a / b):用于两个数字的相除,结果为浮点数。
- 整除表达式(a // b):用于两个数字的整除,结果为整数。
- 取模表达式(a % b):用于两个数字的取模操作,即返回两个数相除的余数。
- 指数表达式(a ** b):用于求一个数值的某次幂。
运算符 | 表达式 | 示例 |
---|---|---|
+ | a + b | 3 + 4 = 7 |
- | a - b | 7 - 3 = 4 |
* | a * b | 3 * 4 = 12 |
/ | a / b | 7 / 3 = 2.33333… |
// | a // b | 7 // 3 = 2 |
% | a % b | 7 % 3 = 1 |
** | a ** b | 2 ** 3 = 8 |
以下是算术表达式的案例:
x = 10
y = 3print(x + y) # 输出 13
print(x - y) # 输出 7
print(x * y) # 输出 30
print(x / y) # 输出 3.3333333333333335
print(x // y) # 输出 3
print(x % y) # 输出 1
print(x ** y) # 输出 1000
赋值表达式
赋值表达式用于将值赋给变量,包括简单赋值、加等于赋值、减等于赋值、乘等于赋值、除等于赋值、取模等于赋值、幂等于赋值、整除等于赋值等。赋值运算符用于给变量或者表达式赋值。以下是一些常见的赋值表达式及其使用方法:
- 简单赋值表达式(a = b):用于将b赋给a。
- 加等于赋值表达式(a += b):用于将a的值加上b的值,并将结果赋给a。
- 减等于赋值表达式(a -= b):用于将a的值减去b的值,并将结果赋给a。
- 乘等于赋值表达式(a *= b):用于将a的值乘以b的值,并将结果赋给a。
- 除等于赋值表达式(a /= b):用于将a的值除以b的值,并将结果赋给a。
- 取模等于赋值表达式(a %= b):用于将a的值对b的值取模,并将结果赋给a。
- 幂等于赋值表达式(a **= b):用于将a的值与b的值进行幂运算,并将结果赋给a。
- 整除等于赋值表达式(a //= b):用于将a的值整除b的值,并将结果赋给a。
以下是赋值表达式的案例:
a = 10 # 简单赋值
print(a)
a += 5 # 加等于赋值,等同于 a = a + 5
print(a)
a -= 3 # 减等于赋值,等同于 a = a - 3
print(a)
a *= 2 # 乘等于赋值,等同于 a = a * 2
print(a)
a /= 4 # 除等于赋值,等同于 a = a / 4
print(a)
a **= 3 # 幂等于赋值,等同于 a = a ** 3
print(a)
a //= 2 # 整除等于赋值,等同于 a = a // 2
print(a)
a %= 2 # 取模等于赋值,等同于 a = a % 2
print(a)
比较表达式
比较表达式用于比较两个操作数的大小关系,返回True或False。比较表达式使用比较运算符比较两个值。以下是Python支持的比较表达式:
- 等于表达式(a == b):用于检查a和b是否相等,如果相等则返回
True
,否则返回False
。 - 不等于表达式(a != b):用于检查a和b是否不相等,如果不相等则返回
True
,否则返回False
。 - 大于表达式(a > b):用于检查a的值是否大于b的值,如果是则返回
True
,否则返回False
。 - 小于表达式(a < b):用于检查a的值是否小于b的值,如果是则返回
True
,否则返回False
。 - 大于等于表达式(a >= b):用于检查a的值是否大于或等于b的值,如果是则返回
True
,否则返回False
。 - 小于等于表达式(a <= b):用于检查a的值是否小于或等于b的值,如果是则返回
True
,否则返回False
。
以下是比较表达式的案例:
x = 10
y = 3print(x == y) # 输出 False
print(x != y) # 输出 True
print(x > y) # 输出 True
print(x < y) # 输出 False
print(x >= y) # 输出 True
print(x <= y) # 输出 False
逻辑表达式
逻辑表达式用于将多个条件组合在一起,返回True或False。逻辑表达式使用逻辑运算符比较两个或多个表达式的布尔值。以下是Python支持的逻辑表达式:
- 逻辑与表达式(a and b):用于检查a和b是否都为
True
。 - 逻辑或表达式(a or b):用于检查a和b是否至少有一个为
True
。 - 逻辑非表达式(not b):用于对b的值取反,如果b为
False
,则返回True
,否则返回False
。
以下是逻辑表达式的案例:
x = 5
y = 3
z = 7print(x > y and z > x) # 输出 True
print(x < y or z < x) # 输出 False
print(not x < y) # 输出 True
位运算表达式
位运算表达式用于对二进制数进行操作的运算表达式,包括按位与、按位或、按位异或、按位取反等,适用于整数类型数据。下面是Python中的位运算表达式:
- 按位与运算表达式(a & b):参与运算的两个数,对应的二进制位上如果都是1,结果为1,否则为0。
- 按位或运算表达式(a | b):参与运算的两个数,对应的二进制位上如果有一个是1,结果为1,否则为0。
- 按位异或运算表达式(a ^ b):参与运算的两个数,对应的二进制位上如果只有一个是1,结果为1,否则为0。
- 按位取反运算表达式(~ b):对参与运算的数的二进制位按位取反,0变为1,1变为0。
- 左移运算表达式(a << b):将参与运算的数的二进制位向左移动指定的位数,左移后低位补0。
- 右移运算表达式(a >> b):将参与运算的数的二进制位向右移动指定的位数,右移后高位补0或补1。
以下是位运算表达式的案例:
a = 60
b = 13print(a & b) # 输出12
print(a | b) # 输出61
print(a ^ b) # 输出49
print(~a) # 输出-61
print(a << 2) # 输出240
print(a >> 2) # 输出15
总结
本文介绍了Python中常见的表达式。
在Python中,表达式(Expression)是由一系列值和操作符组合而成的代码结构,其可以用来计算和返回一个值。表达式是Python中最基本的计算单位,每个表达式都是一条语句,其会被解释器解析并计算出其结果。表达式与运算符密不可分,表达式中必然涉及到运算符,而运算符则用来指示表达式中各个值之间的关系。
运算符是表达式的组成部分之一,其用来连接表达式中的各个值,并指示它们之间的计算方式。表达式则是由运算符和值组成的,它用来描述一个具有计算结果的计算式。因此,表达式和运算符是密切相关的,二者相辅相成,共同构成Python中的计算体系。
相关文章:

【编程基础之Python】11、Python中的表达式
【编程基础之Python】11、Python中的表达式Python中的表达式表达式与运算符算术表达式赋值表达式比较表达式逻辑表达式位运算表达式总结Python中的表达式 在Python中,表达式是由操作数、运算符和函数调用等组成的语法结构,可以进行各种数学运算、逻辑判…...
华为OD机试真题Python实现【乱序整数序列两数之和绝对值最小】真题+解题思路+代码(20222023)
乱序整数序列两数之和绝对值最小 题目 给定一个随机的整数数组(可能存在正整数和负整数)nums, 请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值 并返回这两个数(按从小到大返回)以及绝对值。 每种输入只会对应一个答案。但是,数组中同一个元素不能使用两…...
字符串转换整数 (atoi)(python)
链接: https://leetcode.cn/problems/string-to-integer-atoi 题目描述: 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法…...
洛谷 P1115 最大子段和
题目链接:P1115 最大子段和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数,表示序列的长度 n。 第二行有 n 个整数ÿ…...

【Linux】-- 权限和Shell运行原理
目录 Shell的运行原理 用户切换 su - / su sudo 权限 chmod chown chgrp 八进制方法修改文件属性 目录权限 粘滞位 umask 自定义默认权限 Shell的运行原理 广义上,Linux发行版 Linux内核 外壳程序 Linux 从广义上来理解它是一个操作系统 而从狭义上…...

C++各类设计模式及实现详解
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书࿰…...

【Linux】进程理解与学习(Ⅰ)
环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹相关文章推荐:【Linux】冯.诺依曼体系结构与操作系统进程概念什么是进程?进程是什么?我们打开任务管理器可以看到有…...

认识代码之前,请先认识你自己 |《编程人生》
这是我的湛庐课程《给技术人的职场突围课》 (链接) 的一部分。 这篇文章也是 IT 女神征文活动 的一部分。 《编程人生》是一本优秀程序员的采访集,里面记录了15位世界级编程大师的故事。 我在 发刊词 里面说过,在这个书单课里&am…...
react学习笔记-5:react路由
react旧版本路由 旧版本的路由是按照组件的方式来写的 编写router/index.tsx文件 import App from "../App" import Home from "../views/Home" import About from "../views/About" import { BrowserRouter,Routes,Route } from "react…...

[Python图像处理] 使用高通滤波器实现同态滤波
使用高通滤波器实现同态滤波同态滤波基础实现同态滤波相关链接同态滤波基础 同态滤波是一种去除图像中乘性噪声的技术,常用于校正图像中的不均匀照明。根据图像形成的光照反射模型,图像 f(x,y)f(x,y)f(x,y) 可以由以下两个分量表征: 入射到…...

PyTorch深度学习:60分钟入门
PyTorch深度学习:60分钟入门 本教程的目的: 更高层级地理解PyTorch的Tensor库以及神经网络。训练一个小的神经网络来对图像进行分类。 本教程以您拥有一定的numpy基础的前提下展开 Note: 务必确认您已经安装了 torch 和 torchvision 两个包。 这是一个基于Pytho…...
C语言指针常见问题汇总
我们在学C语言时,指针是我们最头疼的问题之一,针对C语言指针,博主根据自己的实际学到的知识以及开发经验,总结了以下使用C语言指针时常见问题。 1、指针做函数参数 学习函数的时候,讲了函数的参数都是值拷贝…...

Coremail邮件系统全新上线存档邮箱功能
邮箱积累邮件太多,搜索起来又慢又麻烦! 我的重要邮件忘记下载丢失了!14天自动删除太难了! 有没有可能重要邮件自动存档,解救一下“遗忘星”人? 在我们日常工作中,邮件是最经常使用的办公工具之一…...

Python绘图
1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as pltnp.random.seed(1000) y np.random.standard_normal(10) print "y %s"% y x range(len(y)) print "x%s&q…...
【独家】华为OD机试 - 第K个最小码值的字母(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试…...
整数反转(python)
题目链接: https://leetcode.cn/problems/reverse-integer/ 题目描述: 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231,231−1][−2^{31}, 2^{31} − 1][−231,231…...

【数据结构】二叉树与堆
文章目录1.树概念及结构1.1树的相关概念1.2树的结构2.二叉树概念及结构2.1相关概念2.2特殊的二叉树2.3二叉树的性质2.4二叉树的存储结构3.二叉树的顺序结构及实现3.1二叉树的顺序结构3.2堆的概念3.3堆的实现Heap.hHeap.c3.4堆的应用3.4.1 堆排序3.4.2 TOP-KOJ题最小K个数4.二叉…...

Git图解-常用命令操作-可视化
目录 一、前言 二、初始化仓库 2.1 设置用户名与邮箱 2.2 初始化仓库 三、添加文件 四、查看文件状态 五、查看提交日志 六、查看差异 七、版本回退 八、删除文件 九、分支管理 9.1 创建分支 9.2 切换分支 9.3 查看分支 9.4 合并分支 十、文件冲突 十一、转视…...
C语言-基础了解-20-typedef
typedef 一、typedef C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BYTE; 在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写&…...

Ubuntu系统升级16.04升级18.04
一、需求说明 作为Linux发行版中的后起之秀,Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版,目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本,于2019年4月停止更新维护。很多软件支…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...