循环语句

作者:追风剑情 发布于:2017-12-12 21:42 分类:Python

示例

  1. # -*- coding: cp936 -*-
  2. #while循环
  3. x = 1
  4. while x <= 5:
  5. print x
  6. x += 1
  7. #Python中的语句块是用缩排来识别的
  8.  
  9. #让用户必须输入名字,不能输入空字符
  10. name = ''
  11. while not name or name.isspace():
  12. #while not name.strip():
  13. name = raw_input("Please enter your name: ")
  14. print 'Hello, %s!' % name
  15.  
  16. #for循环
  17. words = ['this', 'is', 'an', 'ex', 'parrot']
  18. for word in words:
  19. print word
  20.  
  21. print 'range(start, end, step)函数'
  22. print range(1,5)
  23. #打印1,2,3,4,5
  24. for number in range(1, 5):
  25. print number
  26.  
  27. #xrange执行效率高于range
  28. for number in xrange(5):
  29. print number
  30.  
  31. d = {'x':1, 'y':2, 'z':3}
  32. print '遍历字典中的key'
  33. for key in d:
  34. print key, 'corresponds to', d[key]
  35.  
  36. for key in d.keys():
  37. print key, 'corresponds to', d[key]
  38.  
  39. print '遍历字典中的value'
  40. for value in d.values():
  41. print 'corresponds to', value
  42.  
  43. print '遍历字典中的项,使用序列解包赋值'
  44. for key, value in d.items():
  45. print key, 'corresponds to', value
  46.  
  47. print '并行迭代'
  48. names = ['anne', 'beth', 'george', 'damon']
  49. ages = [12, 45, 32, 102]
  50. #并行迭代方法一
  51. for i in range(len(names)):
  52. print names[i], 'is', ages[i], 'years old'
  53. #并行迭代方法二
  54. z = zip(names, ages) #合并成元组列表
  55. print z
  56. #遍历列表的同并会解包元组
  57. for name, age in z:
  58. print name, 'is', age, 'years old'
  59.  
  60. #以上循环中也可以使用break、continue
  61. while True:
  62. word = raw_input('Please enter a word: ')
  63. if not word: break
  64. #处理word
  65. print 'The word was ' + word
  66.  
  67. print 'zip函数可以处理不等长序列,当最短序列用完就会停止'
  68. print zip(range(5), xrange(10000))
  69.  
  70. print '按索引迭代'
  71. for index, value in enumerate(names):
  72. print index, value
  73.  
  74. print '翻转和排序迭代'
  75. #sorted方法返回列表
  76. #reversed方法返回迭代器
  77. print sorted([4,3,6,8,3])
  78. print sorted('Hello, world!')
  79. print list(reversed('Hello, world!'))
  80. print ''.join(reversed('Hello, world!'))
  81.  
  82. print '列表推导式(list comprehension)——轻量级循环'
  83. #工作方式类似for
  84. #创建一个列表,值为x的平方
  85. print [x*x for x in range(10)]
  86. #创建一个列表,值为x的平方且x%3==0
  87. print [x*x for x in range(10) if x % 3 == 0]
  88. #用多个for构建元组列表
  89. print [(x, y) for x in range(3) for y in range(3)]
  90.  
  91. print 'pass什么也不做'
  92. if True:
  93. pass #这句只起个占位作用
  94.  
  95. #垃圾回收
  96. #当不再使用某个对象时可以将它的值设为None或者用del删除它
  97. x = 1
  98. x = None
  99. del x
  100. #Python解释器会负责内存的回收
  101.  
  102. #动态执行代码
  103. print '使用exec和eval执行和求值字符串'
  104. #在Python3.0中exec是一个函数而不是语句
  105. #执行字符串中的Python代码
  106. exec "print 'Hello, world!'"
  107.  
  108. #代码安全与作用域
  109. from math import sqrt
  110. scope = {}
  111. #将exec后面的代码放在scope作用域(命名空间)中,这是为了保证代码安全
  112. #exec 'sqrt = 1' #这种写法不安全
  113. exec 'sqrt = 1' in scope #如果不放到scope作用域,原函数sqrt将受影响
  114. print sqrt(4) #原来的函数不受影响
  115. #通过scope作用域访问上面exec所执行的字符串代码
  116. print scope['sqrt'] #打印 1
  117.  
  118. #exec用来执行一系列Python语句
  119. #eval用来计算Python表达式,并返回结果值
  120. #eval('表达式', 命名空间)
  121. #例如,让用户输入表达式
  122. print eval(raw_input('Enter an arithmetic expression: '))
  123. #上面那句相当于input(), 在Python3.0中raw_input被重命名为input
  124. scope = {}
  125. scope['x'] = 2
  126. scope['y'] = 3
  127. print eval('x*y', scope) #打印 6

运行测试

11111.png

标签: Python

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号