学习python的第二十九天-函数,变量,global语句

定义函数

函数是python中比较重要的程序段。函数通过def关键字定义,def后跟一个函数的标识符名称,然后跟一对圆括号。圆括号中可以包括一些变量名。定义函数完成后以冒号结尾。

def sayHello():
    print 'Hello World!' # block belonging to the function 
sayHello() # call the function 

这段代码很好的展示了定义函数并调用的过程,按要求定义好函数后,在下方输入函数名加圆括号调用。

函数形参

函数取得的参数是你提供给函数的值,参数就像变量一样,它们的值是在我们调用函数的时候定义的,非函数本身内赋值。注意:函数中的参数名称为形参,你提供给函数调用的值称为实参。

def printMax(a, b):
    if a > b:
        print a, 'is maximum'    
    else:       
        print b, 'is maximum' printMax(3, 4) # directly give literal values 
x = 5 
y = 7 
printMax(x, y) # give variables as arguments 

在第一个printMax使用中,我们直接把数,即实参,提供给函数。在第二个使用中,我们使用变量调用函数。printMax(x, y)使实参x的值赋给形参a,实参y的值赋给形参b。在两次调用中,printMax函数的工作完全相同。

局部变量

代码部分:

def func(x):
    print 'x is', x
    x = 2    
    print 'Changed local x to', x 

x = 50 
func(x) 
print 'x is still', x 

运行结果:

x is 50 
Changed local x to 2 
x is still 50 

x等于50,然后调用func(x)函数,打印x等于50,接下来x等于2,打印Changed local x to 2,函数运行完成以后,下一步打印x is still 50。因为x等于2是局部变量,所以在运行函数以后x的值仍然是50.

global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

def func():
    global x

    print 'x is', x    
    x = 2    
    print 'Changed local x to', x 

x = 50 
func() 
print 'Value of x is', x 

运行结果:

x is 50 
Changed global x to 2 
Value of x is 2 

很显然,在这段代码中,先给x赋值为50,然后调用函数,global函数定义变量x,先打印x is 50,然后给全局变量x赋值为2,所以在下一句代码打印Changed global x to 2,函数运行完成以后x已经为2,所以打印Value of x is 2

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。 你可以使用同一个global语句指定多个全局变量。例如global x, y, z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,要在函数内部使用全局变量,可以使用global关键字将变量声明为全局变量。首先,在函数外部给变量赋初值,然后在函数内部使用global关键字声明该变量为全局变量。例如,如果有一个全局变量a,在函数内部需要使用它,可以在函数内部使用"global a"来声明a为全局变量,然后就可以使用a了。需要注意的是,不能在global语句中同时给变量赋值,只能在global语句之前先给变量赋值。比如,要将a设置为5,应该先使用global a声明a为全局变量,然后再将a设置为5,即global a a=5。这样,函数内部就可以使用全局变量a了。 请参考以了解更多关于在Python函数中调用全局变量的方法和注意事项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python如何在函数内部使用全局变量](https://blog.csdn.net/hnjzsyjyj/article/details/121433141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python函数里引用全局变量](https://blog.csdn.net/edward_zcl/article/details/116163319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值