循环语句

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

示例

# -*- coding: cp936 -*-
#while循环
x = 1
while x <= 5:
    print x
    x += 1
#Python中的语句块是用缩排来识别的

#让用户必须输入名字,不能输入空字符
name = ''
while not name or name.isspace():
#while not name.strip():
    name = raw_input("Please enter your name: ")
print 'Hello, %s!' % name

#for循环
words = ['this', 'is', 'an', 'ex', 'parrot']
for word in words:
    print word

print 'range(start, end, step)函数'
print range(1,5)
#打印1,2,3,4,5
for number in range(1, 5):
    print number

#xrange执行效率高于range
for number in xrange(5):
    print number

d = {'x':1, 'y':2, 'z':3}
print '遍历字典中的key'
for key in d:
    print key, 'corresponds to', d[key]

for key in d.keys():
    print key, 'corresponds to', d[key]

print '遍历字典中的value'
for value in d.values():
    print 'corresponds to', value

print '遍历字典中的项,使用序列解包赋值'
for key, value in d.items():
    print key, 'corresponds to', value

print '并行迭代'
names = ['anne', 'beth', 'george', 'damon']
ages = [12, 45, 32, 102]
#并行迭代方法一
for i in range(len(names)):
    print names[i], 'is', ages[i], 'years old'
#并行迭代方法二
z = zip(names, ages) #合并成元组列表
print z
#遍历列表的同并会解包元组
for name, age in z:
    print name, 'is', age, 'years old'

#以上循环中也可以使用break、continue
while True:
    word = raw_input('Please enter a word: ')
    if not word: break
    #处理word
    print 'The word was ' + word

print 'zip函数可以处理不等长序列,当最短序列用完就会停止'
print zip(range(5), xrange(10000))

print '按索引迭代'
for index, value in enumerate(names):
    print index, value

print '翻转和排序迭代'
#sorted方法返回列表
#reversed方法返回迭代器
print sorted([4,3,6,8,3])
print sorted('Hello, world!')
print list(reversed('Hello, world!'))
print ''.join(reversed('Hello, world!'))

print '列表推导式(list comprehension)——轻量级循环'
#工作方式类似for
#创建一个列表,值为x的平方
print [x*x for x in range(10)]
#创建一个列表,值为x的平方且x%3==0
print [x*x for x in range(10) if x % 3 == 0]
#用多个for构建元组列表
print [(x, y) for x in range(3) for y in range(3)]

print 'pass什么也不做'
if True:
    pass #这句只起个占位作用

#垃圾回收
#当不再使用某个对象时可以将它的值设为None或者用del删除它
x = 1
x = None
del x
#Python解释器会负责内存的回收

#动态执行代码
print '使用exec和eval执行和求值字符串'
#在Python3.0中exec是一个函数而不是语句
#执行字符串中的Python代码
exec "print 'Hello, world!'"

#代码安全与作用域
from math import sqrt
scope = {}
#将exec后面的代码放在scope作用域(命名空间)中,这是为了保证代码安全
#exec 'sqrt = 1' #这种写法不安全
exec 'sqrt = 1' in scope #如果不放到scope作用域,原函数sqrt将受影响
print sqrt(4) #原来的函数不受影响
#通过scope作用域访问上面exec所执行的字符串代码
print scope['sqrt'] #打印 1

#exec用来执行一系列Python语句
#eval用来计算Python表达式,并返回结果值
#eval('表达式', 命名空间)
#例如,让用户输入表达式
print eval(raw_input('Enter an arithmetic expression: '))
#上面那句相当于input(), 在Python3.0中raw_input被重命名为input
scope = {}
scope['x'] = 2
scope['y'] = 3
print eval('x*y', scope) #打印 6

运行测试

11111.png

标签: Python

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号