首页 > 编程语言 >PYTHON错误——多行输入

PYTHON错误——多行输入

时间:2022-08-19 09:13:05浏览次数:72  
标签:多行 __ PYTHON ip int append 0.0 line 输入

1. 问题描述:

      给N行ipv7的地址,判断是否是合法的,如果是合法的输出其对应的十进制数,如果不合法输出-1。

     输入(N行ip地址,N不清楚):

1.0.0.0.0.0.0
0.0.0.0.0.0.0
0.0.0.0.0.0.
0.0.0.0.0..#
1......0
# 以ctrl + d  结束输出

      输出:

281474976710656
-1
-1
-1
281474976710656

       问题是N不知道,也就是不知道几行。(之前已经测试过使用input()按行读取数据,然后以最后一行什么不输入做为输出。但是这样是不行的。)

       最后才知道,系统给定的输入是包含\n的,也就是包含多行的。所以需要python实现多行接收。

2. 代码

import sys


def ipfunc(ip):
    if (not ip[0].isdigit()) or (not ip[-1].isdigit()) or (ip.count(".") != 6) or (int(ip[0]) == 0):
        return -1
    a = ip.split('.')
    for i in range(len(a)):
        if len(a[i]) == 0:
            a[i] = "0"
    s = ''
    l = []
    for i in a:
        try:
            int(i)
        except ValueError:
            return -1
        if (int(i) < 0) or (int(i) >255):
            return -1
        i = bin(int(i))[2:]
        i = i.rjust(8, '0')
        l.append(i)
    s = s.join(l)
    return s


if __name__ == '__main__':
    s_l = []
    for line in sys.stdin:
        s_l.append(line.strip())
    # while True:
    #     line_text = input()
    #     if line_text == '':
    #         break
    #     s_l.append(line_text)
    out_l = []
    for s in s_l:
        out_l.append(ipfunc(s))
    for o in out_l:
        if o == -1:
            print(-1)
            continue
        print(int(o, 2))

3. 结果

 

标签:多行,__,PYTHON,ip,int,append,0.0,line,输入
From: https://www.cnblogs.com/xiao-yu-/p/16600807.html

相关文章

  • get请求 空字符串布尔值True? 获取前端输入完整内容
    如下图须知:get请求获取的都是字符串形式;会自动给每个字符加单引号通过request.GET获取完整输入 ......
  • 8/18 python基础学习
    第四章操作列表函数range(m,n)包含m-n的数,包括m,不包括n,左闭右开。range(m,n,d)d为步长。value**2其中**表示乘方。列表解析:[expressionforiter_valiniterab......
  • 学习:python pyecharts数据可视化
    pyecharts数据可视化pyecharts是一个用于生成Echarts图标的类库Echarts是百度开源的一个数据可视化的Js库用Echarts生成的图可视化效果非常棒 新版v1和老版本......
  • 学习:python 小试验 ruquest爬虫 爬取音乐
    控制台抓包获取音乐链接不多说了   最后成功下载到本地 ......
  • 学习:python pyEmail邮件处理
    pyEmail邮件处理客户端1--微信服务器---客户端2客户端1(网易)---网易邮箱服务器---QQ邮箱服务器----客户端2(QQ邮箱)邮箱协议:smtp协议imap协议pop协议  本次用126邮箱......
  • 用python进行数据分析(3)——误方差齐性检验
    众所周知,ols线性回归模型有一些基本假定。对残差e有以下性质E(e)=0;Var(e)=σ2(I-H)要服从正态分布且第i个残差的方差为:  称: ......
  • Navicat的使用与python中使用MySQL的基本方法
    Navicat的使用与python中使用MySQL的基本方法Navicat的下载及安装下载地址http://www.navicat.com.cn/download/navicat-premium由于navict的功能非常强大所以navic......
  • python接口自动化 - 接口签名处理
    前言:服务端与客户端进行http通讯时,为了防止被爬虫,数据安全性等,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回。常见的是:引入 sign 签名常见的加密方......
  • 学习:python 实用第三方模块
    baidu-aip人工智能算法ai:识别语音唤醒---语音识别(将语音转换为字符串)---执行指令ai.baidu.com可以访问百度AI开放平台了解相关内容例如:使用百度AI开放平台-通用文字......
  • python学习Day48
    Day48今日内容概要Navicat可视化软件多表查询练习题python操作MySQL获取命令的执行结果SQL注入问题基础用户登录SQL语句(记忆)知识点额外补充今日内容详细......