def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c)
1、为什么没有报错? 2、执行过程中到底执行了哪个 c ?
def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c)
1、为什么没有报错? 2、执行过程中到底执行了哪个 c ?
1
zhanglintc May 15, 2018
这个代码咋看啊...
|
2
20032009 OP def run(a,b,c):
if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) |
3
blodside May 15, 2018
>>> def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c)
File "<stdin>", line 1 def run(a,b,c): if a == b : c a = 1 b = 1 c = print('1') run(a,b,c) ^ SyntaxError: invalid syntax |
4
20032009 OP def run(a,b,c):
if a == b : c # a = 1 b = 1 c = print('1') run(a,b,c) |
5
ballshapesdsd May 15, 2018 print 函数返回值是 None。。
|
6
magicO May 15, 2018
同楼上,
语法错误 |
8
20032009 OP 格式是这样(·是空格):
def run(a,b,c): ····if a == b : ········c a = 1 b = 1 c = print('1') run(a,b,c) 我的上面正常运行,而且打印出 1 |
10
rabbbit May 15, 2018
|
11
holajamc May 15, 2018
c 就是你定义的 print('1') 呀,函数的参数可以是另外一个函数)
|
12
magicO May 15, 2018
11L 正解,没毛病啊
|
13
20032009 OP 在执行 6 行时,c = print('1') 这个地方 print 执行了
在 run()里面的 c 也应该被执行啊,那应该打印出两个 1 |
14
20032009 OP @magicO 在执行 6 行时,c = print('1') 这个地方 print 执行了
在 run()里面的 c 也应该被执行啊,那应该打印出两个 1 |
15
rabbbit May 15, 2018 你是不是对函数 /变量有什么误解
调用一个函数的格式方式: 函数名([参数]) print('1')返回的是 None,不是一个函数 |
17
freeminder May 15, 2018
看的我这个难受,你要是说"执行了 print", 那就只有 c = print('1') 这一句执行了 print。c 在这句之后就是一个函数调用的返回值。你在 run 里面写的那个 c,可能是想要完成执行一个函数的事情?但是就算 c 在 run 中是一个函数引用-比如 lambda 创建的,你也得给人家一个括号吧-c()。
|
18
FrailLove May 15, 2018
a = 1;
b = 1; print('1') 任何函数不 return 默认返回 None 打印出 1 后 c= None 执行 run(1 ,1 ,None) 什么都不做 |
19
clino May 15, 2018 via Android
为什么不用 gist 贴代码?
|
20
20032009 OP 谢谢大家,问题解决。打算入编程坑,努力成为大神中......
|
21
whoami9894 May 15, 2018 via Android
c 被赋值为 print 函数的返回值,为 none。
如果 c 被赋值为函数的话后面得有()调用函数操作符 |
22
MartinWu May 15, 2018
c 是 print("1")的返回值,也就是 None。并不是这个语句本身。
|
23
1daydayde May 16, 2018 via iPhone
貌似有个标准错误输出流 了解一下?
|