在学习if条件句以前我们先说点别的
你知道,print用于打印一个表达式,这个表达式要么是字符串,要么将自动转换成字符串。实际上,你可以同时打印多个表达式,条件是用逗号分隔它们:
>>> print('age:',42)
age: 42
如你所见,在参数之间插了一个空格字符。在你要合并文本和变量值,而又不想使用字符串设置功能时,这种行为很有帮助。
这个空格参数可以改成任意字符都可以,利用参数sep。
>>> print('age:',42,sep='')
age:42
可以看到当设置设为空字符串的时候 空格消失了。
你还可自定义结束字符串,以替换默认的换行符。例如,如果将结束字符串指定为空字符串,以后就可以继续打印到当前行。
>>> print('hello,',end=''),print("world")
hello,world
从模块带入时,通常使用 import somemodule
或者使用
from somemodule import some function
或者
from somemodule import *
仅当你确定要导入模块的一切时,才使用最后一种方式。如果有俩个模块,它们都包含open,该如何办,你可以使用第一种方式导入这俩个模块,并像下面这样调用函数:
module1.open()
module2.open()
但 还有一种办法:在语句末尾添加as子句并指定别名,下面是一个导入整个模块并给它指定别名的例子:
>>> import math as p
>>> p.sqrt(4)
2.0
即使是不起眼的赋值语句也隐藏一些小窍门
赋值语句你见过很多,有的给变量赋值,还有的给数据结构的一部分(如列表中的元素和切片,或字典项)赋值,但还有其他类型的赋值语句。例如,可同时(并行)给多个变量赋值;
>>> x,y,z=1,2,3
>>> print(x,y,z)
1 2 3
看似用处不大? 看好了,使用这种方式还可以交换多个变量的值
>>> x,y=y,x
>>> x
2
>>> print(x,y,z)
2 1 3
实际上,这里执行的操作称为**序列解包:**将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中。下面用例子进行解释。
>>> values=1,2,3
>>> values
(1, 2, 3)
>>> x,y,z=values
>>> x
1
这在使用返回元组(或其他序列或迭代对象)的函数或方法时很有用.假设要从字典中随便获取(或删除)一个键值对,可使用popitem,它随便获取一个键-值对并以元组的方法返回,可直接将返回的元组解包到俩个变量中.
>>> d={1:213}
>>> a,b=d.popitem()
>>> a
1
>>> b
213
这让函数能返回被打包成元组的多个值,然后通过一条赋值语句轻松访问这些值。要解包的序列包含的元素个数必须与你在等号左边列出的目标个数相同,否则python将引发异常
可使用星号运算符(*)来收集多余的值,这样无需确保值和变量个数相同,如下例所示:
>>> a,b,*rest=(1,2,3,4,5)
>>> a
1
>>> b
2
>>> rest
[3, 4, 5]
赋值语句的右边可以是任何类型的序列,但带星号的变量最终包含的总是一个列表。在变量和值的个数相同时亦如此
>>> a,*b,c='abc'
>>> a,b,c
('a', ['b'], 'c')
链式赋值是一种快捷方式,用于将多个变量关联到同一个值.这有点项前一节介绍的并行赋值,但只涉及一个值;
x=y=somefuction()
上述代码与下面的代码等价:
y=somefuction()
x=y
可以不编写代码x=x+1,而将右边表达式中的运算符(这里是+)移到赋值运算符(=)的前面,从而写成x+=1.这称为增强赋值,适用于所有标准运算符,如*、/,%d等
>>> x=2
>>> x+=1
>>> x*=2
>>> x
6
增强赋值也可以用于其他数据类型*(只要使用的双目运算符可以用于这些数据类型)
>>> fnord='foo'
>>> fnord+='bar'
>>> fnord*=2
>>> fnord
'foobarfoobar'
使用增强赋值,可让代码更紧凑.更简洁。同时在很多情况下的可读性更强。
代码块其实并不是一种语句,但要理解以下内容,你必须熟悉代码块.
代码块是一组语句,可在满足条件时执行(if 语句),可执行多次(循环),等等。代码块是通过缩进代码(即在前面加空格或制表符)来创建的
在同一个代码块中,各行代码的缩进量必须相同,下面的伪代码演示了如何缩进
this is line
this is another line:
this is another block
continuing the same block
the last line of this block
phew,there we escape the inner block
在很多语言中,都使用一个特殊的单词或字符(如 begin或{来标识代码块起始位置),并使用另一个特殊的单词或字符(如end或})来标识结束位置。在python中,使用冒号(:)指出接下来是一个代码块,并将该代码中的每行代码都缩进相同的程度。发现缩进量跟冒号之前的代码缩进量一样时,你就知道代码块结束了