Python赋值--序列解包_残剑孤影的博客-程序员宅基地

技术标签: Python  

Python有一种一次给多个变量赋值的方法,称为序列解包其形式如下:

>>> x, y, z = 1, 2, 3
>>> print x, y, z
1 2 3
>>> 

使用这种方式赋值,相对于一些高级语言如C++,Java等,可以让一些操作很简单:

1. 两个变量交换

>>> x, y = 1, 2
>>> print x, y
1 2
>>> <span style="color:#ff0000;">x, y = y, x</span>
>>> print x, y
2 1
>>> 

2. Fibonacci数列的运算

>>> def fib(count):
	a, b = 0, 1
	l = list()
	for i in range(count):
		if 0==i:
			l.append(a)
		else:
			l.append(b)
			<span style="color:#ff0000;">a, b = b, a+b</span>
	return l

>>> l = fib(0)
>>> l
[]
>>> l = fib(1)
>>> l
[0]
>>> l = fib(2)
>>> l
[0, 1]
>>> l = fib(10)
>>> l
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> 

当然,与Fibonacci类似的数列预算,也可以使用类似的方法进行编写


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AlexWoo0501/article/details/46945241

智能推荐

oracle的贷项通知单,Oracle EBS Interface/API(4)--AR贷项通知单_春华秋实的夏的博客-程序员宅基地

转自:http://blog.csdn.net/chenxianping/article/details/49513683系统版本:RDBMS : 9.2.0.6.0Oracle 应用产品 : 11.5.10.2上篇文章:Oracle EBS AR 客户返利和坏帐准备事务处理类型设置, 用户提到“贷项-坏帐准备”和“贷项-客户返利”事务处理要做AR中操作,根据客户需求可用用AR事务处理接口或API..._oracle ar 事务处理贷项

CSS 文本超过部分显示省略号,解决数字或英文不换行问题_css 溢出换行省略号 为什么单词不行-程序员宅基地

单行文本:.singleText{ //记得一定要给div宽度 width:200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}多行文本:.moreText{ //记得一定要给div宽度 width:200px; white-space: normal; overflow: hidden; text-overflow: ellipsis; dis._css 溢出换行省略号 为什么单词不行

phoenix索引-程序员宅基地

1. 介绍二级索引这个特性应该是大部分用户引入Phoenix主要考虑的因素之一。HBase因其历史原因只支持rowkey索引,当使用rowkey来查询数据时可以很快定位到数据位置。现实中,业务查询需求条件往往比较复杂,带有多个查询字段组合,如果用HBase查的话,只能全表扫描进行过滤,效率很低。而Phoenix支持除rowkey外的其它字段的索引创建,即二级索引,查询效率可大幅提升。为什...

(一)欧拉积分-程序员宅基地

欧拉是数学家心目中的英雄,欧拉积分具有重要的应用。先给出欧拉积分的性质以便为进入分数阶微积分打下基础。1.1 $\beta$函数定义$$B(\alpha,\beta)=\int_{0}^{1}x^{\alpha-1}(1-x)^{\beta-1}dx$$易看出$0$和$1$为奇点,积分在$\alpha>0,\beta>0$时收敛.a.对称性$$B(\alpha,\beta)=B...

jmeter beanShell断言-程序员宅基地

用户可以在jmeter- “beanShell断言”中自定义断言。自由灵活的用脚本实现自己的断言 beanShell断言接口介绍 在beanShell中直接可以调用的变量,无需加前缀。 1.log 打印日志 log.info(“在控制台打印日志”); 2.SampleResult 获取SampleResult对象,可以通过这个对象获取想要的信息 3.Response 获取Response对象,可以...

随便推点

内存管理(一)&nbsp;ptmalloc基础知识_malloc 什么时候不支持多线程-程序员宅基地

本文讨论了:1.ptmalloc的简单概念2.各种chunk3.bin数组以及brk和mmap 1.ptmalloc的简单概念 glibc在开始的时候malloc是不支持多线程的,但是在glibc_2.3x中集成了ptmalloc2,也就是平常使用的malloc。这就实现了对多线程编程的支持。本文将讨论ptmalloc的整个malloc(),free_malloc 什么时候不支持多线程

wpf Canvas 对鼠标事件不响应的解决办法-程序员宅基地

据说是把背景色设上就可以了心中是不是有十万只哪啥奔腾而过。。。。

USART协议-程序员宅基地

一.串口通讯协议对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输,eg:RS232、TTL高低电平协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准,eg:串口数据包:起始位,数据位(8bit)、校验位、停止位二.物理层RS-232标准主要规定了信号的用途、通讯接口以及信..._usart协议

细数程序员出身的互联网大佬,你会是下一个他吗?-程序员宅基地

很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以加小编弄的一个C语言交流基地,大家可以进入交流基地:565122788,里面新手入门资料,可以说从零到项目实战,都是可以免费获取的,还有程序员大牛为各位免费解答问题,热心肠的小伙伴也是蛮多的。不失为是一个交流的的好...

esp8266 1306 dht111 反向显示_flipscreenvertically_sxper的博客-程序员宅基地

#include <Wire.h>#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#include <Adafruit_Sensor.h>#include <DHT.h>这里有个问题。*/sda scl 定义是需要修改的,这里需要根据你选择的开发板型号去修改对应目录的pins_arduino.h #define PIN_WIRE_SDA (2)#de.._flipscreenvertically

Mysql添加假数据。_数据库创建新假数据_老丁学抓娃的博客-程序员宅基地

我们工作中需要在表中放入假数据用于测试,也可以用于学习索引的时候测试性能! 首先打开navicat创建一个测试表插入一些数据INSERT INTO student (name, id, phone) VALUES ('test_1', '13000000000', 87),('test_2', '13000000001', 81);然后执行语句INSERT INTO student (name, id, phone) select name, id, phone from student _数据库创建新假数据