def minmax(test, *args): res = args[0] for arg in args[1:]: if test(arg, res): res = arg return res
def lessthan(x, y): return x<y def grtrthan(x, y): return x>y
如上代码的执行顺序,当执行到 if test 时是怎样的? def minmax 和 def lessthan 执行顺序是怎样的呢? 谢谢-__-
def minmax(test, *args): res = args[0] for arg in args[1:]: if test(arg, res): res = arg return res
def lessthan(x, y): return x<y def grtrthan(x, y): return x>y
如上代码的执行顺序,当执行到 if test 时是怎样的? def minmax 和 def lessthan 执行顺序是怎样的呢? 谢谢-__-
|
holajamcFeb 17, 2017 via iPhone
1
这,楼主的代码缩进有一些惊奇。。。
|
|
grimpilFeb 17, 2017
2
语法错误,无法执行
|
|
cszeusFeb 17, 2017
3
if test 执行 test 函数,返回值作为 if 的判断条件。
声明的话顺序的,哪个在前面,哪个先声明 |
|
fortunezhangFeb 17, 2017
4
if test 是在 for arg 新 args[1:],执行后,第一条执行的。
def minmax(test,*args): res = args[0] for arg in args[1:]: if test(arg, res): res = arg return res 你不格式化,后面很难看懂啊。我用了 3 分钟才看出来。 |
|
fortunezhangFeb 17, 2017
5
我的天,我的代码也没有格式化?求助怎么缩进啊
|
|
jingniaoFeb 17, 2017
6
试试 md 支持?
```python def minmax(test,*args): res = args[0] for arg in args[1:]: if test(arg, res): res = arg return res def lessthan(x, y): return x<y def grtrthan(x, y): return x>y ``` 另外你只是三个函数定义吧?哪来的执行,相互之间也没有调用关系 |
|
lynndotconfigFeb 17, 2017
7
def minmax(test, *args):
res = args[0] for arg in args[1:]: if test(arg, res): res = arg return res def lessthan(x, y): return x < y def grtrthan(x, y): return x > y find_less = minmax(lessthan, 5, 6, 7, 8, 9, 4) find_greater = minmax(grtrthan, 5, 6, 4, 3, 2, 1) print find_less, find_greater # ##### Output # 4 6 |
|
8
@lynndotconfig if test 下的 res = agr 和 return x<y(return x>y)是什么关系?
|
|
9
@fortunezhang v2 不知为什么自动删除了代码的缩进换行格式。。。。就是用 python 实现 py 内置函数 min , max 的功能
|
|
10
@yangsunrise
如果 test=lessthan: test(arg, res) <==> lessthan(arg, res) <==> (return arg < res) <==> True or False 如果 test=grtrthan: tese(arg, res) <==> grtrthen(arg, res) <==> ( return arg > res) <==> True or False 是不明白在 python 中函数名可以作为参数这个问题吗? |
|
lynndotconfigFeb 17, 2017
11
@yangsunrise 第一条附言中的的输出应该是 3 和 5 。
|
|
12
@lynndotconfig 那就是到 if 是调用 def lessthan ,先执行 return 再执行 res = arg , return 用于 if 条件判断?大概懂了,就是没想到 return x<y 是判断语句。谢谢啦
|