首页 > 编程知识 正文

python调用math库,Python中eval函数

时间:2023-05-05 10:35:57 阅读:258271 作者:2192

清波

首先,这个猿问是我在站内消息中 主动(不要脸)要过来的,为了方便后来者查阅(骗积分)。开题,这其实是一个命名空间的问题。但是需要看我回答的人可能都是初学者,所以我就不讲命名空间了,直接解答本题,尽量少扯别的(不可能。。)。初学者很容易被 内置函数,模块里的方法和 某些对象(特别是内置的数据类型)的方法扰乱, 一个一个讲:内置函数:## abs() 就是Python 的内置函数(built-in functions),简称BIF 这样的函数有多少呢? 没数过, 用法就是直接写:

print abs(-11)

11

## 说一个调出所有内置函数的方法,可以打印出来慢慢看:

for i in dir(__builtins__):

print i

## 小写字母开头的都是, 可以挨个 help(xx) 学习了。 当然有一些我们熟悉的,比如说 len() zip() range()

## 题主之所以混淆,是因为这个绝对值,怎么看都是BIF 从Math 家领养过来的。。。模块里的方法:## 就用math 模块吧, sqrt就是 math 模块里面的一个方法(函数), 引用不同,调用方法不同:

## (1) 引用整个模块,把模块作为一个家庭,引入整个模块的意思就好比,我们聚会, math是一个家庭,

## 我们请来他们全家(感觉想骂人),这时候我们称呼math的家人(方法,如sqrt)的时候, 就会说:“math 家的sqrt”

## 对应代码如下:

import math

print math.sqrt(4)

2.0

## (2) 从模块中单独引入该方法(函数), 这个就好比 我们从 math家 直接请来了 sqrt 一个人,如此,称呼他的时候

## 就无需带着家族了,直接喊他的名字就好,代码如下:

from math import sqrt

print sqrt(1)

1.0

## (3) 引用模块中的所有方法(函数),这个跟第一点引入整个模块不同,这次我们虽然也请了math全家,但是却是

## 每一个人都下了请柬,同样称呼的时候也无需带着家族名号了,代码如下:

from math import *

print sqrt(1)

1.0

print log(8,2)  ## math 中满眼的三角函数,恕我无能,我认为最简单的就是这个了。。

3.0

## (4) 引入模块中的某方法并给予别名, 这就好比我们开了个假面舞会,或者cosplay大会,从math家请了一位,并且

## 告诉他,你今晚扮演 蝙蝠侠,代码如下:

from math import sqrt as kaifang

print kaifang(16) ## 以我近30年的拼音功力 起的名字 >_

4.0

## (5) 引入整个模块 并赋予这个模块别名,这个跟上面那个差不多了,这次是给他们全家(文明)改名。代码如下:

import math as shuxue

print shuxue.sqrt(16)    ## 作为英语渣,看到这句,我也想杀了我自己。。。

4.0

## 小贴士,如果想知道某些模块含有那些方法, 首先 import xxx 然后 help(xxx) 就好了。

## 总结,我擦 扯了这么多,算了不总结了。。。内置数据类型的方法:## 以字符串为例, 首先help(str) 看方法,然后我下面随便用几个。

s='abcdefc'

print s.upper() ## 大写所有

'ABCDEF'

print s.index('c') ## 返回 参数 所处的第一个index, 有其他参数可以调整

2

## 查看某对象的方法: help(对象名), 内置数据类型如 help(list), tuple, set , dict, bool, int, float 等等

## 总结,某些对象或者 内置数据类型(也是对象)的方法调用 就是  Object.method()  (对象.方法名())我 —————— 真—————— 能—————— 扯—————— !!!———————— !!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。