【发布时间】:2015-07-01 19:18:39
【问题描述】:
使用 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 地址而不必自己用引号括起来,即它将以编程方式完成
【问题讨论】:
-
是否会将输入作为字符串,在前后附加一个单引号,然后将其放入 IPNetwork 工作?
-
为什么不使用 raw_input?它没有这个错误。
-
您使用的是 Python 3 风格的 Python。为什么不直接使用 Python 3? (在 Python 3 中,
print是一个函数,input返回一个字符串——相当于 Python 2 的raw_input。)