jcpython2 发表于 2022-6-29 13:27:29

如何理解def???

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

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

求入门级的具体解释{:5_100:} 我只能理解def用来打包代码中的代码片段

傻眼貓咪 发表于 2022-6-29 13:51:10

定义函数
def(define 定义)

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

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

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

hrpzcf 发表于 2022-6-29 14:59:46

def 就是定义函数的关键字,函数就是一个实现某结果的代码片段的集合。

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


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

x1 = 1
x2 = 9
x3 = 6

a = x1 + 10
print("加10结果是:", a)
b = x2 + 10
print("加10结果是:", b)
c = x3 + 10
print("加10结果是:", c)


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

x1 = 1
x2 = 9
x3 = 6

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

# 调用相同的代码实现计算结果
jisuan(x1)
jisuan(x2)
jisuan(x3)

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

镜花丿水月 发表于 2022-6-29 15:33:14

傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)



这个解释太6了笑死我了   太可爱了

傻眼貓咪 发表于 2022-6-29 15:43:01

镜花丿水月 发表于 2022-6-29 15:33
这个解释太6了笑死我了   太可爱了

{:10_257:}

jcpython2 发表于 2022-6-29 16:02:17

傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)



def lista(a,b):

    print(a,b)
    return
lista(123,123)





老哥我问漏了个return

像我上面这个代码有没有return都是一样的,有必要加这个return吗,这是我在别的网看手册例子的

jcpython2 发表于 2022-6-29 16:06:32

傻眼貓咪 发表于 2022-6-29 13:51
定义函数
def(define 定义)



def printme(a):
    print(a)
    return
a = input('ip')
printme(a)
print(printme(a))

最后输出为啥用print会自带一个None?

傻眼貓咪 发表于 2022-6-29 16:33:51

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 可有可无

jcpython2 发表于 2022-6-29 16:36:54

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

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

感谢老哥的详细解释,可惜这帖子设为最佳答案智能设置一个帖子,我以时间作为了标准,你的答案也是受益良多,我写进了笔记

傻眼貓咪 发表于 2022-6-29 16:54:51

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

好的,谢谢你{:10_254:}

jcpython2 发表于 2022-6-29 22:35:40

傻眼貓咪 发表于 2022-6-29 16:54
好的,谢谢你

老哥 我7楼那个输出了none的问题能解释下吗

傻眼貓咪 发表于 2022-6-30 08:22:43

jcpython2 发表于 2022-6-29 22:35
老哥 我7楼那个输出了none的问题能解释下吗

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

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

def foo():
    xxxxxx
    return

def foo():
    xxxxxx

这两个函数一样返回 None

傻眼貓咪 发表于 2022-6-30 08:29:31

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

jcpython2 发表于 2022-6-30 09:26:57

傻眼貓咪 发表于 2022-6-30 08:29
如果你的函数 return 后面有东西,那么它返回的就是那个东西,比如:

def foo():


感谢,这两天加紧练习
页: [1]
查看完整版本: 如何理解def???