前面已经介绍过几种基本语句(print,import,赋值语句),下面我们来介绍条件语句,循环语句。
一. print和import的更多信息
1.1 使用逗号输出
A.打印多个表达式,用逗号隔开,会在每个参数之间插入一个空格符:
代码如下:
>>> print 'age:',42
age: 42
代码如下:
>>> name = 'Peter'
>>> greeting = 'Hello'
>>> print greeting,',',name
Hello , Peter
代码如下:
>>> print greeting + ',',name
Hello, Peter
代码如下:
>>> print 'Hello,',
print 'world'
Hello,world
代码如下:
>>> import math
>>> import math as foobar
>>> foobar.sqrt(4)
2.0
>>> from math import sqrt as foobar2
>>> foobar2(4)
2.0
>>> #'多个赋值操作同时进行'
>>> x,y,z = 1,2,3
>>> print x,y,z
1 2 3
>>> #'交换2个或多个变量'
>>> x,y = y,x
>>> print x,y
2 1
>>> #'当函数或方法返回元组时'
>>> s = {'a':1,'b':2,'c':3}
>>> key,value = s.popitem()
>>> print key,value
a 1
最后一个例子可以看出,它允许函数返回一个以上的值并打包成元组,然后通过一个复制语句很容易进行访问。
注意:解包的序列中元素数量必须和放置在赋值符合=左边的变量数量完全一致,否则会引发异常。
2.2 链式赋值
链式赋值是将同一个值赋给多个变量的捷径。
>>> x = y = 'sss'
2.3 增量赋值
增量赋值可以让代码更紧凑简练。
对于+,-,*,/,%等标准运算符都适用:
>>> x = 2
>>> x += 1
>>> x *= 2
>>> x
6
>>> #对其他数据类型也适用
>>> f = 'foo'
>>> f += 'bar'
>>> f
'foobar'
三. 语句块:缩排的乐趣
语句块是条件为真时执行一次或多次的一组语句。在python中,冒号(:)用来标识语句块的开始,块中的每一个语句都是缩进的。当回退到和已经闭合的块一样的缩进量时,就表示当前块已经结束了。
四. 条件和条件语句
4.1 这就是布尔变量的作用
下面的值在作为布尔表达式的时候,会被解释器看作假(False):
False None 0 “” () [] {}
其他的一切值都被解释为真,包括特殊值True。
4.2 条件执行和if语句
如果条件判断为真,那么后面的语句块就会被执行,也可以加入elif进行多个条件检查。作为if的一部分,还有else子句。
当然,我们可以在if语句里面嵌套使用if语句。
代码如下:
num = input ('enter a number? ')
if num > 0:
if num > 50:
print"num > 50"
elif num > 10:
print "num > 10"
else:
print "num > 0"
else:
print "num
代码如下:
x == y; x y; x >= y; x x != y; x is y; x is not y; x in y; x not in y;
代码如下:
>>> x = y = [1,2,3]
>>> z = [1,2,3]
>>> x is y
True
>>> x is z
False
>>> x == z
True
代码如下:
name = raw_input("what is your name?")
if 's' in name:
print 'your name contains the letter s'
else:
print 'your name does not contain the letter s'
代码如下:
>>> [1,2] > [2,1]
False
>>> [1,[2,3]] True
代码如下:
number = raw_input("enter a number?")
if number = 1:
print "great!"
代码如下:
if not condition:
crash program
代码如下:
>>> age = -1
>>> assert 0 Traceback (most recent call last):
File "
assert 0 AssertionError
代码如下:
name = ''
while not name:
name = raw_input('please enter your name: ')
print 'hello,%s!' % name
代码如下:
names = ['a','b','c','d']
ages = [12,23,45,32]
#循环索引迭代
for i in range(len(names)):
print names[i],'is',ages[i],'years old.'
#内建zip函数迭代
for name,age in zip(names,ages):
print name,'is',age,'years old.'
代码如下:
#index计数
index = 0
for string in strings:
if 'xxx' in string:
string[index] = 'sss'
index += 1
#内建enumerate函数迭代
for index,string in strings:
if 'xxx' in string:
string[index] = 'sss'
代码如下:
>>> sorted([2,6,3,7])
[2, 3, 6, 7]
>>> list(reversed('hello'))
['o', 'l', 'l', 'e', 'h']
代码如下:
for i in range(0,10):
if i == 5:
print 'quit'
break
print i
代码如下:
for i in range(0,10):
if i % 2 == 0:
continue
print i
代码如下:
while True:
word = raw_input('enter a word: ')
if not word:
break
print 'The word is '+ word
代码如下:
>>> [x**2 for x in range(10) if x % 3 == 0]
[0, 9, 36, 81]
>>> [(x,y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)
代码如下:
if a == 'a':
print 'yes'
elif a == 'b':
pass
else:
print 'no'
代码如下:
>>> x = [1,2]
>>> y = x
>>> del x
>>> x
Traceback (most recent call last):
File "
x
NameError: name 'x' is not defined
>>> y
[1, 2]
代码如下:
>>> exec "print 'hello,world'"
hello,world