if 语句
比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现:
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3行 print 语句就构成一个代码块(但不包括第4行的print)。如果 if 语句判断为 True,就会执行这个代码块。
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
在ubuntu下的vim中需要设置tab默认为4个空格,可以找到 ~/.vimrc文件并设置 set tabstop=4
#使用vim打开 ~/.vimrc文件,若没有则创建 vim ~/.vimrc #打开后输入 set tabstop=4注意: if 语句后接表达式,然后用
:
表示代码块开始。如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车。
if-else 语句
注意:else语句后也有:用来表示代码块开始。
if-elif-else 语句
相当于多层判断,为了方便看到效果,我们使用raw_input来接收我们的输入,以便于及时看到效果。
换一种写法
保存后运行
上一篇有提到集合类型list和tuple,当我们需要依次访问集合中的内容时,我们就需要循环了。
for 循环
while 循环
break 退出循环
continue 继续循环
循环嵌套
迭代循环
Python中,迭代永远是取出元素本身,而非元素的索引。
对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办?
方法是使用 enumerate() 函数:
使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:
[‘john‘, ‘json‘, ‘jay‘]变成了类似:
[(0, ‘john‘), (1, ‘json‘), (2, ‘jay‘)]因此,迭代的每一个元素实际上是一个tuple。
迭代dict
我们已经了解了dict对象本身就是可迭代对象,用 for 循环直接迭代 dict,可以每次拿到dict的一个key。
如果我们希望迭代 dict 对象的value,应该怎么做?
dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:
dict 对象还有一个 itervalues() 方法,迭代的效果和values()一样。
那这两个方法有何不同之处呢?
1. values() 方法实际上把一个 dict 转换成了包含 value 的list。
2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。
如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。
dict 对象还有一个 items()方法,
可以看到 items()方法包含了key和value,其实是把dict对象转换成了包含tuple的list。
items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。
原文:http://www.cnblogs.com/idoudou/p/LearnPython_Conditional.html