我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python——赋值语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python——赋值语句

在Python的语法模型中:
【1】.一行的结束就是终止该行语句(没有分号)。

【2】.嵌套语句是代码块并且与实际的缩进相关(没有大括号)

注意:不应该在同一段Python代码中混合使用制表符和空格!!

=======================================================================================

赋值语句

运算 解释
spam='Spam' 基本形式
spam,ham = 'yum','YUM' 元组赋值运算(位置性)
[spam,ham]=['yum','YUM'] 列表赋值运算(位置性)
a,b,c,d='spam'    序列赋值运算,通用性
a,b,c = [1,2,3]   
a,*b = 'spam' 扩展的序列解包(Python3.0)
spam = ham = 'lunch' 多目标赋值运算
spams += 42 增强赋值运算(相当于spams = spams + 42)
-------------------------------------------------------------------------------------------------------------------------------------------------------

序列赋值

>>> nudge = 1
>>> wink =2
>>> A,B = nudge,wink
>>> A,B
(1, 2)
>>> [C,D] = [nudge,wink]
>>> C,D
(1, 2)
>>> nudge = 1
>>> wink =2
>>> nudge,wink = wink,nudge
>>> nudge,wink
(2, 1)
元组赋值语句可以得到Python中一个常用的编写代码的技巧。
因为语句执行时,Python会建立临时的元组,来存储右侧变量原始的值,分解赋值语句也是一种交换两变量的值,却不需要自行创建临时变量的方式:右侧的元组会自动记住先前的变量的值。

事实上,Python中原始的元组和列表赋值语句形式,最后已经被通用化,以接受右侧可以是任何类型的序列,只要长度相等即可。
你可以将含有一些值的元组赋值给含有一些变量的列表,字符串中的字符赋值给含有一些变量的元组。

>>> [a,b,c]=(1,2,3)
>>> a,c
(1, 3)
>>> (a,b,c)='ABC'
>>> a,c
('A', 'C')
-------------------------------------------------------------------------------------------------------------------------------------------------------

高级序列赋值语句模式

可以赋值嵌套序列,而Python会根据其情况分解其组成部分,就像预期的一样:

>>> string = 'SPAM'
>>> (a,b),c=string[:2],string[2:]
>>> a,b,c
('S', 'P', 'AM')
序列解包赋值语句也会产生另一种Python常见用法,也就是赋值一系列整数给一组变量。
>>> red,green,blue = range(3)
>>> red,blue
(0, 2)
另一个会看见元组赋值语句的地方就是,在循环中把序列分割为开头和剩余的两部分,如下:
>>> L=[1,2,3,4]
>>> while L:
	front,L = L[0],L[1:]
	print(front,L)

	
1 [2, 3, 4]
2 [3, 4]
3 [4]
4 []
-------------------------------------------------------------------------------------------------------------------------------------------------------
Python3.0中的扩展序列解包

一个带有单个星号的名称,可以在赋值目标中使用,以指定对于序列的一个更为通用的匹配——一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。对于前面示例中把序列划分为其“前面”和“剩余”部分的常用编码模式,这种方法特别方便。

扩展解包的实际应用:

a匹配序列中的第一项,b匹配剩下的内容:

>>> seq = [1,2,3,4]
>>> a,*b = seq
>>> a
1
>>> b
[2, 3, 4]
b匹配序列的最后一项,a匹配最后一项之前的所有内容:
>>> *a,b=seq
>>> a
[1, 2, 3]
>>> b
4
第一项和最后一项分别赋给了a和c,而b获取了二者之间的所有内容:
>>> a,*b,c = seq
>>> a,
(1,)
>>> b
[2, 3]
>>> c
4
更一般的,不管带星号的名称出现在哪里,包含该位置的每个未赋值名称的一个列表都将赋给它:
>>> a,b,*c = seq
>>> a
1
>>> b
2
>>> c
[3, 4]
和常规的序列赋值一样,扩展的序列解包语法对于任何序列类型都有效,而不只是对列表有效:
>>> a,*b = 'spam'
>>> a,b
('s', ['p', 'a', 'm'])
>>> a,*b,c = 'spam'
>>> a,b,c
('s', ['p', 'a'], 'm')
Python3.0有了这一扩展,我们处理前面一个小节最后一个例子的列表变得容易得多了:
>>> L=[1,2,3,4]
>>> while L:
	front,*L = L
	print(front,L)

	
