python import math报错_为什么我import math之后,使用sqrt还需要写math.sqrt,而abs可以直接用,加了math.abs反而报错...

清波

首先,这个猿问是我在站内消息中 主动(不要脸)要过来的,为了方便后来者查阅(骗积分)。开题,这其实是一个命名空间的问题。但是需要看我回答的人可能都是初学者,所以我就不讲命名空间了,直接解答本题,尽量少扯别的(不可能。。)。初学者很容易被 内置函数,模块里的方法和 某些对象(特别是内置的数据类型)的方法扰乱, 一个一个讲:内置函数:## 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()  (对象.方法名())我 —————— 真—————— 能—————— 扯—————— !!!———————— !!!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值