Python基础教程代码与注释P82 5.6 列表推导式——轻量级循环

# -*- coding: cp936 -*-
#P82 5.6 列表推导式——轻量级循环
print [x*x for x in range(10)] #0~9的平方
print [x*x for x in range(10) if x % 3 == 0] #0~9的平方数中能被3整除的数


print [(x, y) for x in range(3) for y in range(3)]
    # 用for语句创建相同的列表
result = []
for x in range(3):
    for y in range(3):
        result.append((x, y))
print result
    # 和if子句联合使用,得到名字首字母相同的男孩和女孩
girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
print [b + '+' + g for b in boys for g in girls if b[0] == g[0]]
    # setdefault字典方法 获得与给定键相关联的值
letterGirls = {}
for girl in girls:
    letterGirls.setdefault(girl[0], []).append(girl)
print [b + '+' + g for b in boys for g in letterGirls[b[0]]]


#P83 5.7 三人行
#5.7.1 什么都没发生
name = 'Enid'
if name == 'Ralph Auldus Melish':
    print 'Welcome!'
elif name == 'Enid':
    pass #什么事情都不用做,做占位符使用
elif name == 'Bill Gates':
    print 'Access Denied'


#5.7.2 使用del删除
scoundrel = {'age': 42, 'first name': 'Robin', 'last name': 'of Locksley'}
robin = scoundrel#绑定到一个字典上
print scoundrel
print robin
scoundrel = None #scoundrel字典清空
print robin      #robin字典继续存在
robin = None     #robin清空,字典被Python解释器直接删除(垃圾收集)
     # 使用del语句
x = 1
del x
#print x #报错
x = ["Hello", "world"]
y = x
y[1] = "Python"
print x
del x   #x被删除
print y #y继续存在


#5.7.3 使用exec和eval执行和求值字符串
#1.exec
    # 执行一个字符串的语句,可以动态地创建代码字符串。
exec "print 'Hello, world!'"
    # 增加一个字典,起到命名空间的作用
from math import sqrt
scope = {} #起到放置代码字符串命名空间作用的字典
exec 'sqrt = 1' in scope
print sqrt(4)
print scope['sqrt']
     # 打印scope
print len(scope)
print scope.keys()
#print scope
#2.eval
    # 计算Python表达式,返回结果值
print eval(raw_input("Enter an arithmetic expression: "))#输入6+18*2输出42
    # 给eval语句提供命名空间,使用前预置值
scope = {}; scope['x'] = 2; scope['y'] = 3
print eval('x*y', scope)
scope = {}; exec 'x = 2' in scope
print eval('x*x', scope)


raw_input("Press <enter>")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值