Python初学者的问题

img


我想请问下这里为啥非要加return来反悔一个值呢。这题不用函数就做不出来吗?我没想出其他的办法

不用函数也可以,函数大部分时候都可以被取代


n = 5
for i in range(1,n):
    n*=i
    print(n)

但是最好用上函数因为函数可以提高复用性
比如说我想计算5,6,7的阶乘
不用函数时

n = 5
for i in range(1,n):
    n*=i
print(n)
n = 6
for i in range(1,n):
    n*=i
print(n)
n = 7
for i in range(1,n):
    n*=i
print(n)

使用函数时


def name(n):
    sum = 0
    if n == 0:
        sum = 1
    else:
        sum = n * name(n-1)
    return sum
print(name(5))
print(name(6))
print(name(7))

所以多使用函数有好处的
至于返回值其实类似于

# print(name(5)) 等同于
i = name(5)
print(i)
# 用i先接受name(5)的返回值,再输出i,也就是说实际输出的就是返回值,
# 如果不写return,就没有返回值,也就输出了个寂寞

刚开始学python可以不使用函数,直接在主函数(if name == 'main':)中,执行楼上的代码就好了。使用函数的目的就是提高代码效率。比如说你需要多次求阶乘,这个时候如果你在主函数写的话,就要写一遍又一遍,费力又耗时。那么你就可以定义一个函数,之后要使用的话在主函数中调用即可。return的作用就是将函数里面的某个变量返回给主函数,以你代码为例,在主函数中写入, a = name(5),就能将name函数返回的结果赋值给a。当然不一定要赋值,如果你直接在函数中print打印结果的话,那么你返不返回结果都不重要。无论是否编写函数,你都需要先理解题目才能作出相应的解决方案。

你这是在学习,他当然要教你各种各样的语法,这个例子只是在教你可以在函数里可以掉用自己,来实现迭代的效果。如果是有复杂的逻辑,你自然会发现这种写法的好处,现阶段建议先把语法吃透