1 [2, 3, 4]
2 [3, 4]
3 [4]
4 []
-------------------------------------------------------------------------------------------------------------------------------------------------------
边界情况

首先,带星号的名称可能只匹配单个的项,但是,总是会向其赋值一个列表:

>>> seq
[1, 2, 3, 4]
>>> a,b,c,*d = seq
>>> print(a,b,c,d)
1 2 3 [4]
其次,如果没有剩下的内容可以匹配带星号的名称,它会赋值一个空的列表,不顾该名称出现在哪里。
>>> a,b,c,d,*e = seq
>>> print(a,b,c,d,e)
1 2 3 4 []
最后,如果有多个带星号的名称,或者如果值少了而没有带星号的名称,以及如果带星号的名称自身没有编写到一个列表中,都会引起错误
-------------------------------------------------------------------------------------------------------------------------------------------------------

一个有用的便利形式:常用的“第一个,其余的”分片编码模式可以用扩展的解包来编写

应用于for循环:

for(a,*b,c) in [(1,2,3,4),(5,6,7,8)]:
...
当在这种环境中使用的时候,在每次迭代中,Python直接把下一个值得元组分配给名称的元组,例如,在第一次循环中,就好像我们运行如下的赋值语句:
a,*b,c = (1,2,3,4)  # b gets [2,3]
=======================================================================================
多目标赋值语句

多目标赋值语句就是直接把所有提供的变量名都赋值给右侧的对象:

>>> a = b = c = 'spam'
>>> a,b,c
('spam', 'spam', 'spam')
>>> a is b is c
True
其相当于三个赋值语句:

>>> a = 'spam'
>>> b =a
>>> c = a
-------------------------------------------------------------------------------------------------------------------------------------------------------
多目标赋值以及共享引用

记住,这里只有一个对象,由三个变量共享(全都指向内存内同一对象)。
这种行为对于不可变类型而言并没有问题,但对于可变对象,我们就要小心一点:

>>> a = b = 0
>>> a += 1
>>> a,b
(1, 0)
>>> a = b = []
>>> a.append('test')
>>> a,b
(['test'], ['test'])
上例中,因为a和b引用相同的对象,通过b在原处附加值上去,而我们通过a也会看见所有的效果。

=======================================================================================
增强赋值

x+=y
x*=y
x%=y
x&=y
x^=y
x<<=y
x-=y
x/=y
x**=y
x|=y
x>>=y
x//=y

优点:
1.程序员输入减少
2.左侧只需计算一次。在完整形式x = x+y中,x出现两次,必须执行两次。因此,增强赋值语句通常执行得更快。
3.优化技术会自动选择。对于支持在原处修改的对象而言,增强形式会自动执行原处的修改运算,而不是相比来说速度更慢的复制。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python——赋值语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python——赋值语句

在Python的语法模型中:【1】.一行的结束就是终止该行语句(没有分号)。【2】.嵌套语句是代码块并且与实际的缩进相关(没有大括号)注意:不应该在同一段Python代码中混合使用制表符和空格!!======================
2023-01-31

python赋值语句的形式

python赋值语句的形式1.基本赋值>>> a='test'2.元组赋值运算(位置)>>> a,b='this','is' #写入了2个元组,只是省略了括号>>> a'this'>>> b'is'>>> x='this'>>> y=
2023-01-31

python同步赋值语句怎么写

同步赋值语句在Python中使用多个变量同时赋值的方式。可以使用逗号分隔多个变量,并将它们与相应的值一起放在赋值语句的右侧。下面是一个示例:a, b = 1, 2这表示将1赋值给变量a,将2赋值给变量b。现在,a的值为1,b的值为2。同样地
2023-09-06

python赋值语句规则有哪些

Python赋值语句的规则如下:1. 单个赋值语句:- 变量名 = 值- 例:x = 52. 多个赋值语句:- 多个变量名 = 多个值- 例:x, y = 5, 103. 交换变量的值:- 变量1, 变量2 = 变量2, 变量1- 例:x,
2023-09-13

