函数
一、对函数的理解
函数是组织好的,可重复使用的,用来实现单一,或者实现相关联的代码块
1、def语句和参数
# name是一个变元也相当于一个变量
def hello(name):
print('hello '+name)
# Bob,Joed都是参数
hello('Bob')
hello('Joe')
2、返回值和return语句
- return是关键字
- 函数应该返回的值或表达式
# 导入random模块
import random
# 定义getAnswer()函数
def getAnswer(answerNumber):
if answerNumber==1:
return 'It is certain'
elif answerNumber==2:
return 'hello world '*3
elif answerNumber ==3:
return 'ok'
# 输出1到9之间的随机一个整数 存在变量r中
r = random.randint(1, 3)
# getAnswer()被调用,r作为参数,返回一个字符串并赋给变量fortune
fortune = getAnswer(r)
# 最后打印输出
print(fortune)
后三行代码还可以缩写为一行代码
print(getAnswer(random.randint(1,9)))
3、None值
表示的含义就是没有值(首字母必须大写)
spam = print('123')
print(spam)
None ==spam
#结果返回None
4、关键字参数和print()
①关键字参数:是由函数调用时加载他们前面的关键字来识别的。关键字通常用于可选变元
②print()函数有可选变元end和sep,分别制定参数末尾打印什么。以及参数之间打印什么来隔开
print('hello', end='+'*5)
print('world')
# 运行结果hello+++++world
sep是替换掉默认的分隔符
5、局部和全局作用域
- 局部变量:所处局部作用域,在函数的内部
- 全局变量:处于全局作用域,在函数的外部
- 全局作用域中的代码不能使用任何局部变量,但是,局部变量可以访问全局变量
- 一个函数的局部作用域中的代码,不能使用其他作用域中的局部变量
- 两个不同作用域的局部变量可以使用同一个变量名
①局部变量不能在全局作用域使用
def spam():
eggs = 31337
spam()
print(eggs)

②局部作用域不能使用其他局部作用域的变量
def spam():
eggs = 31337
bacon()
print(eggs)
def bacon():
ham =101
eggs = 0
spam()

③全局变量可以在局部作用域中读取
def spam():
print(eggs)
eggs = 42
spam()

④应该避免在不同作用域使用相同的变量名(追踪在什么时候使用哪个变量比较方便)
6、global语句
在函数内将局部变量转换为全局变量就得使用变量名前加global
def spam():
global eggs
eggs = 33
spam()
print(eggs)
上一节 下一节 返回目录

浙公网安备 33010602011771号