【Python】函数专题(知识总结、习题精练与编程实战)_python函数题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

本文来自专栏:Python基础教程
欢迎点击支持订阅专栏 ❤️
在这里插入图片描述

文章目录

1 函数简介与快速入门

函数即 把具有独立功能的代码块组织成一个小模块。 可以在开发让我们在开发程序时 提高编写效率以及提高代码的复用率。

这么说可能体会不到函数的好处,我们来实际体会一下,下面的代码块是用于打印乘法口诀表的,当程序运行时,就会打印一次乘法口诀表:

for i in range(1, 10):
    for j in range(1, i+1):
        print(j, " \* ", i, " = ", i\*j, end="\t")
    print()

如果需要将乘法口诀表打印100次呢? 难道需要将上面的代码块写 100次吗?答案是否定的,当我们学习了函数过后,只需要像下面那样定义一个函数,将打印乘法口诀表功能的代码块封装到函数里面:

def myprint():
    for i in range(1, 10):
        for j in range(1, i+1):
            print(j, " \* ", i, " = ", i\*j, end="\t")
        print()

当需要打印乘法口诀表时,只需要调用定义过的 myprint() 函数即可,下面的代码就将乘法口诀表打印了6次!!!

myprint()
myprint()
myprint()
myprint()
myprint()
myprint()

怎么样?是不是非常简洁!下面我们开始系统学习函数相关的知识~


2 函数使用

2.1 函数的定义与说明

🆔 函数声明的基本格式如下:

def 函数名(参数列表):

	封装的代码
	返回值
	...

🍑 说明:

  • def是英文define的缩写;
  • 函数名应该能表达函数封装代码的功能, 增加程序的可读性,也方便将来的使用;
  • 参数列表和返回值根据程序需要选择性添加;
  • 函数名称需要符合标识符的命名规则。

📖 标识符的命名规则:(回顾)

  • 可以由字母、下划线和数字组成;
  • 不能以数字开头,且不能与关键字重名。

2.2 函数的文档注释

🐱 在实际开发中,如果希望给函数添加注释,则应该在 定义函数 下方,使用 连续的三对引号 添加文档注释:

  1. 引号中间添加对函数的说明性文字;
  2. 函数调用的位置,使用快捷键 CTRL + Q 可以查看函数的说明信息;
    在这里插入图片描述
  3. 在函数定义的上方,应该与其他的代码及注释保留两个空行。

2.3 函数的参数

函数的 参数在函数名后的小括号内部填写, 多个参数见以 分隔。
简单演示一下求两数之和的函数,在该函数中有两个参数,调用该函数则会打印两数和的结果,每次调用传入的参数不同,打印的结果不同,使函数更加灵活

def sum(num1, num2):
    result = num1 + num2
    print("%d + %d = %d" % (num1, num2, result))


sum(1, 3)
sum(99, 1)

在这里插入图片描述

🐍 辨析实参与形参

  • 形参: 定义函数时,小括号内的参数,是用来接收参数的,在函数内部作为变量使用,例如上面 sum 函数中的 num1与num2;
  • 实参: 调用函数时,小括号中的参数,是用来传递数据到函数内部使用的,例如在上述 sum 函数中的 1和3,99和1。

2.4 函数的返回值

🆔 在程序开发中,如果希望 函数在执行结束后返回一个结果,以便调用者进行后续处理, 则需要给函数一个返回值。

  • 在函数中使用 return 关键字返回结果;
  • 调用函数的一方,可以使用变量来接收函数的返回值;
  • return 表示返回,当该语句执行,则后续代码不会执行。

我们对之前的求和函数设计一个返回值,使 sum 返回两数的和,在外部调用时筛选出和大于5的情况

def sum(num1, num2):
    return num1 + num2


for i in range(1, 6):
    for j in range(i, 6):
        result = sum(i, j)
        if result > 5:
            print(i, " + ", j, " = ", result)

在这里插入图片描述

2.5 函数的嵌套调用

🆔 即在一个函数里面调用了另外的函数,我们来看下面这段代码:

def method01():
    print("method01")
    method02()
    print("method01")


def method02():
    print("---method02---")


method01()

在这里插入图片描述

🐉说明:

  • 当调用 method01 时,先执行 method01 方法体内的语句,当执行到调用 method02() 这条语句时,则先执行完 method02() 内的所有语句再执行 method01() 方法的剩余语句。

3 函数专项训练

3.1 斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
在这里插入图片描述

🐈 问题: 请你编写一函数 Fabonacci(n),其中参数 n 代表第 n 次的迭代,来实现求斐波那契第 n 项值的功能。

1️⃣ 方式一:使用递归
Tips:如果同学不熟悉递归,可以参考下博主的这篇文章:
❤️深入浅出悟透递归❤️

# 返回斐波那契数列的第 n 项
def fabonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fabonacci(n-1) + fabonacci(n-2)

2️⃣ 方式二:使用循环

# 返回斐波那契数列的第 n 项
def fabonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        num1 = 1  # 第一项
        num2 = 1  # 第二项
        result = 0  # 记录结果
        while n > 2:
            result = num1 + num2
            num1 = num2
            num2 = result
            n = n - 1
        return result

测试代码如下,用于打印斐波那契数列的前10项:

# 尝试打印斐波那契前10项
for i in range(1, 11):
    print(fabonacci(i), end=" ")

在这里插入图片描述

3.2 素数判断

质数(素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

mg-WWuvysdD-1715355342887)]
[外链图片转存中…(img-bWlamDY6-1715355342888)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值