# 返回值就是函数执行的结果,并不是所有的函数都必须要有返回值
def add(a, b):
c = a + b
return c #return 表示一个函数的执行结果
result = add(1, 2)
print(result ** 4)
# 如果一个函数没有返回值,它就返回None
#print就是一个内置函数
x = print('hello')
print(x) #None
age = int(input('请输入您的年龄:'))
print(age)
def test1():
print('test1开始了')
print('test1结束了')
def test2():
print('test2开始了')
test1()
print('test2结束了')
test2()
# 定义一个函数,求[n,m)之间所有整数之和
def add(n, m):
x = n
for i in range(n, m):
x += i
return x
result = add(0, 101)
print(result)
# 求一个数的阶乘
def factorial(n):
x = 1
for i in range(1, n+1):
x *= i
return x
print(factorial(5))
# 计算m阶乘的和 m = 6 ==>1!+2!+3!+4!+5!+6!
def fac_sum(m):
x = 0
for i in range(1, m + 1):
x += factorial(i)
return x
m = fac_sum(5)
print(m)
全局变量和局部变量
a = 100 #这个变量是全局变量,在整个py文件里面都可以访问
world = 'hello'
def test():
x = 'hello' #变量是函数内部定义的变量,是局部变量,只能在函数内部使用
print('x = {}'.format(x))
#如果局部变量的名和全局变量同名,会在函数内部又定义了一个新的局部变量
#而不是修改全局变量
a = 10
print(a)
# 在函数内部如果想要修改全局变量
# 使用global对变量进行声明,可以通过函数修改全局变量的值
global world
world = 'ok'
print('locals = {}, globals = {}'.format(locals(),globals())) #locals = {'a': 10, 'x': 'hello'}, globals = {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002017662B0B8>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Python代码/day7/11-全局变量和局部变量.py', '__cached__': None, 'a': 100, 'world': 'ok', 'test': <function test at 0x00000201765D1F28>}
# print(x) #x只能在函数内部使用
print(a) #100
test()
print(world)
# 内置函数 globals() locals() 可以查看全局变量和局部变量
# 在python里只有函数能够分割作用域
if 3 > 2:
m = 'hi'
print(m)
函数多个返回值
def test(a, b):
x = a // b
y = a % b
# return x # return表示一个函数的结束,所以一个函数最多只执行一个return语句
#特殊情况有可能执行多个return语句(在final语句中)
# return y #说明这个语句就没有走到
# return [x, y] #[2, 3]
# return (x, y)
# return x, y #实际上返回的就是一个元组
# return {'x': x, 'y': y}
result = test(13, 5) #2 3
print(result) # 2