[英]Python Store IP address in a variable
我是 Python 编程新手,无法将 IP 地址存储在变量 (ip) 中
ip = input("Enter IP address: ")
# 192.168.0.1 (Example)
print ("you entered: "+ip)
我收到一条错误消息,不知道该怎么办。
我认为您正在使用 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'
>>>
如果您不想担心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
ip = raw_input("Enter Target IP =>")
if ip >0:
print("=>" + ip )
您必须添加raw_input
才能添加整个自定义 IP 地址。 如果仍然显示错误,则可能需要将ip
转换为字符串。
我在这里没有看到这个解决方案,所以发布。 希望这对其他人有帮助。
当双方的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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.