Python函数

2018-06-12  本文已影响0人  心明道长

函数

# 定义一个函数
# 只是定义的话不会执行
# 1. def关键字,后跟一个空格
# 2. 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用
# 3. 后面括号和冒号不能省,括号内可以由参数
# 4. 函数内所有代码缩进

def func():
    print("我是一个函数")
    print("我要完成一定功能")
print("我结束了")

函数的参数和返回值

def hello(person):
    print("{0}, 你好".format(person))
 
p = "明月"
hello(p)

参数详解

            def 函数名(参数1, 参数2,....):
                函数体
                
            # 调用
            函数名(value1, value2,.......)
            
            # 调用的时候,具体值参考的是位置,按位置赋值

关键字参数

收集参数

收集参数之关键字收集参数

收集参数混合调用的顺序问题

函数文档

def stu(name, age):
    '''
    这是文档的文字内容
    :param name: 表示学生的姓名
    :param age: 表示学生的年龄
    :return: 此函数没有返回值
    '''
    pass


print(help(stu))

print("*" * 20)

print(stu.__doc__)

变量作用域

# 认为a1是全局的
a1 = 100

def fun():
    print(a1)
    print("I am in fun")
    # a2的作用范围是fun
    a2 = 99
    print(a2)
    
    
print(a1)
fun()
print(a2)
# 斐波那契额数列
# 一列数字,第一个值是1, 第二个也是1, 从第三个开始,每一个数字的值等于前两个数字出现的值的和
# 数学公式为: f(1) = 1, f(2) = 1, f(n) = f(n-1) + f(n-2)
# 例如: 1,1,2,3,5,8,13.。。。。。。。。

# 下面求斐波那契数列函数有一定问题,比如n一开始就是负数,如何修正
# n表示求第n个数子的斐波那契数列的值
def fib(n):
    if n == 1:
        return 1
    
    if n == 2:
        return 1
    
    # 思考:为什么后面return能够正确执行,而不用else语句
    return fib(n-1) + fib(n-2)

print(fib(3))
print(fib(10))
上一篇 下一篇

猜你喜欢

热点阅读