《Python基础教程》 读书笔记 第五章(上)条件语句
5.1 print和import的更多信息
5.1.1使用逗号输出
打印多个表达式也是可行的,只要将它们用逗号隔开就好:
>>>print'age:',42
age: 42
要同时输出文本和变量值,却又不希望使用字符串格式化:
>>> name='Gumby' >>> salutation='Mr.' >>> greeting='Hello.' >>>print greeting,salutation,name Hello. Mr. Gumby
如果在结尾处加上逗号,那么接下来的语句会与前一条语句在同一行打印:
print 'Hello,',
print 'world!'Hello, world!
5.1.2 把某件事作为另一件事导入
从模块导入函数:
import somemodule
from somemodule import somefunctian
from somemodule import somefunction,anotherfunction,yetanotherfunction
from somemodule import*
可以在语句末尾增加一个as子句,在该子句后给出名字,或为整个模块提供别名:
>>> import math as foobar >>> foobar.sqrt(4) 2.0
也可以为函数提供别名:
>>> from math import sqrt as foobar >>> foobar(4) 2.0
5.2赋值
5.2.1序列解包
多个赋值操作可以同时进行:
>>> x,y,z=1,2,3 >>> print x,y,z 1 2 3 >>> x,y=y,x >>> print x,y,z 2 1 3
序列解包(sequence unpacking)或可选代解包--将多个值的序列解开,然后放到变量的序列中:
>>> values=1,2,3 >>> values (1, 2, 3) >>> x,y,z=values >>> x 1
当函数或者方法返回元组(或者其他序列或可迭代对象)时,这个特性尤其有用。假设需要获取(和删除)字典中任意的键-值对,可以使用popitem方法,这个方法将键-值作为元组返回。那么这个元组就可以直接赋值到两个变量中:
>>> scoundrel={'name':'robin','girlfriend':'marion'} >>> key,value=scoundrel.popitem() >>> key 'girlfriend' >>> value 'marion'
它允许函数返回一个以上的值并且打包成元组,然后通过一个赋值语句很容易进行访问。所解包的序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致,否则Python会在赋值时引发异常:
>>> x,y,z=1,2 Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: need more than 2 values to unpack
5.2.2链式赋值
链式赋值(chained assignment)是将同一个值赋给多个变量的捷径。
x=y=somefunction()
和下面语句的效果是一样的:
y=somefunction()
x=y
注意上面的语句和下面的语句不一定等价:
x=somefunction()
y=somefunction()
5.2.3增量赋值
这里没有将赋值表达式写为x=x+1,而是将表达式运算符放置在赋值运算符的左边,写成x+=1。这种写法叫做增量赋值(augmented assignment),对于*、/、%等标准运算符都适用.
>>> x=2 >>> x+=1 >>> x*=2 >>> x 6
5.3语句块:缩排的乐趣
语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进语句即可创建语句块。使用tab字符也可以缩进语句块。Python将一个tab字符解释为到下一个tab字符位置的移动,而一个tab字符位置为8个空格,但是标准且推荐的方式是只用空格,尤其是在每个缩进需要4个空格的时候。
5.4条件和条件语句
5.4.1这就是布尔变量的作用
下面的值在作为布尔表达式的时候,会被解释器看作假(false}:
False None 0 ”” () [] {}
换句话说,也就是标准值False和None、所有类型的数字0(包括浮点型、长整型和其他类型)、空序列(比如空字符串、元组和列表)以及空的字典都为假。其他的一切都被解释为真,包括特殊值True.
5.4.2 条件执行和if语句
if语句,它可以实现条件执行。即如果条件 (在if和冒号之间的表达式)判定为真,那么后面的语句块就会被执行。如果条件为假,语句块就不会被执行.
name=raw_input('what is your name?:')
if name.endswith('jack'):
print 'hello, Mr.jack'
5.4.3 else子句
name=raw_input('what is your name?:')
if name.endswith('jack'):
print 'hello, Mr.jack'
else:
print 'hello, stranger'
5.4.4 elif子句
如果需要检查多个条件,就可以使用elif,它是“else if的简写,也是if和else子句的联合使用----也就是具有条件的else子句。
num=input('enter a number:')
if num>0:
print 'the number is positive'
elif num<0:
print 'the number is negtive'
else:
print 'the number is zero'
5.4.5更复杂的条件
1.比较运算符
2.相等运算符
如果想要知道两个东西是否相等,应该使用相等运算符,即两个等号==
3. is:同一性运算符
>>> x=y=[1,2,3] >>> z=[1,2,3] >>> x==y True >>> x==z True >>> x is y True >>> x is z False
x和z相等却不等同,为什么呢?因为is运算符是判定同一性而不是相等性的。变量x和y都被绑定到同一个列表上,而变量z被绑定在另外一个具有相同数值和顺序的列表上。它们的值可能相等,但是却不是同一个对象。
4.in:成员资格运算符
5.字符串和序列比较
6.布尔运算符
5.4.7断言
如果需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert语句就有用了,它可以在程序中置入检查点。
>>> age=10 >>> assert 0<age<100 >>> age=-1 >>> assert 0<age<100 Traceback (most recent call last): File "<input>", line 1, in <module> AssertionError
《Python基础教程》 读书笔记 第五章(上)条件语句的更多相关文章
- SQL Server2012 T-SQL基础教程--读书笔记(1-4章)
SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...
- SQL Server2012 T-SQL基础教程--读书笔记(5-7章)
SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5. ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 《Python基础教程读书笔记》
第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...
- Python基础教程 读书笔记(2)第二章 列表和元组
2.1序列概览 列表和元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可能会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适.使用后者的理由通常是 ...
- Python基础教程学习笔记:第二章 列表和元组
1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
- 《Linux内核设计与实现》读书笔记——第五章
<Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...
随机推荐
- classname.this 和 this的使用场景
今天在写代码时,发现在写了一个内部类,而在内部类中需要调用外部类的实例方法,直接使用this调用发现调用的不是外部类而是内部类,于是查找资料原来需要使用外部类的classname.this这样的调用, ...
- macbook pro 配置jdk,maven环境变量
https://blog.csdn.net/vvv_110/article/details/72897142(1)下载jdk安装包,进行安装,maven安装包,进行解压 (2)改写环境变量的配置文件/ ...
- noip数学
一.取模运算 (1)定义 给定一个正整数p和一个整数n 一定存在此等式 n=k*p+r;其中k,r是整数,r大于等于0小于p 称k是n除以p的商,r为n除以p的余数 说明:同余式 正整数a,b对p取模 ...
- 量子纠缠1——量子比特、Bell态、EPR佯谬
量子纠缠是量子物理的基本性质,他描述的是:当几个粒子相互作用后,无法单独描述各个粒子的性质,只能整体描述,本文主要介绍两个量子比特之间的纠缠. 量子比特(Qubit) 量子比特是量子计算的基本单位,就 ...
- pl/sql 远程连接oracl服务器方法
在Oracle/network/admin中的tnsnames.ora中添加对应的如下代码: LISTENER_ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...
- 任务37:生成 JWT Token
实现给用户办法token 默认是可以访问valuesController的,返回的状态是200 http://localhost:5429/api/values 返回的状态码是200 把ValuesC ...
- Gym 100962G Green Day (找规律)
题意:你用k 个生成树构成一个完全图. 析:n 个点的完全图有n(n-1)/2个边,一个生成树有n-1个边,你有k 个生成树 即边数等于 K(n-1) ,即 n(n-1)/2 == k(n-1) ...
- linux C之access函数(转载)
转自:http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html access():判断是否具有存取文件的权限 相关函数 stat,open,chm ...
- bzoj 4530: [Bjoi2014]大融合【LCT】
新姿势,一般来讲LCT只能维护splay重边里的数据,而这里要求维护整颗子树的size 多维护一个sq表示当前点轻儿子的size和,si表示包括轻重边的整颗子树的大小 然后需要改sq的地方是link和 ...
- bzoj 1385: [Baltic2000]Division expression【脑洞】
加括号再去括号就是除变加,显然尽可能多的除变加是最优的,然后发现唯一不能变成乘数的是第二个数,所以把其他数乘起来mod第二个数,如果是0就是YES,否则说明最后不能除尽,就是NO #include&l ...