2021/4/15 python日报

一.函数

1.函数的定义

1.函数是指⼀段可以直接被另⼀段程序或代码引⽤的程序或代码。也叫做⼦程
序、⽅法。
2.⼀个较⼤的程序⼀般应分为若⼲个程序块,每⼀个模块⽤来实现⼀个特定的功能。所有的⾼级语⾔中都有⼦程序这个概念,⽤⼦程序实现模块的功能。在C语⾔中,⼦程序的作⽤是由⼀个主函数和若⼲个函数构成。由主函数调⽤其他函数,其他函数也可以互相调⽤。同⼀个函数可以被⼀个或多个函数调⽤任意多次。
3.在程序设计中,常将⼀些常⽤的功能模块编写成函数,放在函数库中供公共选⽤。要善于利⽤函数,以减少重复编写程序段的⼯作量。
4.函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷⻉构造函数、成员函数、友元函数、运算符重载函数、内联函数等。

2.函数的作用

1,减少重复代码

2,方便修改,更易于扩展(加减功能)

3,保持代码一致性(便于一修改一致修改)

二.递归

递归的能⼒在于⽤有限的语句来定义对象的⽆限集合。⼀般来说,递
归需要有边界条件、递归前进段和递归返回段。当边界条件不满⾜时,
递归前进;当边界条件满⾜时,递归返回。
递归三要素:
1、明确递归终⽌条件;
2、给出递归终⽌时的处理办法;
3、提取重复的逻辑,缩⼩问题规模。

递归实现数的阶乘:
def recursion(n):
 if(n==0):
 return 0
 if(n==1):#递归终⽌条件
 return 1 #终⽌时不再向下传递,⽽是进⾏合适的操作。
 else:
 return (n*recursion(n-1)) #⽐如阶乘的逻辑 n! = n*n-1*(n-1)-1*....

三.递归练习

a是⼀个数组, b也是⼀个数组,b中的数据是a中的数据逐项累加得到的。
尝试使⽤递归实现
a=[x1,x2,x3,x4,x5,x6]
b[0]=x1 b[1]=x1+x2 b[2]=x1+x2+x3 …

a = [1, 1, 5, 3, 7, 3, 2]
b = []


def fun(a, b):
    if len(b) == 0:
        b.append(a[0])
    if len(b) < len(a):
        b.append(0)
        b[len(b) - 1] = b[len(b) - 2] + a[len(b) - 1]
        return fun(a,b)
    else:
        print(b)
        
        
print(fun(a, b))

四.二分查找法

二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半

def binarySearch(arr, l, r, x):
    # 基本判断
    if r >= l:

        mid = int(l + (r - l) / 2)

        # 元素整好的中间位置
        if arr[mid] == x:
            print("元素在数组中的索引为 %d" % (mid + 1))

            # 元素小于中间位置的元素,只需要再比较左边的元素
        elif arr[mid] > x:
            return binarySearch(arr, l, mid - 1, x)

            # 元素大于中间位置的元素,只需要再比较右边的元素
        else:
            return binarySearch(arr, mid + 1, r, x)

    else:
        # 不存在
        print('元素不在数组中')


# 测试数组
arr = [2, 3, 4, 5, 6, 7, 10, 40,50,70,90]
x = 6
binarySearch(arr, 0, len(arr)-1, x)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值