python 内建函数(四)
转自 http://www.cnblogs.com/mangood/p/6013741.html
内建函数都在 _builtins_ 里面
(1)abs() 取绝对值
adb(-10)
10
(2)bool()将参数转换成布尔型,返回值是True或False
参数是数字时,0返回False,其他任何值都返回True
参数是字符串时,None或空字符串返回False,否则返回True
参数是空的列表、元祖或字典返回False,否则返回True
例如:
print (bool()) 无参 False
print (bool(0)) False
print (bool(-100)) True
print (bool(None)) False
print (bool('')) 参数是空字符串 False
print (bool('wow')) True
print (bool(' ')) 参数是元组,元素是空格 True
例如:
用bool验证输入值是否为空
year = raw_input ('请输入你的出生日期')
if not bool (year.rstrip()):
print ('必须输入出生日期')
(3)float()将参数转换为浮点型,注意,参数可以使字符串或者数字
print (float (25)) 25.0
print (float (999.786632)) 999.786632 (这里的999.786632未转换前其实是字符串)
(4)int()将参数转换为整数,注意:如果参数为浮点数,小数点后将会丢失,如果参数是含有浮点数的字符串,将会报错
int (199.99) 199 因为199.99是浮点数
int ('199.99') 报错 因为'199.99'是含有浮点数的字符串
int ('199') 199 因为'199'是含有整数的字符串,所以正常转换
(5)range()生成一个列表
语法格式:
range([start],stop,[step])
第一个参数是起始值,可选参数,默认值是0
第二个参数是终止值
第三个参数是步长,可选参数,可以是正数或负数,默认值是1
从给定的第一个参数开始,到比第二个参数小1的数字结束,我们常说的包头不包尾
常与for循环一起使用,循环执行指定数字的次数
例如:
for i in range (0,5)
0
1
2
3
4
例如:
print (list(range(0,5)))
[0,1,2,3,4]
例如:注意这里用list()函数将range()函数返回值转换为列表
count = list (range(0,15,3))
print count
[0,3,6,9,12]
例如:
count = list (range(15,0,-3))
print count
[15,12,9,6,3]
我们再看一个好玩的
xy = list(range(20,100,-5))
print xy
[]
之所以输出是个空字符串是因为20-5是15,15不在20和100的范围,所以为空
(6)sum()把列表中的元素求和
例如:用list函数把range函数的值定义为列表赋值给num,再通过sum()函数对列表元素求和
num=list (range(0,250,50))
print num
[0,50,100,150,200]
print (sum (num))
500
(7)max()
函数:返回列表、元祖或字符串中最大的元素,注意:字母“大于”数字、小写字母“大于”大写字母(字母排序是根据ASCII码表排的)
例如:
>>>num = list (range (1,100,20))
>>>print (max(num))
81
例如:
>>>strings = 'd,u,a,n,g,D,U,A,N,G'
>>>print (max(strings))
u
例如:
>>>print (max(1000,650,98,2678))
2678
(8)min() 最小元素同max()用法一样
>>>xy = [4,15,6,'z','Z','a']
>>>print (min(xy))
4
>>>print (max(xy))
z
(9)dir()
是directory的简写,可以返回关于任何值得相关信息,可以用于任何对象,包括:字符串、数字、函数、模块、对象和类,当想要快速查找帮助信息时,很有用
语法格式 dir ([object])
不带参数时,返回当前范围内的变量、方法和定义的类型列表
带参数时,返回参数的属性、方法列表
例如:
显示class类的信息
>>>class MyClass:
"'Define A class"'
pass
>>>myclass = MyClass()
>>>dir (myclass)
['_doc_','_module_']
(10)eval()
计算参数中表达式的值,可计算参数中字符串中的算术表达式,但参数只能是简单的表达式,一般情况下对拆分成多行的表达式不能运算,常用语将用户输入的转换成Python表达式
>>>eval('100*8')
800
>>>eval(raw_input("请输入:"))
请输入: 8+9*2-3
23
(11)exec()
可以运行较复杂的程序,与eval()功能相近,二者的区别是
exec()没有返回值
eval()返回一个值
可执行由多行字符串组成的较复杂的代码
例如:
执行由多行字符串组成的较复杂的代码,获得程序的相关信息
>>>exec('''class myclass:
pass)
myclass = myclass()
print dir (myclass)''')
['_doc_','_module_']
例如:
>>>program = '''print('wow')''' (把字符串'''print('wow')'''赋值给program)
>>>exec(program)
wow
(可见,在调用了exec函数,并运用program这个字符串参数的时候,python把字符串'''print('wow')'''当成标准表达式来执行,并输出了wow)
(12)len()
返回一个对象的长度,参数是一个序列或字符串
>>>len('duang')
5
>>>language = ['python','java','C']
>>>len(language)
6
>>>map = {'张三':'100','李四':'99'}
>>>print(len(map))
2
再看
len(123456789) 执行这个就会报错,因为参数不是字符串或者序列,它是一个整数了。
len('123','456','789')
执行这个也会报错,因为他不是序列,只是几个字符串,如果是len(['123','456','789'])或者len(('123','456','789'))就对了