用于检查数字的Bash或Python脚本
我有一个这种格式的文件:
W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
我想检查每一行中的所有数字是否都大于 50,打印一些东西,如果不是全部都大于 50,则打印一些其他东西。我怎样才能做到这一点?
这是我完成一项工作的代码:
这给了我输出[False, False, True, True],但我想打印每一行的第一列,然后如果是False,则打印Fail,或者是True,打印Pass:
W: Fail
X: Fail
Y: Pass
Z: Pass
回答
你可以考虑这个awk解决方案:
awk '{printf "%s: ", $1; for (i=2; i<=NF; ++i) if ($i < 50) {print "Fail"; next}; print "Pass"}' file
W: Fail
X: Fail
Y: Pass
Z: Pass
回答
单线选手没有奖品。但是可读性差是要付出代价的;)
with open('the_numbers', 'r') as server:
for row in server:
tokens = row.split()
pas = all(int(column) >= 50 for column in tokens[1:])
print(f"{tokens[0]}: {('fail', 'pass')[pas]}")