我正在尝试解决一个问题,您编写脚本然后得到:
我想检查用户输入的数量,然后确定要执行的代码。
类似这样的东西:
if(fscanf(STDIN, '%d%d%d%d%d', $a, $b, $c, $d, $e) == 5) {
echo "Five inputs";
} elseif(fscanf(STDIN, '%d', $a) == 1) {
echo "Only one input";
}
因此,例如,如果获得输入1 2 3 4 5,则应回显“五个输入”,但是如果仅获得0,则应回显“仅一个输入”。
答案 0 :(得分:0)
您的代码有两个问题。第一个是您使用explode()
进行扫描,这是在寻找一个连续的数字,您至少必须在其中留有空格来分隔值。第二个是如果失败,它将再次要求输入以进行单个输入检查。
此代码从输入中读取一行,然后将其拆分(使用count($inputs)
)。中位只是检查数值,您可以根据需要进行调整。然后,最后一部分仅检查(使用$input = fgets(STDIN);
$inputs = explode(" ", $input);
// Check numeric
foreach ( $inputs as $index => $check ) {
if ( !is_numeric($check) ) {
echo "Input $index is not numeric".PHP_EOL;
}
}
if(count($inputs) == 5) {
echo "Five inputs";
} elseif(count($inputs) == 1) {
echo "Only one input";
}
有多少部分,并输出相应的消息。
def find_items(self, response, names, finder):
items = response.meta['items']
for name, find in zip(names.values(), finder.values()):
items[name] = response.css(find).extract()
yield items # <- yield after loop