python入门:模块安装和函数调用、自定义函数
e-mail:[email protected]
有了其他编程语言的基础,自然就会知道新学一门语言的时候并不是非常仔细的深入学习最开始的各种变量、语法等等,语言大多数都是相通的,而且重点在于如何利用一门语言去解决问题。比如我现在要学习机器学习,利用python解决机器学习的一些问题,那我肯定不会再花时间把python的各种语法、结构等等研究一遍。所以这篇文章就简单记录一下我目前在学习python的三个比较实用的问题。
本人PC环境:win 8,64位
1.模块安装(例子:numpy模块)
安装好python后应该就能调用非常多的模块了,比如math模块等等,其他一些模块还需要下载安装,比如numpy。
(1)下载
这是本人安装的numpy的下载地址,版本不高,应该够用了:http://download.csdn.net/detail/chentravelling/9279627
在官网上或者其他网站还有许多可以下载的版本,只是针对64位系统的貌似不太多。
(2)安装
安装的时候,只要下载的版本正确,安装就非常easy。
2.函数调用
例子如下,本人使用了numpy模块中的tile(A,steps)函数。
from numpy import * a=[1,2] b=tile(a,2) c=tile(a,(2,1)) d=tile(a,(1,2)) print "a=",a,"\nb=",b,"\nc=",c,"\nd=",d</span>
运行结果为:
其实从运行结果就能清楚看到tile()函数的作用了。
关于函数调用这里还有一些其他需要注意的地方:
(1)比如如果我们将from numpy import *修改为import numpy,那此时如果要调用tile()函数就应该修改为numpy.tile(),而且每次调用都应该是模块.函数的形式,可知这种方式就有些麻烦了。
(2)函数其实也是变量名,这就意味着如果令fun=numpy.tile,那么调用fun()和调用numpy.tile()是一样的。例如:
from numpy import * a=[1,2] b=tile(a,2) fun=tile c=fun(a,2) print "a=",a,"\nb=",b,"\nc=",c</span>
运行结果为:
(3)如果两个模块中有同样的函数名,那么就需要注意消除歧义,假设math模块和numpy模块中都有一个abs()函数,那么此时选择from math import abs和from numpy import abs后,调用abs()函数就会引起歧义,此时最好还是使用模块.函数的形式,用上面(2)中定义一个新变量的形式应该也是可以的。
3.自定义函数
从前面的介绍,再结合学习其他语言的基础,那么自定义函数就相当轻松了。我自定义了一个求绝对值的函数getAbs()
#-*- coding: utf-8 -*- def getAbs(x): if(x>=0): x=x else: x=-x return x while(1): a =int( raw_input("input number a:")) print "a=",a,"a的绝对值=",getAbs(a)</span>
(1)代码第一行表示了编码类型,这样就能支持中文了
(2)def关键字,定义一个函数,同时注意冒号的使用、对齐方式
(3)其中x=x这一句可以用pass代替,pass表示什么事情都不用干
(4)raw_input()函数的使用可以百度一下它和input()函数的区别。两个函数都是python内建函数,作用都是接受键盘输入,但是区别还是非常明显的。
①raw_input()能接受键盘上所有形式的输入,不管是数字、字符串等等,但是接受以后的类型都是字符串类型,这也就有了我在上述代码中会在接受输入后先通过int()函数将其转化为整型的一步。
②input()函数则是只接受一个python表达式,什么叫表达式呢?才学编程的时候就应该知道。如果你要输入一个hello world,那么你必须用引号括起来,或者输入1+2也是合法的。那么input()函数接受后的值的类型就具有这个值本身的特性,如果是int类型,那么接受后的类型也是int。
暂时就理解了这么多,代码中可能有不规范的地方,欢迎大家指正。