定义函数时的问题
刚开始学函数,我有下面几个问题:{:10_297:}0定义函数时是不是如果不写return它还是有返回值none?
1下面这两个函数有什么不同
def fire():
pass
return '轰,发射成功!'
以及
def fire():
print('轰,发射成功!')
我看他们返回的都是一样的,那到底有什么不同呢?{:10_245:}
可不可以用print()代替return呢?
谢谢大家{:10_254:} pass是python里面的关键字,作用是占位符。
浅显的理解pass 就是没什么用的关键字,啥也不干。 def fire():
print('轰,发射成功!')
print(fire())
会输出:轰,发射成功!,None z5560636 发表于 2021-2-24 17:36
会输出:轰,发射成功!,None
可是正常使用是一样的呀 柿子饼同学 发表于 2021-2-24 17:41
可是正常使用是一样的呀
并不是所有的返回值都是用来打印的
需要打印的时候,用return+调用的时候print 和 直接打印是一样的
更多的时候返回值另有他用,不能用print代替 昨非 发表于 2021-2-24 17:48
并不是所有的返回值都是用来打印的
需要打印的时候,用return+调用的时候print 和 直接打印是一样的
举个栗子好么,谢谢{:10_297:} 还是不知道return除了打印还能干什么 柿子饼同学 发表于 2021-2-24 17:53
举个栗子好么,谢谢
这两种情况效果是一样地def fun1():
return 'hello'
def fun2():
print('hello')
print(fun1())
fun2()
结果:hello
hello 柿子饼同学 发表于 2021-2-24 17:41
可是正常使用是一样的呀
def fire():
print('轰,发射成功!')
a = fire()
print(a)
def fire():
a = '轰,发射成功!'
a = fire()
print(a)
试试 本帖最后由 曼查克 于 2021-2-24 18:13 编辑
关于return这个例子希望对你的理解有帮助
>>> def a():
b = 1
return b
>>> c = a()
>>> c
1
>>>
print的作用只是在交互界面上打印出想打印的字符,而return是实实在在的传出了一个值,可以交给程式使用。 def fun1():
return '123'
def fun2():
print('123')
print('运行fun1()')
fun1()
print('运行fun2()')
fun2()
print('----------分割线--------------')
print('赋值操作 fun1()')
s1 = fun1()
print('赋值操作 fun2()')
s2 = fun2()
print('----------分割线--------------')
print(type(s1))
print(type(s2))
运行结果:
运行fun1()
运行fun2()
123
----------分割线--------------
赋值操作 fun1()
赋值操作 fun2()
123
----------分割线--------------
<class 'str'>
<class 'NoneType'> 有返回值的可以被赋值,没有返回值就会返回None
def fire():
pass
return '轰,发射成功!'
def fire2():
print( '轰,发射成功!')
>>> a = fire()
>>> b = fire2()
轰,发射成功!
>>> print(a)
轰,发射成功!
>>> print(b)
None
>>> type(a)
<class 'str'>
>>> type(b)
<class 'NoneType'>
>>>
怎么说呢,如果你需要在其他地方继续使用函数里面的某个变量,你就需要用 return 语句将该变量传递给需要使用的地方
如果你只是需要打印,就可以直接在函数里面进行打印,而不需要 return
所以,需不需要 return 完全看你要不要在其他地方使用函数里面的东西 Daniel_Zhang 发表于 2021-2-24 18:42
怎么说呢,如果你需要在其他地方继续使用函数里面的某个变量,你就需要用 return 语句将该变量传递给需要使 ...
比如说,我这定义一个函数:
def num():
n = 3
return n
然后我怎么写才能把n传输到别的地方呢?(比如想在另一个函数里使用n){:10_297:} 谢谢大家 def num():
n = 3
return n
def call_num(num):# 调用并打印 n 的值
print(num)
get_num = num()# 在此处通过调用 num() 传入 n 的值并赋值给 get_num 并打印
print(get_num)
# 也可以直接打印 num() 传递的值, 即打印 n 的值
print(num())
# 或者在其他的函数中调用 n 的值
call_num(num())
柿子饼同学 发表于 2021-2-24 21:58
比如说,我这定义一个函数:
然后我怎么写才能把n传输到别的地方呢?(比如想在另一个函数里使用n){: ...
#定义函数num()
def num():
n = 3
return n
#定义函数num2()
def num2(n):
return n**2
n = num()
m = num2(n)
print(m)
在这个例子中,我们把函数num()的返回值 赋值给n
也就是 n = num()
拿到了num()的结果3
再将 n 传入 给函数num2() 赋值给 m
也就是
m = num2(n)
m = num2(3)
m = 3**2
m = 9
或者直接将函数num()作为num2()的参数
#定义函数num()
def num():
n = 3
return n
#定义函数num2()
def num2(n):
return n**2
m = num2(num())
print(m)
结果
9 代码性质上有些区别
(1):
def fire():
pass#占位符,可以删掉
return '轰,发射成功!'
print(fire)#用print语句打印返回的值
(2):
def fire():
print('轰,发射成功!')
fire()#调用函数后打印出的结果
如果打印出代码(2)fire函数的值是会产生以下的结果
>>> def fire():
print('轰,发射成功!')
>>> print(fire())
轰,发射成功!
None
以上是代码的区别 柿子饼同学 发表于 2021-2-24 17:55
还是不知道return除了打印还能干什么
return 可以返回一个值,也可以实现闭包的作用
input函数的返回值应该就是通过return函数实现的
以下是一个return的例子
def A(a, b):
return a + b
def B(c):
_ = A(6,9)
return _ * c
print(B(4))
print无法实现值的传递效果 逃兵 发表于 2021-2-25 08:44
在这个例子中,我们把函数num()的返回值 赋值给n
也就是 n = num()
在对函数的赋值操作时,到底是先赋值还是先把函数结果算出来再赋值呢{:10_257:}
页:
[1]
2