以编程方式围绕引号中的Python输入

时间:2015-04-23 14:20:35

标签: python string ip

使用netaddr Python库教程(https://pythonhosted.org/netaddr/tutorial_01.html)我正在创建一个程序,允许用户输入添加到列表中的IP地址,唯一的问题是它需要转换为IP对象第一

ip = input('Enter a valid IP Address/Subnet: ')
ip_list = IPNetwork(ip)
print('You have selected: ', ip_list)

当我运行程序并输入:

  

192.168.1.1

我得到了

> 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

然而,当我用引号包围IP时,似乎可行

  

'192.168.1.1'

我得到了我想要的结果

  

('您已选择:',IPNetwork('192.168.1.1 / 32'))

我的问题是我如何允许用户输入IP地址而不必将其包围在引号中,即它将以编程方式完成

1 个答案:

答案 0 :(得分:7)

我猜测你正在使用Python 2.使用raw_input代替input它会起作用。使用input,如果输入数字,您将得到一个数字类型(int表示整数,float表示浮点数等。 IP地址混淆了一些事情,因为它不知道为什么存在多个小数点。