Python学习手册之元组拆包、三元运算符和 else 语句深入
在上一篇文章中,我们介绍了 Python 之禅、 Python 编程规范和函数参数,现在我们介绍 Python 的元组拆包、三元运算符和对 Python 的 else 语句深入讲解。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10052453.html
元组拆包
元组拆包允许你将可迭代中 (大多数是元祖) 的每个项分配给一个变量。
nums = (1,2,3)
a,b,c = nums
print(a)
print(b)
print(c)
运行结果:
>>>
1
2
3
>>>
这也可用于交换变量,方法是 a, b = b, a。由于b, a 在右边隐式形成元组 (b, a),然后使用拆包技术。
以星号 (*) 作为前缀的变量接受其他变量遗留的所有可迭代值。
a, b, *c, d = [1,2,3,4,5,6,7,8,9]
print(a)
print(b)
print(c)
print(d)
运行结果:
>>>
1
2
[3, 4, 5, 6, 7, 8]
9
>>>
三元运算符
条件表达式提供 if 语句的功能,同时代码简洁。尽量避免过度使用,因为它很容易降低可读性,但是在分配变量时会经常用到。条件表达式被称为三元运算符。
a = 1
b = 2
h = ""
h = a-b if a>b else a+b
print(h)
运行结果:
>>>
3
>>>
三元操作符检查条件判断并返回相应的值。如果条件为真,执行 a - b。如果 a 小于 b,则执行 a + b。
x = int(input("输入第一个数:"))
y = int(input("输入第二个数:"))
z = int(input("输入第三个数:"))
#三目运算符的第一种写法
print((x if (x>y) else y) if ((x if (x>y) else y)>z) else z)
#三目运算符的第二种写法
a=(x if (x>y) else y)
print(a if (a>z) else z)
运行结果:
>>>
输入第一个数:4
输入第二个数:5
输入第三个数:8
8
8
>>>
从这两个列子可以看出用Python的三目运算符用简短的代码完成需要完成的功能。
else 语句深入
else 语句通常与 if 语句一起使用,但它也可以和 for 或 while 循环一起使用。
对于 for 或 while 循环,如果循环正常结束 (当中断语句不导致循环退出) 时,else 内的代码块被调用。
for i in range(0, 10):
if i > 10:
break
else:
print("hello world 1") for i in range(0, 10):
if i < 1:
break
else:
print("hello world 2")
运行结果:
>>>
hello world 1
>>>
第一个 for 循环执行正常,导致打印出 hello world 1。第二个代码由于调用了 break 那么 else 语句没有被调用。
else 语句同样可以用在 try/except 语句里。在这种情况下,只有在 try 语句没有异常时,才执行 else 的代码。
try:
a = 1/4
except Exception as e:
print(e)
else:
print(a) try:
a = 1/0
except Exception as e:
print(e)
else:
print(a)
运行结果:
>>>
0.25
division by zero
>>>
“在人生的竞技场,荣誉和奖赏眷顾那些品行高尚的人。” -- 亚里士多德
Python学习手册之元组拆包、三元运算符和 else 语句深入的更多相关文章
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘
Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...
- Python学习手册(第4版)PDF高清完整版免费下载|百度云盘
Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...
- [python学习手册-笔记]003.数值类型
003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- [python学习手册-笔记]002.python核心数据类型
python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...
- 《Python学习手册 第五版》 -第13章 while循环和for循环
上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...
- 《Python学习手册 第五版》 -第11章 赋值、表达式和打印
上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...
随机推荐
- 爬虫入门之反反爬虫机制cookie UA与中间件(十三)
1. 通常防止爬虫被反主要有以下几个策略 (1)动态设置User-Agent(随机切换User-Agent,模拟不同的浏览器) 方法1: 修改setting.py中的User-Agent # Craw ...
- Linux(centos7)安装maven3.5
1.创建一个maven文件夹 [root@MiWiFi-R3-srv ~]# mkdir /usr/local/maven 1 2.上传apache-maven-3.5.0-bin.tar.gz到/u ...
- 四、CentOS 安装mariadb——Linux学习笔记
A)安装及配置 下载mariadb: yum -y install mariadb-server mariadb 开启mariadb服务: systemctl start mariadb.servic ...
- QT控件大小的方法
http://blog.csdn.net/liang19890820/article/details/51986284
- June 25th 2017 Week 26th Sunday
There is always that one song that brings back old memories. 总有那么一首歌,让你想起那些旧的回忆. There are seveal so ...
- ZT ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01
ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01 分类: 嵌入式 android framework 里java调用native,使用JNI机制,ja ...
- tq2440 jlink连接问题
由于工作转向做嵌入式linux平台上的手台通信协议开发,所以想系统的学习一下嵌入式linux的开发流程. 向同事借了tq2440的板子来玩,一边看书,一边做实验,看的书是<嵌入式linux基础教 ...
- 零售企业ERP系统慢
数据库优化案例 https://www.cnblogs.com/double-K/p/9210982.html 写在前面 记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是 ...
- 牛客网多校训练第一场 F - Sum of Maximum(容斥原理 + 拉格朗日插值法)
链接: https://www.nowcoder.com/acm/contest/139/F 题意: 分析: 转载自:http://tokitsukaze.live/2018/07/19/2018ni ...
- 牛客网多校训练第一场 B - Symmetric Matrix(dp)
链接: https://www.nowcoder.com/acm/contest/139/B 题意: 求满足以下条件的n*n矩阵A的数量模m:A(i,j) ∈ {0,1,2}, 1≤i,j≤n.A(i ...