# __author__:Nzkalhbxx
# __date__:17-10-30
print("函数的返回值".center(33, "-"))
def printName(name):
print("my name is %s"%name)
# None为默认返回值
return None
printName("psj")
def add(x, y):
result = x + y
return result
print(add(3, 7))
def printMessage(name, age, hobby):
# 当函数返回多个值时, python会将数据打包成元组作为return值
return name, age, hobby
print(printMessage(name = "psj", age = 19, hobby = "passion fruit"))
print("变量的作用域".center(33, "-"))
# 定义在函数之外的全部变量在全局可用
count = 3
def fun1():
print("局部变量".center(21, "-"))
# 定义在函数内部的变量称为局部变量
count = 7
print(count)
def fun2():
print("嵌套在父集函数内的局部变量".center(21, "-"))
count = 11
print(count)
fun2()
return fun2
returnFun = fun1()
returnFun()
def use_define():
# 语法报错: 由于在函数内有一个与全部变量同名的局部变量, 因此会使用局部变量, 但由于先使用后定义, 因此报错
# print(count)
# 语法报错: 由于函数内又定义了一个count, 而count在使用定义时使用了自身, 而自身又是未定义的, 因此报错
# count = count + 1 # UnboundLocalError: local variable 'count' referenced before assignment
# 当函数中要定义并使用一个与全局变量名相同的变量, 为了在未声明之前就可以使用变量而不报错, 可以使用global来声明函数中使用的变量是全部变量
global count
count += 1
num = 1
def use_define2():
nonlocal num
# 报错: 未声明即使用, 解决方法, 使用nonlocal关键字声明变量不是本地变量而是上一层函数中的变量
num += 1
print("num in def2: " + str(num))
use_define2()
print("num in def1: " + str(num))
return "Can't use variates before definition"
message = use_define()
print("count of out: "+ str(count))
print(message)
运行结果
网友评论