分享

5-2 循环 迭代工具

 jas0n_liu 2013-04-16
1、for循环    遍历序列,如一个列表或一个字符
for x in 'abcd': 或[a.b.c.d]
    print "hello word!"  会输出四次
2、使用迭代    range函数  range(i,j,[,步进值])   如果创建的对象为整数,可以使用range
>>>range(10)  输出0到9
for x in range(100):
    print "hello word"  输出100次
给range赋值
for x in range(1,11):  不包含11
   print x  输出1到10
for x in range(1,10,2)
    print x 输出1,3,5,7,9
例子:
num=0
for  x in range(1,101):
    num+=x
print num

3、遍历
直接遍历:字符串、列表、元组
for x in "hello":
    print x
迭代:range函数
s=“hello”
fox x in range(len(s)):
    print s[x]

遍历字典
d={1:111,2:222,5:555,3:333}
for x in d:
    print x   #只能获取key无法获得value
    print d[x] #取出value
    print  d.items() #返回一个key-value的元组  
拆分字典然后遍历,将key和value分开取出
for  k,v in id.tems():
    print k
    print v
4、循环控制   for
for x in range(200):
    print x
    time.sleep(1)
else:
    print "ending"
如果for循环正常执行,else语句也会执行,当for循环意外终止或breake时,else不会执行
break结束循环
for x in range(1,5):
    print x
    if x == 2:
        print "hello 22222"
        break
    print "#"*20
输出:结束循环
1
####################
2
hello 22222

continux本次循环
for x in range(1,4):
    print x
    if x == 2:
        print "hello 22222"
        continue
     print "#"*20
输出:会结束本次循环而进行下次循环
1
####################
2
hello 22222
3
####################
pass起到占位的作用:代码桩

5、循环控制  while
while循环,直到表达式变为假,防止死循环(要有结束条件)
while 1:
        print "hello"
        x = raw_input("please input somethig,q for quit:")  #使用输入条件和break来结束
        if x == "q":
                break
x = ""
while x != "q":       #通过while的循环条件结束循环
        print "hello"
        x = raw_input("please input somethig,q for quit:")
while也可以使用else语句
x = 0
while x != "q":
        print "hello"
        x = raw_input("please input somethig,q for quit:")   #使用q来退出
        if not x:            #空值也结束
                break
else:
        print "ending...."


6、一些迭代工具
打印名字和年龄的对应关系
names = ['jason','herry','jack',]
ages = [25,26,43]
for i in range(len(names)):
    print names[i], 'is' , ages[i], 'years old'

zip行数的并列迭代
zip(names, ages)

for names, ages in zip(names,ages):
              print naem, 'is', age, 'years old'

7、轻量级循环
X的平方
>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
能被3整除的平方数
>>> [x*x for x in range(10) if x % 3 == 0]
[0, 9, 36, 81]

8、三人行  pass、del、exec
>>> if name == 'jason jack':
...      print '1'
... elif name == 'tom':
...      pass
... 起到占位符的作用,在python中空的代码块是非法的,可以使用pass代替。


>>> scoundrel = {'age':28,'first name':'jason','last name':'of lost'}
>>> robin = scoundrel
>>> scoundrel
{'last name': 'of lost', 'first name': 'jason', 'age': 28}
>>> robin
{'last name': 'of lost', 'first name': 'jason', 'age': 28}
>>> scoundrel = none
>>> scoundrel
>>>
>>> robin
{'last name': 'of lost', 'first name': 'jason', 'age': 28}
>>> del robin
>>> robin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'robin' is not defined
del和None都可以直接将字典删除,del将对象的引用和名字本身都移除。

exec、eval执行和求值字符串



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多