龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > python编程 >

跟老齐学Python之永远强大的函数(2)

时间:2014-09-15 02:47来源:网络整理 作者:网络 点击:
分享到:
特别注意,如果没有先a=2,就直接下函数表达式了,像这样,就会报错。 y=3*a+2Traceback (most recent call last): File "stdin", line 1, in module NameError: name 'a' is not de

特别注意,如果没有先a=2,就直接下函数表达式了,像这样,就会报错。

>>> y=3*a+2
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 NameError: name 'a' is not defined

注意看错误提示,a是一个变量,提示中告诉我们这个变量没有定义。显然,如果函数中要使用某个变量,不得不提前定义出来。定义方法就是给这个变量复制。

建立实用的函数

上面用命令方式建立函数,还不够“正规化”,那么就来写一个.py文件吧。

在IDLE中,File->New window

然后输入如下代码:

#coding:utf-8

def add_function(a,b):
  c = a+b
  print c

if __name__=="__main__":
  add_function(2,3)

然后将文件保存,我把她命名为106-1.py,你根据自己的喜好取个名字。

然后我就进入到那个文件夹,运行这个文件,出现下面的结果,如图:

你运行的结果是什么?如果没有得到上面的结果,你就非常认真地检查代码,是否跟我写的完全一样,注意,包括冒号和空格,都得一样。冒号和空格很重要。

下面开始庖丁解牛:

#coding:utf-8 声明本文件中代码的字符集类型是utf-8格式。初学者如果还不理解,一方面可以去google,另外还可放一放,就先这么抄写下来,以后会讲解。

def add_function(a,b): 这里是函数的开始。在声明要建立一个函数的时候,一定要使用def(def 就是英文define的前三个字母),意思就是告知计算机,这里要声明一个函数;add_function是这个函数名称,取名字是有讲究的,就好比你的名字一样。在python中取名字的讲究就是要有一定意义,能够从名字中看出这个函数是用来干什么的。从add_function这个名字中,是不是看出她是用来计算加法的呢?(a,b)这个括号里面的是这个函数的参数,也就是函数变量。冒号,这个冒号非常非常重要,如果少了,就报错了。冒号的意思就是下面好开始真正的函数内容了。

c=a+b 特别注意,这一行比上一行要缩进四个空格。这是python的规定,要牢记,不可丢掉,丢了就报错。然后这句话就是将两个参数(变量)相加,结果赋值与另外一个变量c。

print c 还是提醒看官注意,缩进四个空格。将得到的结果c的值打印出来。

if name=="main": 这句话先照抄,不解释。注意就是不缩进了。

add_function(2,3) 这才是真正调用前面建立的函数,并且传入两个参数:a=2,b=3。仔细观察传入参数的方法,就是把2放在a那个位置,3放在b那个位置(所以说,变量就是占位符).

解牛完毕,做个总结:

声明函数的格式为:

def 函数名(参数1,参数2,...,参数n):

    函数体

是不是样式很简单呢?

取名字的学问

有的大师,会通过某个人的名字来预测他/她的吉凶祸福等。看来名字这玩意太重要了。取个好名字,就有好兆头呀。所以孔丘先生说“名不正,言不顺”,歪解:名字不正规化,就不顺。这是歪解,希望不要影响看官正确理解。不知道大师们是不是能够通过外国人名字预测外国人大的吉凶祸福呢?

不管怎样,某国人是很在意名字的,旁边有个国家似乎就不在乎。

python也很在乎名字问题,其实,所有高级语言对名字都有要求。为什么呢?因为如果命名乱了,计算机就有点不知所措了。看python对命名的一般要求。

文件名:全小写,可使用下划线

函数名:小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。注意:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

函数的参数:如果一个函数的参数名称和保留的关键字(所谓保留关键字,就是python语言已经占用的名称,通常被用来做为已经有的函数等的命名了,你如果还用,就不行了。)冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

变量:变量名全部小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1。

其实,关于命名的问题,还有不少争论呢?最典型的是所谓匈牙利命名法、驼峰命名等。如果你喜欢,可以google一下。以下内容供参考:

精彩图集

赞助商链接