一、全局变量
在函数外面声明的变量称为全局变量,程序中的任何函数都可以读取它。但是,在函数中给全局变量重复赋值需要特小心。如以下代码:
#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('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!
编写相应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()
What is the password?inte
Incorrect password.
All done.
>>> main()
What is the password?intely
logging on...
All done.