# coding=utf-8
#abs() 函数:返回数字的绝对值。
print abs(-45) #45
print abs(100.12) #100.12
print abs(119L) #119
#特例:复数:返回 (a^2+b^2) 开根
print abs(1+2j) #2.23606797749979
print abs(1+1j) #1.4142135623730951
print abs(1j) #1.0
#知识引申:复数定义
#复数是由一个实数和一个虚数组合构成,表示为:x+yj
#一个复数时一对有序浮点数 (x,y),其中 x 是实数部分,y 是虚数部分。
#1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数
#2、复数由实数部分和虚数部分构成
#3、表示虚数的语法:real+imagej
#4、实数部分和虚数部分都是浮点数
#5、虚数部分必须有后缀j或J
aa = 123-12j
print aa.real # output 实数部分 123.0
print aa.imag # output虚数部分 -12.0
#divmod() 函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a / b, a % b)
print divmod(7, 2) #(3, 1)
print divmod(8, 2) #(4, 0)
print divmod(1+2j,1+0.5j) #((1+0j), 1.5j)
#all() 函数:用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
#any() 函数:用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
#元素除了是 0、空、None、False 外都算 True。
#空元组、空列表返回值为True
print all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0 True
print any(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0 True
print all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 False
print any(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 True
print all([0, 1, 2, 3]) # 列表list,存在一个为0的元素 False
print any([0, 1, 2, 3]) # 列表list,存在一个为0的元素 True
print all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0 True
print any(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0 True
print all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素 False
print any(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素 True
print any([0, '', False]) # 元素全为0,'',false
print all([]) # 空列表 True
print any([]) # 空列表 False
print all(()) # 空元组 True
print any(()) # 空元组 False
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
#0 one
#1 two
#2 three
#isinstance() 函数:判断一个对象是否是一个已知的类型,类似 type()。
#类型汇总:int,float,bool,complex,str(字符串),list,dict(字典),set,tuple
a = 2
print isinstance (a,int) #True
print isinstance (a,str) #False
print isinstance (a,(str,int,list)) # 是元组中的一个返回 True
#pow() 函数:返回 xy(x的y次方)的值;如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
#pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
#pow(x,y) 等价于 x**y:
#pow(x,y,z) 当 z 这个参数不存在时 x,y 不限制是否为 float 类型, 而当使用第三个参数的时候要保证前两个参数只能为整数。
import math # 导入 math 模块
print math.pow(100, 2) #10000.0
print pow(100, 2) #10000
print math.pow(100, -2) #0.0001
print math.pow(2, 4) #16.0
print math.pow(3, 0) #1.0
print 4**2 #16 = 4*4
print 4**2.5 #32.0 = (4*4)*2 = 32
print 4**2.5%3 #2.0 = 32%3 = 2
print pow(4,2,3) #1 = 4*4%3 = 1
#sum() 方法对系列进行求和计算;如果有第二个参数,表示对计算的结果加上这个参数
print sum([0,1,2,3,4], 2) #12
#execfile() 执行某个文件,参数为filename:文件名
execfile('demo.py');