以编程方式将Python输入括在引号中
我正在使用NetAddress Python库教程()创建一个程序,允许用户输入添加到列表中的IP地址,唯一的问题是需要先将其转换为IP对象以编程方式将Python输入括在引号中,python,string,ip,Python,String,Ip,我正在使用NetAddress Python库教程()创建一个程序,允许用户输入添加到列表中的IP地址,唯一的问题是需要先将其转换为IP对象 ip = input('Enter a valid IP Address/Subnet: ') ip_list = IPNetwork(ip) print('You have selected: ', ip_list) 当我运行程序并输入: 192.168.1.1 我明白了 >回溯(最近一次呼叫最后一次): 文件“C:\Python27\IPAddres
ip = input('Enter a valid IP Address/Subnet: ')
ip_list = IPNetwork(ip)
print('You have selected: ', ip_list)
当我运行程序并输入:
192.168.1.1
我明白了
>回溯(最近一次呼叫最后一次):
文件“C:\Python27\IPAddress.py”,第4行,在
ip=输入('输入有效的ip地址/子网:')
文件“”,第1行
192.168.1.1
^SyntaxError:无效语法
然而,当我用引号括住IP时,它似乎起了作用
“192.168.1.1”
我得到了我想要的结果
(“您已选择:”,IPNetwork('192.168.1.1/32'))
我的问题是,我如何允许用户输入IP地址而不必将其括在引号中,也就是说,它将通过编程方式完成。我猜您使用的是Python 2。使用
raw_input
而不是input
,它会工作。使用input
,如果您输入一个数字,您将得到一个数字类型(int
表示整数,float
表示浮点,等等)。IP地址混淆了事情,因为它不理解为什么存在多个小数点。是否将输入作为字符串,在后面和前面添加一个单引号,然后将其放入IPNetwork工作?为什么不使用原始输入?它没有此错误。您使用的是Python 3样式的Python。为什么不直接使用Python3呢?(在Python3中,print
是一个函数,input
返回一个字符串-相当于Python2的raw\u input
)谢谢!计时器一响我就接受答案down@CMac:或者只使用Python 3。这似乎就是您的参考资料或教程所使用的内容。
> Traceback (most recent call last):
File "C:\Python27\IPAddress.py", line 4, in <module>
ip = input('Enter a valid IP Address/Subnet: ')
File "<string>", line 1
192.168.1.1
^ SyntaxError: invalid syntax