列表综合
通过列表综合,可以从一个已有的列表导出一个新的列表。
#FileName:other_py.py
#使用列表综合
ls = [1,2,3,4,5]
#定义一个空的列表
ls2 = []
#通过for循环填充列表ls2
for i in ls:
if i >= 2:
ls2.append(i *3)
print('列表ls2:',ls2)
#列表的综合应用,实现效果同上
ls3 = [i * 3 for i in ls if i >= 2]
print('列表ls3:',ls3)
ls4 = ['Hello','Python','World!']
#将列表综合用于字符串列表
ls5 = [i * 2 for i in ls3]
print('列表ls5:',ls5)
在函数中接收元组和字典
当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*
和**
前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。
#函数接收元组或字典
#函数接收元组
print('函数接收元组----------------------------------')
#定义函数powerSum(),由于第二参数arg前有“*”作为前缀,所以这个函数将多余的参数作为一个元组接收放到arg中
def powerSum(power,*arg):
total = 0
for i in arg:
#计算元组arg中的各个元素的power次方,追加到total中
total += pow(i,power)
return total
#调用函数powSum():将参数3传递给power,将其与的参数作为元组传递给arg
print('powerSum(3,2,4,5) = %d\n'%powerSum(3,2,4,5))
#函数接收字典
print('函数接收元组----------------------------------')
#定义函数dicFunc(),由于第二个参数arg前有“**”作为前缀,所以这个函数将多余的参数作为一个字典接收存放到arg中
def dicFunc(str2,**arg):
print(str2)
for key,value in arg.items():
print(key,':',value)
#调用函数dicFunc,由于函数dicFunc原型存在两个参数,所以第一个参数str2接收第一个参数,其与的参数以字典的形式存放到arg中
try:
dicFunc('函数接收字典,内容如下:',name='jiezhj',blog='http://csdn.com.jiezhj',date='2014年7月25日')
except TypeError:
print('传入的参数类型可能存在错误...')
except SyntaxError:
print('语法错误:估计是格式不正确')
finally:
print('函数接收元组或者字典Over!')
lambda形式
lambda
语句被用来创建新的函数对象,并且在运行时返回它们。
#lambda的使用:只能跟表达式
#定义函数worldFunc()
def worldFunc():
return lambda x,y:x +' Python ' + y
#将worldFunc的返回值赋值个func(有点类似函数指针)
func = worldFunc()
#调用函数func()并打印,分别将'Hello'以及‘World’传递给x,y
print('func(\'Hello\',\'World\') = ',func('Hello','World'))
lambda语句用来创建函数对象。本质上,lambda
需要参数x,y,后面单个‘x + ' Python ' + y’表达式作为函数体,而表达式的值被这个新建的函数返回。
注意,即便是print
语句也不能用在lambda形式中,只能使用表达式。
exec和eval语句
exec
语句用来执行储存在字符串或文件中的Python语句。
#exec语句用来执行储存在字符串或文件中的Python语句。
#调用exec函数,再次打印
print('#调用exec函数,再次打印')
#屏蔽符挺多
exec('print(\'func(\\\'Hello\\\',\\\'World\\\') = \',func(\'Hello\',\'World\'))')
exec('print(\'Hello exec func\')')
eval语句用来计算存储在字符串中的有效Python表达式。
assert语句
assert
语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert
语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError
。
#断言assert的使用
print('断言assert的使用')
#定义一个字典
lsA = ['name','blog','date','other']
dic2 = {}.fromkeys(lsA,'20140725')
#打印字典dic2的结构
print(dic2)
try:
while True:
#断言字典中还存在元素
assert len(dic2) >= 1
#弹出元素
dic2.pop(lsA[len(lsA)-1])
#列表弹出最后一个元素
lsA.pop()
#再次打印字典dic2的结构
print(dic2)
except AssertionError:
print('字典dic2中不存在元素')
repr函数
repr
函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object
。
>>> i = []
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"