鱼C论坛

 找回密码
 立即注册
查看: 1878|回复: 13

[已解决]如何理解def???

[复制链接]
发表于 2022-6-29 13:27:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jcpython2 于 2022-6-29 13:29 编辑

看了很多def 片段还是不能理解,并且无法应用出来?

求入门级的具体解释 我只能理解def用来打包代码中的代码片段
最佳答案
2022-6-29 13:51:10
定义函数
def(define 定义)

白米 ---- 煮 ----> 白饭

煮的过程就是函数,白米就是参数,你把煮的过程(代码)打包起来,就是函数

def 煮(米):
    --- 煮的过程 ---
    return 饭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-29 13:51:10 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
定义函数
def(define 定义)

白米 ---- 煮 ----> 白饭

煮的过程就是函数,白米就是参数,你把煮的过程(代码)打包起来,就是函数

def 煮(米):
    --- 煮的过程 ---
    return 饭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-6-29 14:59:46 | 显示全部楼层
def 就是定义函数的关键字,函数就是一个实现某结果的代码片段的集合。

比如你想通过代码计算某结果,实现这个功能要100行代码。
然后你的代码其他地方也要通过相同代码计算结果,你总不可能每计算一次就写完全相同的100行代码吧?
那你就可以通过 def 关键字把这 100 行代码包装成一个函数,每次想计算结果就调用这个函数就可以了。


例子:计算某数加10的结果 -- 不定义函数前

  1. x1 = 1
  2. x2 = 9
  3. x3 = 6

  4. a = x1 + 10
  5. print("加10结果是:", a)
  6. b = x2 + 10
  7. print("加10结果是:", b)
  8. c = x3 + 10
  9. print("加10结果是:", c)
复制代码


例子:计算某数加10的结果 -- 定义函数后

  1. x1 = 1
  2. x2 = 9
  3. x3 = 6

  4. def jisuan(x):
  5.     # 计算过程
  6.     v = x + 10
  7.     print("加10结果是:", v)

  8. # 调用相同的代码实现计算结果
  9. jisuan(x1)
  10. jisuan(x2)
  11. jisuan(x3)
复制代码


对于计算过程代码量少的情况,定义函数没啥优势,但是对于动辄数百行的计算过程来说,就是一个天一个地,你想想每次计算就写相同的数百行代码简洁还是每次计算就写一个短短几个字母的函数名简洁?

评分

参与人数 1鱼币 +1 收起 理由
天弈溟 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-6-29 15:33:14 | 显示全部楼层
傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)

这个解释太6了  笑死我了   太可爱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-29 15:43:01 From FishC Mobile | 显示全部楼层
镜花丿水月 发表于 2022-6-29 15:33
这个解释太6了  笑死我了   太可爱了


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-29 16:02:17 | 显示全部楼层
傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)
  1. def lista(a,b):

  2.     print(a,b)
  3.     return
  4. lista(123,123)


复制代码



老哥我问漏了个return

像我上面这个代码有没有return都是一样的,有必要加这个return吗,这是我在别的网看手册例子的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-29 16:06:32 | 显示全部楼层
傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)
  1. def printme(a):
  2.     print(a)
  3.     return
  4. a = input('ip')
  5. printme(a)
  6. print(printme(a))
复制代码


最后输出为啥用print会自带一个None?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-29 16:33:51 From FishC Mobile | 显示全部楼层
jcpython2 发表于 2022-6-29 16:02
老哥我问漏了个return

像我上面这个代码有没有return都是一样的,有必要加这个return吗,这是我 ...

有没有 return 视情况而定,比如你想要结果,就 return 吧,如果不需要结果,只需运行代码,那么就不用 return

例子 1:

def 煮(米):
    ---- 煮的过程 ----
    return 饭

例子 2:

def 观察(动物):
    ---- 观察的过程 ----

一般例子 2 只要求其过程,不要求返回值,return 可有可无,比如:

def foo(xxx):
    print(xxx)
    # 没有任何返回值,return 可有可无

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-29 16:36:54 | 显示全部楼层
hrpzcf 发表于 2022-6-29 14:59
def 就是定义函数的关键字,函数就是一个实现某结果的代码片段的集合。

比如你想通过代码计算某结果,实 ...

感谢老哥的详细解释,可惜这帖子设为最佳答案智能设置一个帖子,我以时间作为了标准,你的答案也是受益良多,我写进了笔记
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-29 16:54:51 From FishC Mobile | 显示全部楼层
jcpython2 发表于 2022-6-29 16:36
感谢老哥的详细解释,可惜这帖子设为最佳答案智能设置一个帖子,我以时间作为了标准,你的答案也是受益良 ...

好的,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-29 22:35:40 | 显示全部楼层

老哥 我7楼那个输出了none的问题能解释下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-30 08:22:43 From FishC Mobile | 显示全部楼层
jcpython2 发表于 2022-6-29 22:35
老哥 我7楼那个输出了none的问题能解释下吗

因为你 return 没有任何东西,所以输出 None,就好像 Python 内置函数 print() 一样,不会返回任何东西,所以返回 None。

通常这种函数 return 可有可无,如:

def foo():
    xxxxxx
    return

def foo():
    xxxxxx

这两个函数一样返回 None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-30 08:29:31 From FishC Mobile | 显示全部楼层
jcpython2 发表于 2022-6-29 22:35
老哥 我7楼那个输出了none的问题能解释下吗

如果你的函数 return 后面有东西,那么它返回的就是那个东西,比如:

def foo():
    xxxxxx
    return 13

def foo():
    xxxxxx
    return "hello"

def foo():
    x = 45
    return x
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-30 09:26:57 | 显示全部楼层
傻眼貓咪 发表于 2022-6-30 08:29
如果你的函数 return 后面有东西,那么它返回的就是那个东西,比如:

def foo():

感谢,这两天加紧练习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表