欢迎访问Python每天3分钟系列。
每天花3分钟时间,学习或温习一个Python知识点。
今天是第040篇:
三个很有用的函数
我在不同的场合强调过这3个学习者必须知道的3个函数。
因为知道了它们,你就具备了一定的元学习能力!在没有人帮你的时候,也可以高效的自己探索学习。
这三个函数就是:
-
dir() -
help() -
id()
假设有位高人跟你说:你可以用random模块产生随机数字。
你内心充满感谢,但仍然会很懵逼。因为你不知道怎么用random模块。
dir就是打开这个问题的正确姿势:
import random
print(dir(random))
上面的代码使用dir函数列出random模块下的所有变量和函数,然后打印出来。运行结果:
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_index', '_inst', '_isfinite', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
这里面就有可以帮你生成随机数字的函数。
如果你觉得这有点难看,可以用pprint打印的漂亮点:
import random, pprint
pprint.pprint(dir(random))
打印结果:
['BPF',
'LOG4',
'NV_MAGICCONST',
'RECIP_BPF',
'Random',
'SG_MAGICCONST',
'SystemRandom',
'TWOPI',
'_ONE',
'_Sequence',
'_Set',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_accumulate',
'_acos',
'_bisect',
'_ceil',
'_cos',
'_e',
'_exp',
'_floor',
'_index',
'_inst',
'_isfinite',
'_log',
'_os',
'_pi',
'_random',
'_repeat',
'_sha512',
'_sin',
'_sqrt',
'_test',
'_test_generator',
'_urandom',
'_warn',
'betavariate',
'choice',
'choices',
'expovariate',
'gammavariate',
'gauss',
'getrandbits',
'getstate',
'lognormvariate',
'normalvariate',
'paretovariate',
'randbytes',
'randint',
'random',
'randrange',
'sample',
'seed',
'setstate',
'shuffle',
'triangular',
'uniform',
'vonmisesvariate',
'weibullvariate']
从上到下看一下,不难猜出其中一些函数的作用,比如:
-
randint产生随机的整数 -
random可以产生随机的小数
当然这只是猜测,如何确定呢?
这里就可以用help函数了。help会打印出一个函数的详细解释。这次我们用交互式Python(直接写代码也一样,但交互式Python更方便):
>>> import random
>>> help(random.randint)
上面的代码使用help函数打印random模块下的randint函数的详细说明。注意,要先import random模块才能打印。打印结果:
Help on method randint in module random:
randint(a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
这是英语,认真看一下,上面写的还挺清楚的。
接下来就可以在交互式Python下尝试一下了:
>>> import random
>>> help(random.randint)
>>> random.randint(1, 10)
7
在交互式Python下,使用dir和help这两个函数,可以很高效的探索模块或者类。是居家旅行,学习Python的必备函数。
第三个函数是id(),它的用处是打印对象内存的地址。
这个函数好像没有前两个那么有用,但回想一下前两天的内容,id函数还是挺有用的,毕竟理解Python对象的内存结构是很重要的。
>>> name = '张三'
>>> name2 = '张三'
>>> name3 = '张三'
>>> id(name)
4347189392
>>> id(name2)
4347194288
>>> id(name3)
4348257232
例子中虽然三个变量都是张三,但它们的内存地址是不同的,说明它们不是同一个对象。
原文链接:https://www.afxvip.com/5521.html,转载请注明出处。
评论0