在上一篇文章中,我们介绍了 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 语句一起使用,但它也可以和 forwhile 循环一起使用。
对于 forwhile 循环,如果循环正常结束 (当中断语句不导致循环退出) 时,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 语句深入的更多相关文章

  1. 《Python学习手册 第五版》 -第12章 if测试和语法规则

    本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...

  2. Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...

  3. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  4. [python学习手册-笔记]003.数值类型

    003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  5. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  6. 《Python学习手册》读书笔记【转载】

    转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...

  7. [python学习手册-笔记]002.python核心数据类型

    python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...

  8. 《Python学习手册 第五版》 -第13章 while循环和for循环

    上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...

  9. 《Python学习手册 第五版》 -第11章 赋值、表达式和打印

    上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...

随机推荐

  1. jQuery Validate 无法验证 chosen-select元素

    chosen-select元素执行了chosen()方法后,为select元素加上了style="display: none;"进行隐藏,然后重新构造了一个看起来像select的下 ...

  2. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  3. PTA练习题之7-1 出租车计价(15 分)

    7-1 出租车计价(15 分) 本题要求根据某城市普通出租车收费标准编写程序进行车费计算.具体标准如下: 起步里程为3公里,起步费10元: 超起步里程后10公里内,每公里2元: 超过10公里以上的部分 ...

  4. postgresql+postgis+pgrouting实现最短路径查询(3)--流程图

    项目结束,做一个项目的总结汇报,就把最短路径查询的实现流程图画了一下,现在补出来:

  5. 警告: Request method 'POST' not supported的原因之一

    警告: Request method 'POST' not supported是经常遇到的,这里记录一下我经常遇到的一种情况,以免忘记. 我使用拦截器拦截所有请求,然后列出不拦截的请求.有时候由于自己 ...

  6. 问题解决:java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date

    问题描述: 数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00” 程序使用select 语句从中取数据时出现以下异常: Java.sql.SQLE ...

  7. 蓝牙BLE数据包格式汇总

    以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为:定向广播包和非定向广播包 ...

  8. 4springboot:日志(下)

    1.指定配置  位置: 给类路径下放上每个日志框架自己的配置文件即可: SpringBoot就不使用他默认配置的了 使用什么日志则配置什么文件以及注意文件名 自定义: <?xml version ...

  9. 【转】maven命令-P 参数引发的思考

    序言: maven 命令:clean package -Dmaven.test.skip=true -P product 1.命令很简单是:清class文件,打包构建,跳过测试,注意最后一个 -P p ...

  10. RabbitMQ之五种消息模型

    首先什么是MQ MQ全称是Message Queue,即消息对列!消息队列是典型的:生产者.消费者模型.生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息.因为消息的生产和消费都是异步的,而 ...