Python入门-全局变量、main函数

一、全局变量

在函数外面声明的变量称为全局变量,程序中的任何函数都可以读取它。但是,在函数中给全局变量重复赋值需要特小心。如以下代码:

#global.py
name='Tony'
def say_hello():
    print('Hello '+name+'!')
def change_name(new_name):
    name=new_name

第一个name变量是全局变量,因为它是函数外面声明的。函数say_hello()读取变量name的值,将其打印到屏幕上,这和预期的一致:

>>> say_hello()
Hello Tony!


然而,调用change_name时结果却不符合预期:

>>> change_name('Evan')
>>> say_hello()
Hello Tony!

全局变量name的值并没有发生变化,依然是Tony。问题在于Python将函数change_name中的变量name视为局部变量。

要访问全局变量,必须使用关键字global;

#global_correct.py
name='Tony'
def say_hello():
    print('Hello '+name+'!')
def change_name(new_name):
    global name
    name=new_name


这两个函数均符合预期:

>>> say_hello()
Hello Tony!
>>> change_name('Evan')
>>> say_hello()
Hello Evan!


二、使用main函数

编写相应Python程序时,通常至少有一个函数:main()。因为根据约定,main()函数被认为是程序的起点。例如:

#password.py
def main():
  pwd=input('What is the password?')
  if pwd=='intely':
      print('logging on...')
  else:
      print('Incorrect password.')
  print('All done.')


注意:所有的代码都位于函数头main后面,并缩进了。

运行该代码的时候,什么都不会发生,而只是出现一个提示符号。必须要输入main()来执行该代码。

结果:

>>> main()
What is the password?inte
Incorrect password.
All done.
>>> main()
What is the password?intely
logging on...
All done.


使用main函数的优点是:可以更轻松地反复运行程序,还可以传递输入值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值