python利用or在列表解析中调用多个函数.py

489 查看

"""
python利用or在列表解析中调用多个函数.py
2016年3月15日 05:08:42 codegay

"""

'''有时候我会在列表解析中write文件,
或者调用print显示输出,不是为了收集结果,
而是因为能省代码行数'''

#代码例子1
with open("a.txt","w+") as f:
    [print(str(r)) for r in range(10)]
    [f.write(str(r)+"\n") for r in range(10)]


#代码例子2 利用or列表解析调用多个函数
def a(x):
    print("函数a输出:",x)

def b(x):
    print("函数b输出:",(x+10)**2)

[a(r) or b(r) for r in range(10)]
"""
例子2代码输出:

函数a输出: 0
函数b输出: 100
函数a输出: 1
函数b输出: 121
函数a输出: 2
函数b输出: 144
函数a输出: 3
函数b输出: 169
函数a输出: 4
函数b输出: 196
函数a输出: 5
函数b输出: 225
函数a输出: 6
函数b输出: 256
函数a输出: 7
函数b输出: 289
函数a输出: 8
函数b输出: 324
函数a输出: 9
函数b输出: 361
"""

#现学现用,例子1中的代码可以改成如下:
with open("a.txt","w+") as f:
    [print(str(r)) or f.write(str(r)+"\n") for r in range(10)]

input("任意键退出")