600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 零基础入门学习Python(16)-函数1 Python的乐高积木

零基础入门学习Python(16)-函数1 Python的乐高积木

时间:2024-08-29 01:22:24

相关推荐

零基础入门学习Python(16)-函数1 Python的乐高积木

什么是函数?

函数就是把代码打包成不同形状的乐高积木,以便可以发挥想象力进行随意拼装和反复使用一个程序可以按照不同功能的实现,分割成许许多多的代码块,每一个代码块就可以封装成一个函数

在Python中创建一个函数

def关键字

def myfirstfunction():#一定要有小括号print('这是我创建的第一个函数!')print('我表示很激动.....')print('在此我要感谢小甲鱼,感谢pdd')

如何调用一个函数?

直接写出函数的名字再加上小括号就ok啦

如何调用3次该函数,用for循环

函数的实现原理

当函数发生调用操作时,Python会自动往上找到该函数的定义过程,然后依次执行该函数所包含的代码块部分,即冒号后面的缩进部分内容,只需要一条语句,就可以轻松实现函数内的所有功能

函数的参数

有了参数之后,函数就变得可变了

函数可以有多个参数,用“,”隔开即可,但是定义函数的参数尽量不要太多,函数功能和参数意义一定要写好心相应注释

函数的返回值

有时候需要函数返回一些数据来报告执行的结果,即函数需要返回值,只要在函数中使用关键字return即可,后面跟着的就是指定要返回的值

Task

0. 你有听说过DRY吗?

DRY是程序员们公认的原则:Don’t Repeat Yourself

1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?

使用函数有以下好处:

可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)使序更容易阅读(没有人会希望看到一个程序重复一万行“I love ”

2. 函数可以有多个参数吗?

可以,但最好不要太多,在python的世界里,精简才是王道

3. 创建函数使用什么关键字,要注意什么?

def ,注意加小括号,小括号后面是冒号

4. 请问这个函数有多少个参数?

def MyFun((x, y), (a, b)):return x * y - a * b

答案是 0,因为类似于这样的写法是错误的!

>>> def MyFun(x, y):return x[0] * x[1] - y[0] * y[1]>>> MyFun((3, 4), (1, 2))10

我们分析下,函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的。

5. 请问调用以下这个函数会打印什么内容?

>>> def hello():print('Hello World!')returnprint('Welcome To !')

因为当 Python 执行到 return 语句的时候,Python 认为函数到此结束,需要返回了(尽管没有任何返回值)。

6.编写一个函数 power() 模拟内建函数 pow(),即 power(x, y) 为计算并返回 x 的 y 次幂的值。

def power(x,y):return (x ** y)

7. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如 gcd(x, y) 返回值为参数 x 和参数 y 的最大公约数。

我的代码

def gcd(x,y):#求x和y的最大公约数a = max(x,y)b = min(x,y)c = a % bwhile c:a = bb = cc = a % breturn b

小甲鱼代码:小甲鱼没有判断xy谁大谁小

def gcd(x, y):while y:t = x % yx = yy = treturn x

8.编写一个将十进制转换为二进制的函数,要求采用“除2取余”(补脑链接)的方式,结果与调用 bin() 一样返回字符串形式。

代码1:利用pop倒取

def binnn(a):#十进制转二进制temp = []result = ''while a:b = a % 2a = a // 2temp.append(b)while temp:result += str(temp.pop())#利用pop倒取return ("0b" + result)

代码2:利用reverse方法倒取

def binnn(a):#十进制转二进制temp = []while a:b = a % 2a = a // 2temp.append(b)temp.reverse()for i in temp:print(i,end = '')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。