Python系列(11)—— 赋值运算符

在Python编程中,赋值运算符用于将右侧的值赋给左侧的变量。Python提供了多种赋值运算符,它们允许我们在赋值的同时执行一些基本的数学运算。这些赋值运算符包括+=-=*=/=%=**=//=等。

1. 基本赋值运算符(=

最基本的赋值运算符是=,它直接将右侧的值赋给左侧的变量。

# 使用基本赋值运算符
x = 10
print(x)  # 输出: 10

2. 加法赋值运算符(+=

+=运算符将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。

# 使用加法赋值运算符
x = 5
x += 3  # 等价于 x = x + 3
print(x)  # 输出: 8

3. 减法赋值运算符(-=

-=运算符从左侧的变量中减去右侧的值,并将结果赋给左侧的变量。

# 使用减法赋值运算符
x = 10
x -= 4  # 等价于 x = x - 4
print(x)  # 输出: 6

4. 乘法赋值运算符(*=

*=运算符将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。

# 使用乘法赋值运算符
x = 2
x *= 3  # 等价于 x = x * 3
print(x)  # 输出: 6

5. 除法赋值运算符(/=

/=运算符将左侧的变量除以右侧的值,并将结果赋给左侧的变量。

# 使用除法赋值运算符
x = 10
x /= 2  # 等价于 x = x / 2
print(x)  # 输出: 5.0

6. 取模赋值运算符(%=

%=运算符计算左侧的变量除以右侧值的余数,并将结果赋给左侧的变量。

# 使用取模赋值运算符
x = 10
x %= 3  # 等价于 x = x % 3
print(x)  # 输出: 1

7. 幂赋值运算符(**=

**=运算符将左侧的变量提高到右侧值的幂,并将结果赋给左侧的变量。

# 使用幂赋值运算符
x = 2
x **= 3  # 等价于 x = x ** 3
print(x)  # 输出: 8

8. 地板除赋值运算符(//=

//=运算符执行整数除法,将左侧的变量除以右侧的值并向下取整,然后将结果赋给左侧的变量。

# 使用地板除赋值运算符
x = 10
x //= 3  # 等价于 x = x // 3
print(x)  # 输出: 3

这些赋值运算符提供了一种简洁的方式来更新变量的值,而无需每次都写出完整的赋值语句。它们特别适用于在循环或条件语句中连续更新变量值的情况。

在循环中使用赋值运算符:

# 使用赋值运算符在循环中
total = 0
for i in range(1, 6):total += i  # 等价于 total = total + iprint(total)  # 输出: 15

在这个例子中,我们使用了+=赋值运算符来累加range(1, 6)中的数字,并将结果存储在total变量中。

9. 链式赋值

链式赋值允许你一次性给多个变量赋相同的值。

# 链式赋值
a = b = c = 10
print(a)  # 输出: 10
print(b)  # 输出: 10
print(c)  # 输出: 10

10. 多重赋值

多重赋值允许你一次性给多个变量赋不同的值。

# 多重赋值
x, y, z = 1, 2, 3
print(x)  # 输出: 1
print(y)  # 输出: 2
print(z)  # 输出: 3

11. 增量赋值与赋值表达式

从Python 3.8开始,引入了“海象运算符”(walrus operator):=,这是一个赋值表达式运算符,允许在表达式中进行赋值,并返回赋值的值。

# 使用海象运算符
value := 10  # 这是一个赋值表达式,value被赋值为10,表达式的结果是10
print(value)  # 输出: 10# 在循环中使用海象运算符
while (n := input("Enter a number (or 'q' to quit):")) != 'q':print(f"You entered: {n}")

在上面的循环中,n := input(...) 是一个赋值表达式,它将input函数的结果赋给n,并且这个赋值表达式的结果是n的值,可以直接用于while条件判断。

12. 解构赋值

解构赋值是一种更高级的赋值方式,它允许你从数据结构(如列表、元组、字典、集合等)中解包值,并将它们赋给多个变量。

# 从列表中解构赋值
first, second, *rest = [1, 2, 3, 4, 5]
print(first)  # 输出: 1
print(second)  # 输出: 2
print(rest)  # 输出: [3, 4, 5]# 从字典中解构赋值
person = {'name': 'Alice', 'age': 30}
name, age = person['name'], person['age']
print(name)  # 输出: Alice
print(age)  # 输出: 30

解构赋值可以简化代码,并且使代码更易于阅读和理解。

示例:使用链式赋值和多重赋值

下面是一个使用链式赋值和多重赋值的例子,演示如何在函数返回多个值时同时给多个变量赋值。

# 定义一个返回多个值的函数
def get_values():return 10, 20, 30# 使用链式赋值和多重赋值接收函数返回的值
a, b, c = get_values()print(a)  # 输出: 10
print(b)  # 输出: 20
print(c)  # 输出: 30

在这个例子中,get_values函数返回了一个包含三个值的元组,我们通过多重赋值将这三个值分别赋给了abc三个变量。

总结

Python的赋值运算符提供了一种强大而灵活的方式来更新变量的值。通过结合使用基本的赋值运算符、链式赋值、多重赋值、增量赋值以及解构赋值,你可以编写出更加简洁、高效和易读的代码。同时,新引入的海象运算符也为赋值操作提供了更多的可能性。

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

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

相关文章

【C++】【类和对象】拷贝构造函数

1.拷贝构造函数的特性: 1.拷贝构造函数用来构造一个与已存在对象一摸一样的对象 它只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。 2.拷贝构造函数是构造函数的一种重…

nginx简单配置四种携带/时的拼接关系

一、代理静态文件 1、 当 location 尾部有 /,且代理地址尾部也有 / 时:(常用) location /test11/ {root /usr/local/nginx/html/; } 则访问 http://ip/test11/aaa,实际访问的是/usr/local/nginx/html/aaa2、 当…

Flask 入门7:使用 Flask-Moment 本地化日期和时间

如果Web应用的用户来自世界各地,那么处理日期和时间可不是一个简单的任务。服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般使用协调世界时(UTC)。不过用户看到 UTC 格式的时间会感到困惑,他们…

数据库-MySQL 实战项目——房屋租赁管理系统数据库设计与实现(附源码)

一、前言 需求: 房屋租赁管理系统主要完成功能为: 房屋信息管理出租者信息管理求租者信息管理房屋出租信息管理系统管理(员工信息管理、绩效管理等) 备注: 1. 一个房屋有多个求租者。(一对多&#xff0…

【10秒极速开服】幻兽帕鲁全自动部署服务器教程

幻兽帕鲁太火了,官方palworld服务器不稳定?不如自建服务器,基于腾讯云幻兽帕鲁服务器成本32元全自动部署幻兽帕鲁服务器,超简单有手就行,全程自动化一键部署10秒钟即可搞定,无需玩家手动部署幻兽帕鲁游戏程…

Agile Initiative, Epic, and Story/Task

Stories, also called “user stories,” are short requirements or requests written from the perspective of an end user. stories are something the team can commit to finish within a one- or two-week sprint.Epics are large bodies of work that can be broken do…

设计模式总结复盘-面试篇-20题必看

软件设计模式是前辈们代码设计经验的总结,可以反复使用。设计模式共分为3大类,创建者模式(6种)、结构型模式(7种)、行为型模式(11种),一共24种设计模式,软件设计一般需要满足7大基本原则。 目录 面试题总结复盘篇 1.1、介绍以下…

网络流问题求解及Gurobi+Python代码(最大流/最小成本网络流/多商品网络流)

目录 1.最大流问题 1.1 问题描述 1.2 Ford-Fulkerson算法 1.3 Gurobi测试 2.最小成本网络流问题 2.1 问题描述 2.2 供应链规划案例 3.多商品网络流问题 3.1 问题描述及模型 3.2 Gurobi测试 Gurobi求解代码:GitHub - bujibujibiuwang/Network-Flow-Probl…

机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧

文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程 1.K-近邻算法思想 假如你有一天来到北京…

代码随想录算法训练营第42天 | 01背包问题理论基础 + 416.分割等和子集

今日任务 01背包问题,你该了解这些! 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集 01背包问题 二维数组 理论基础:代码随想录 题目链接:题目页面 01 背包 有n件物品和一个最多能背重量为w 的…

【C++】组合数

题目描述 组合数表示的是从n个物品中选出m个物品的方案数。举个例子,从 (1, 2, 3) 三个物品中选择两个物品可以有 (1, 2),(1, 3),(2, 3) 这三种选择方法。 根据组合数的定义,我们可以给出计算组合数的一般公式: 其中…

Qt::invokeMethod

Qt::invokeMethod 是 Qt 框架中的一个函数,用于在指定的对象上调用指定的方法。这个函数通常用于实现跨线程的方法调用,因为在 Qt 中,直接在不同线程中调用对象的方法是不安全的。invokeMethod 可以确保方法的调用是在目标对象所在的线程上执…

常用的数据库SQL语句使用大全

SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系数据库管理系统的标准编程语言。SQL语句可以执行各种操作,如查询、更新、插入和删除数据库中的数据。下面详细介绍SQL语句的分类和使用方法: 1. S…

Nginx反向代理实现与配置

目录 Nginx 反向代理Nginx反向代理配置 Nginx 反向代理 Nginx 可以充当反向代理服务器,将客户端请求转发到后端的多个服务器上,并将响应返回给客户端。 Nginx作为反向代理服务器的工作原理如下: 客户端发送请求:当客户端&#…

C++ 日期计算器

日期计算器 概要 Date类的规划Date类的实现Date 构造函数Date 拷贝构造函数~Date 析构函数GetMonthDay 求某年某月的天数operator 赋值操作符重载operator 加等操作符重载operator 加号操作符重载operator- 减等操作符重载operator- 减法操作符重载 (日期 - 天数&am…

2023年第四季度硬盘容量强势增长9%

在2023年第四季度(CQ4 23),硬盘驱动器(HDD)市场的总容量出货量环比增长9%,达到214EB,而单位出货量保持在2900万块不变。其中,近线存储(Nearline)硬盘的容量出…

Java基于微信小程序的驾校报名小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

JVM双亲委派机制

双亲委派模型是一种组织类加载器之间关系的一种规范,他的工作原理是:如果一个类加载器收到了类加载的请求,它不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,这样层层递进,最终所有的加载请求都被传到最顶层的启动类加载器中,只有当父类加载器无法完成这个加载…

基于SSM的实习管理系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的实习管理系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Spri…

Verilog刷题笔记19

题目: A common source of errors: How to avoid making latches When designing circuits, you must think first in terms of circuits: I want this logic gate I want a combinational blob of logic that has these inputs and produces these outputs I want…