python解决程序依次接收20行用户通过键盘输入的数据,每行数据均为由三个英文点号分开的4个整数数据,示例如下: 10.186.1.1 256.0.0.3 192.168.0.255 ...(共20行)... 对于每行中的每个整数数据,值的范围应介于 0(含)到255(含)之间。因此,以上示例中 10.186.1.1 和 192.168.0.255 为两条合规数据,256.0.0.3 是一条非合规数据。 程序逐行判读数据是否合规,并统计合规和不合规的数目,最后按序分别输出合规和不合规数据的值(整数形式输出)。 程序最后输出的结果类似如下两行数据(2行数值相加应为20): 18 2
时间: 2024-03-26 11:34:11 浏览: 327
可以使用以下代码来解决这个问题:
```
valid_count = 0
invalid_count = 0
valid_data = []
invalid_data = []
for i in range(20):
line = input().strip().split('.')
valid_line = True
for num in line:
if not num.isdigit() or int(num) > 255:
valid_line = False
break
if valid_line:
valid_count += 1
valid_data.extend([int(num) for num in line])
else:
invalid_count += 1
invalid_data.extend([int(num) for num in line])
print(sum(valid_data))
print(sum(invalid_data))
```
这个代码首先定义了四个变量:`valid_count`和`invalid_count`分别表示合规和不合规数据的数量,`valid_data`和`invalid_data`分别表示合规和不合规数据中的所有整数。然后,使用`for`循环逐行读取输入的数据,并将每行数据按`.`分割为四个整数。接下来,使用`for`循环判断每个整数是否在0到255之间,如果不是,则将此行数据标记为不合规。最后,根据标记的结果,将合规和不合规数据分别加入到对应的列表中,并更新合规和不合规数据的数量。最后,输出合规和不合规数据中所有整数的和。
阅读全文