卖薪沽酒

卖薪沽酒的博客

他的个人主页  他的博客

Python菜鸟学习笔记3

卖薪沽酒  2009年10月18日 星期日 03:39 | 1465次浏览 | 4条评论

每天进步一点点↖(^ω^)↗
①def②函数形参③局部变量④global语句⑤默认参数值

我自己感觉函数应该是比较重要的,如果说各个语句是构架的话,函数就是肉了……通过调用函数才能实现各种行为,开始学习函数…
①def:
函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
 具体的格式为:
         def 函数名():
               函数体   
         函数名()   #直接引用函数即可   
截图如下:

     
运行结果如下:


     
直接输入函数名,回车后也可直接输出结果:

疑惑:能不能直接调用文件呢?比如这个程序的文件名为:function1.Py,我应该怎么调用呢?
②函数形参
函数形参就是①中说的括号里面的参数,这些参数不是在函数内部赋值的,而是我们在引用函数的时候赋予的值,赋值的不同决定了函数执行结果的不同。
其实,看个例子就知道什么是形参,什么是实参了……还是没有什么可以说的(没法说,嘿嘿)
③局部变量
据我所知,对于初学者来说,局部变量和全局变量还是要特别注意的,这不仅关系到最终结果的正确与否,还关系到编程习惯的问题。
其实说的明白点,局部变量和全局变量就是总体和局部的关系,在局部内的变量在外边是不管用的,然而,在内部时里边的(局部变量)说了算(有点儿“强龙不压地头蛇”的意思)。
不好说,还是看例子……
例子对一开始的概念理解是很重要滴……
附:例子
#!/usr/bin/python
# Filename: func_local.py
def func(x):
  print 'x is', x    
  x = 2           #局部变量
  print 'Changed local x to', x        #(此处后面的这个x是2,因为这是在块里面)
                             (注:此处与程序输出没有关系,而仅仅是定
义函数,所以不要混淆误以为此处的语句有输出)
x = 50       #全局变量
func(x)                           #(此处才是引用函数输出结果的地方)
print 'x is still', x
输出结果为:
$ python func_local.py
x is 50
Changed local x to 2     #(这里的2就是我们定义的局部变量x的值)
x is still 50
好好理解一下……其实很简单……
④global语句
如果为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
还是看例子:
#!/usr/bin/python
# Filename: func_global.py
def func():
  global x                  #这就说明了x是全局变量
  print 'x is', x
  x = 2
  print 'Changed local x to', x             #还是要注意此处是定义函数,这是我一开始的误区

x = 50                                #对x赋值
func()                                #引用函数,函数中的第一次输出x的原始值即
                                     上步赋予x的值50 ,第二次输出的是函数中定义的数值                                      
print 'Value of x is',x             #由于,在函数体中最后用到了命令
输出:
$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2

其实感觉编程之道还是在于理解,真的是只可意会不可言传啊(笔涩,解释不清(*^__^*) ……)

⑤默认参数值
所谓的默认参数值就是说,在函数定义的时候函数中的此参数有一个默认的值,在以后的引用中如果没有特殊说明,此参数就采用默认值,当然此参数的值可以由你提供。但是材料中有一句:“注意,默认值应该是一个参数,更加准确的说,默认值应该是不可变的”,这点我有点不是很理解,当然这点看起来本来就有点难以理解,所以文中还说会在以后的章节中详细介绍,所以,以后再理解吧,呵呵
本节的内容很容易理解,就是说这个参数在我没有特别声明的时候你就给我用默认值!除非我说让你用别的值你就用别的值……
例子:
#!/usr/bin/python
# Filename: func_default.py
def say(message, times = 1):            #times 的默认值为1
   print message * times

say('Hello')                          #我们没有提供参数,所以使用默认1
say('World', 5)                        #我们提供了参数5,所以默认值就不再使用,而是使用5

输出:
$ python func_default.py
Hello
WorldWorldWorldWorldWorld             
特别注意:
只有在形参表末尾的那些参数可以有默认参数值,也就是说在声明函数形参时,必须先声明没有默认值的形参,然后才能声明有默认值的形参,举个例子就明白了,说起来挺拗口的……
例如,def func(a, b=5)是有效的,但是def func(a=5, b)是 无效 的。

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
吴龑

回复 吴龑  2009年10月19日 星期一 00:41

加油!

0条回复

王依依

回复 王依依  2009年10月18日 星期日 10:06

>> 疑惑:能不能直接调用文件呢?比如这个程序的文件名为:function1.Py,我应该怎么调用呢?
execfile("your-py-file.py")

2条回复

  • 卖薪沽酒

    回复 卖薪沽酒  2009年10月18日 星期日 15:58

    谢谢猫猫能够这么细心的看我的菜菜的笔记,很凌乱……谢谢猫猫的提醒,我记下这个函数了……O(∩_∩)O~

    1条回复

暂时没有评论

Zeuux © 2022

京ICP备05028076号