VB.Net赋值语句怎么用

这篇文章将为大家详细讲解有关VB.Net赋值语句怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简单赋值语句简单赋值语句和以前的VB.Net赋值语句基本上没有太大的区别,只是现在VB.Net允许对变量
2023-06-17

C语言赋值语句怎么判断正误

C语言赋值语句的判断正误可以通过以下几个方面进行判断:语法错误:检查赋值语句是否符合C语言的语法规则,如是否正确使用了赋值运算符"=",变量名是否正确等。类型匹配:检查赋值语句中的变量类型是否匹配,例如将一个整型值赋给了一个字符型变量,或者
2023-10-26

怎么用sql语句给变量赋值

在SQL中,可以使用SET语句来给变量赋值。具体语法如下:SET @变量名 = 值;例如,如果你想给变量@myVariable赋值为10,可以使用以下语句:SET @myVariable = 10;在后续的SQL语句中,可以使用@m
2023-10-23

python的赋值语句和基本输入输出怎么实现

这篇文章主要介绍“python的赋值语句和基本输入输出怎么实现”,在日常操作中,相信很多人在python的赋值语句和基本输入输出怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python的赋值语句和基
2023-06-21

Java赋值语句执行无效如何解决

如果Java赋值语句执行无效,有几个可能的原因和解决方法:检查变量类型:确保被赋值的变量类型与赋值的值类型匹配。如果类型不匹配,可以尝试使用类型转换方法进行转换。检查变量的作用域:确保变量的作用域正确,以便在赋值语句执行时能够访问到变量。如
2023-10-27

VB.NET赋值语句的基本概念是什么

这期内容当中小编将会给大家带来有关VB.NET赋值语句的基本概念是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。VB.NET编程语言是由微软推出的一个新的平台技术,可以为开发人员打造一个安全稳定的开发
2023-06-17

C# 中怎么利用for循环语句为数组赋值

本篇文章为大家展示了C# 中怎么利用for循环语句为数组赋值,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C# for循环语句为数组赋值是C#编程中比较基础的一部分,通过C# for循环语句遍历一个
2023-06-17

Python学习教程:0基础学Python?手把手教你从变量和赋值语句学

这篇Python学习教程将手把手教你入门学Python,从变量和赋值语句学起,前面也有专门给大家出过相关的详细教程,有需要的伙伴,可以找一下前面的教程!导读:在本文中,你会学到如何处理数字、定义与使用变量和常量,以及编写使用这些数据类型执行
2023-06-02

2.13 Python 赋值机制

先看一个例子:In [1]:x = [1, 2, 3]y = xx[1] = 100print y[1, 100, 3]改变变量x的值,变量y的值也随着改变,这与Python内部的赋值机制有关。简单类型先来看这一段代码在Python中的执行
2023-01-31

go语言如何赋值

go语言赋值的方法:1、使用“=”运算符进行赋值,其语法为“变量名 = 表达式”;2、go语言支持多个变量同时进行赋值,其语法为“变量1,变量2 = 表达式1,表达式2”;3、go语言支持多重赋值,先定义一个“foo”函数,返回两个整数,再
2023-07-12

c语言语法如何赋值

在 c 语言中,赋值操作使用 = 运算符将值存储到变量。赋值类型包括:直接赋值:将值直接存储到变量。间接赋值:通过指针或引用存储值。复合赋值:在存储值前对变量执行操作。C 语言中的赋值赋值操作在 C 语言中用于将值从一个变量或表达式存储到
c语言语法如何赋值
2024-05-22

JS技巧之一行赋值语句能玩出多少花样

很多前端只会谢谢页面,一让他们接触js,就非常害怕,下面这篇文章主要给大家介绍了关于JS技巧之一行赋值语句能玩出多少花样的相关资料,需要的朋友可以参考下
2022-11-13

Python List的赋值方法

Python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。一、赋值        在python中,对象的赋值就是简单的对象引用,这点和C++不同。如下:        a
2023-01-31

python语句--条件语句

一、print语句、import语句、赋值语句。1.1、print语句:输出>>> print(2,3,4)    //python2.x(2, 3, 4)>>> >>> print(1,2,3)    //python3.x1 2 3>>
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录