xieqingrui-python-day05

回顾

# 变量和运算符
# 判断和循环
# Number(int float) /String / list [] / tuple () / dict {:} / set {}
# 6 中常用数据类型

# 函数 function
# 参数列表也叫形参
# def 函数名(参数列表):
#     函数体
#     [return]

def func(x):
    y = 5*x + 2
    return y
# 函数的调用
# 函数名(实参)
result = func(100)
print(result)

def hello():
    print("hello")
def hello2(name):
    print("Hi, {}".format(name))
hello()
hello2("eric")

函数的分类

按照参数和返回值

# 无参无返回
def hi():
    print("Hi")
    return
print(hi())
# 无参有返回
def hi2():
    return "hello"
print(hi2())
# 有参无返回
def twoSum(x, y):
    print("x + y = ", x + y)
twoSum(10, 20)
# 有参有返回
def calcuteSum(n):
    mySum = 0
    for i in range(1, n+1):
        mySum += i
    return mySum
print(calcuteSum(10))
print(calcuteSum(100))

#  []列表 求出最大值 , 最大值 + c
ls = [i for i in range(10)]
print(ls)
def getMax(ls):
    if len(ls) ==0 :
        # return 2个作用 返回值, 第二个结束函数
        return
    maxNum = ls[0]
    for num in ls:
        if num > maxNum:
            maxNum  =  num
    return maxNum
print(getMax([]))
c = 100
twoSum(getMax(ls), c)
twoSum(calcuteSum(10), c)

函数的参数

  • 必须参数和关键字参数
# 函数的参数
# 必须参数 : 声明是传入的顺序和调用时要保持一致
def func(fuhao, x, y):
    if fuhao == "+":
        print("做加法")
        return x + y
    elif fuhao == "-":
        print("做减法")
        return x - y
    elif fuhao == "*":
        print("做乘法")
        return x * y
    elif fuhao == "/":
        print("做除法")
        return x / y
    else:
        print("输入错误")
        return
print(func("+", 10, 20))
print(func("-", 10, 20))
print(func("*", 10, 20))
print(func("/", 10, 20))
# 关键字参数  调用时的顺序可和声明不一样
# key = value   形参 = 实参
print(func(x=20, y=100, fuhao="/"))
print(func(y=100, fuhao="/", x=20))

  • 默认参数
# 函数的参数
# 默认参数, 必须在必须参数后面
def func(x, y, fuhao= "+" ):
    if fuhao == "+":
        print("做加法")
        return x + y
    elif fuhao == "-":
        print("做减法")
        return x - y
    elif fuhao == "*":
        print("做乘法")
        return x * y
    elif fuhao == "/":
        print("做除法")
        return x / y
    else:
        print("输入错误")
        return
print(func(10, 20, "*"))
print(func(10, 20))

递归函数

函数自己调用自己

# def func():
#     return 100
# def func2():
#     return func() + 200
#
# print(func2())

# 1 + 2 + 3....+ n
# 递归需要设置终止条件
def f(n):
    if n == 1:
        return 1
    return f(n-1) + n
# 把问题转化成更小大规律单元
print(f(5))
print(f(100))
# 1 * 2 * 3....* n
def f(n):
    if n==1:
        return 1
    return f(n-1)*n
print(f(12))

# 斐波那契数列数列
# 1, 1, 2, 3, 5, 8, 13, 21
# 求斐波那契数列数列的第n项
def fibo(n):
    if n in [1, 2]:
        return 1
    return fibo(n-1) + fibo(n-2)
print(fibo(5))
print(fibo(6))
print(fibo(7))
print(fibo(8))
from random import randint
ls = [randint(1, 20) for _ in range(10)]
print(ls)
print(sum(ls))
# 用递归求列表的累加和
def f(ls):
    if len(ls) == 1:
        return ls[0]
    return ls[0] + f(ls[1:])
print(f(ls))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值