Python 重构 max() 函数
本帖最后由 zltzlt 于 2020-3-28 13:05 编辑Python 重构 max() 函数
要求
实现 BIF max()
不能使用 BIF max()
例子
>>> max("awgij34tpqw;rleigj34oit 34joi4 jef ")
'w'
>>> max(3, 5, 7, 2, 1, 1, 99, 5, 8, 7, -54, 3, 12)
99
>>> max("abcdefgh", "abcdefghijklmnopqrst")
'abcdefghijklmnopqrst'
>>> max(, )
>>> max(, , )
>>> max(, , )
>>> max(, , , key=len)
>>> max("")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
max("")
ValueError: max() arg is an empty sequence
>>> max("", default="abc")
'abc'
>>> max([], default="abc")
'abc' 本帖最后由 永恒的蓝色梦想 于 2020-3-28 12:14 编辑
def max(iterable,/,*vars,key=None,default=None):
if vars:
if default is None:
greatest=iterable
else:
raise TypeError("Cannot specify a default for max() with multiple positional arguments")
else:
vars=iter(iterable)
try:
greatest=next(vars)
except StopIteration:
if default is None:
raise ValueError("max() arg is an empty sequence")
else:
return default
if key is None:
for var in vars:
if var>greatest:
greatest=var
else:
flag=key(greatest)
for var in vars:
temp=key(var)
if temp>flag:
flag=temp
greatest=var
return greatest 永恒的蓝色梦想 发表于 2020-3-28 11:41
解答错误
输入:print(max("awgij34tpqw;rleigj34oit 34joi4 jef "))
输出:a
预期输出:w
匿名者 发表于 2020-3-28 11:45
解答错误
输入:print(max("awgij34tpqw;rleigj34oit 34joi4 jef "))
改了
每次都在修复上次的bug{:10_262:}
页:
[1]