用于检查数字的 Bash 或 Python 脚本

Ope*_*era 1 python bash python-3.x

我有一个这种格式的文件:

W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
Run Code Online (Sandbox Code Playgroud)

我想检查每一行中的所有数字是否都大于 50,打印一些东西,如果不是全部都大于 50,则打印一些其他东西。我怎样才能做到这一点?

这是我完成一项工作的代码:

W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
Run Code Online (Sandbox Code Playgroud)

这给了我输出[False, False, True, True],但我想打印每一行的第一列,然后如果是False,则打印Fail,或者是True,打印Pass

W: Fail
X: Fail
Y: Pass
Z: Pass
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 8

你可以考虑这个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
Run Code Online (Sandbox Code Playgroud)


sch*_*ggl 5

单线选手没有奖品。但是可读性差是要付出代价的;)

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]}")
Run Code Online (Sandbox Code Playgroud)