每天十分钟Python学习–内置函数(5)

Python publisher01 44℃

dir(); divmod(a, b); enumerate(); eval()

  • dir([object]) 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。可以帮助我们查询某个模块或类的属性以及方法
dir(int) #['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__','__delattr__',...
# dir()函数的返回值在不同版本中会有所差别
  • divmod(a,b),将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数(以元组的形式返回)
    对于整数,其返回值为(商,余数)
divmod(5,3)# (1,2)

对于浮点数,返回值为(向下取整,余数), 余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数。

divmod(5.1,2) #(2.0, 1.0999999999999996)
divmod(5.9,2) #(2.0, 1.9000000000000004)
  • enumerate(iterable, start=0):返回一个枚举对象
list_a=['one','two','three','four']
list(enumerate(list_a))# [(0, 'one'), (1, 'two'), (2, 'three'), (3, 'four')]
#可以修改计数start
list_a=['one','two','three','four']
list(enumerate(list_a,1))# [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]

当需要输出当前元素的序号数时,可用下面的代码来实现:

list_a=['one','two','three','four']
for i,item in enumerate(list_a):
    print(i,item)
#0 one
#1 two
#2 three
#3 four

我们统计一个文件的行数时,可以使用如下方式:

count = 0
for index, line in enumerate(open('test_lines.txt','r')):
    count += 1
print(count)#打印文件的行数

enumerate()总结博客

  • eval(expression, globals=None, locals=None):返回字符串表达式的值,用来做计算器再适合不错
a=eval('5+6*2')# 17
type(a)# int,能够保留字符串中数值的类型

还能对变量进行替换:

x=3
eval('5+6*x')# 23

也可以获取用户输入的多个值:

a,b=eval(input('请输入两个数:'))#将值对应进行赋值

eval函数参考博客

转载请注明:Python量化投资 » 每天十分钟Python学习–内置函数(5)

喜欢 (0)or分享 (0)