挑战
给定SE用户的ID,从用户已注册的所有Stack Exchange网络中输出其信誉总和。
规则
如果用户在站点上的信誉不超过101,则将其总计为零。
您不应该算出51区代表或隐藏社区!
不允许使用URL缩短器。
例子
可调整的
用户3244989(测试版衰减)
14141
用户918086(Dennis)
204892
用户11683(Jon Skeet)
1029180
获奖
以字节为单位的最短代码获胜。
给定SE用户的ID,从用户已注册的所有Stack Exchange网络中输出其信誉总和。
如果用户在站点上的信誉不超过101,则将其总计为零。
您不应该算出51区代表或隐藏社区!
不允许使用URL缩短器。
可调整的
14141
204892
1029180
以字节为单位的最短代码获胜。
Answers:
from requests import*
lambda i,r="reputation":sum(u[r]for u in get("http://api.stackexchange.com/users/"+i+"/associated").json()["items"]if u[r]>101)
我请求API,将API转换为JSON,然后通过生成器表达式求和。生成器会删除信誉低于101的帐户。
感谢改进代码:Jonathan Allan。
u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))
f=
u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))
i.addEventListener("submit",e=>{e.preventDefault();(v=+i.firstChild.value)&&f(v)})
<form id=i><input type=number><button>Calc.</button></form>