我不熟悉Python编程,无法在变量(ip)中存储IP地址
ip = input("Enter IP address: ")
# 192.168.0.1 (Example)
print ("you entered: "+ip)
我收到错误消息但不知道该怎么做。
答案 0 :(得分:4)
我认为您使用的是Python 2.x.如果是这样,那么input
正在将其输入评估为真正的Python代码。
换句话说,当您输入192.168.0.1
时,会引发SyntaxError
,因为输入包含非法语法:
>>> input()
192.168.0.1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
192.168.0.1
^
SyntaxError: invalid syntax
>>>
要解决此问题,您需要改为使用raw_input
:
ip = raw_input("Enter IP address: ")
与input
不同,raw_input
始终返回一个字符串对象:
>>> raw_input()
192.168.0.1
'192.168.0.1'
>>>
答案 1 :(得分:1)
如果您不想担心Python 2.x
或Python 3.x
,请使用sys.stdin
从输入读取,sys.stdout
打印到该部分的输出。
import sys
sys.stdout.write("Enter IP address: ")
sys.stdout.flush()
ip = sys.stdin.readline()
print("you entered: " + ip)
输出:
Enter IP address: 192.168.1.1
you entered: 192.168.1.1
答案 2 :(得分:1)
ip = raw_input("Enter Target IP =>")
if ip >0:
print("=>" + ip )
您必须添加 raw_input
才能添加完整的自定义 IP 地址。
如果仍然显示错误,您可能需要将 ip
转换为字符串。
答案 3 :(得分:0)
我在这里没有看到此解决方案,因此请发布。希望这对其他人有帮助。
该解决方案在 Python 2.X和3.X 上均可以运行。当我需要我的脚本在两个Python版本之间兼容时遇到了这个问题。
raw_input()
在2.x上可用,在3.x上引发异常
input()
无法读取2.x(例外)上的ip地址格式的输入,而3.x可以使用
try:
ip_address = raw_input('Enter IP Address: ')
except:
ip_address = input('Enter IP Address: ')
不管此解决方案中的Python版本如何, ip_address
都是输入的IP地址的str
。
PS:您可以使用以下命令检查输入的地址是否为有效的IP地址:
import re
if not re.match(r'[0-9]+(?:\.[0-9]+){3}', ip_address):
print('Invalid IP Address')