Python将IP地址存储在variab中

2024-10-02 04:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python编程新手,不能在变量(IP)中存储IP地址

ip = input("Enter IP address: ")

# 192.168.0.1 (Example)

print ("you entered: "+ip)

我收到一条错误消息,不知道该怎么办。


Tags: ipyou消息inputaddressexample编程错误
3条回答

如果您不想担心Python 2.xPython 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

我在这里没有看到这个解决方案,所以张贴。希望这能帮助其他人。

当在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

注意:您可以使用以下内容检查输入的地址是否是有效的ip地址:

import re
if not re.match(r'[0-9]+(?:\.[0-9]+){3}', ip_address):
    print('Invalid IP Address')

我认为您使用的是Python2.x,如果是,那么^{}将其输入作为真正的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
>>>

要解决此问题,您需要使用^{}代替:

ip = raw_input("Enter IP address: ")

input不同,raw_input总是返回一个字符串对象:

>>> raw_input()
192.168.0.1
'192.168.0.1'
>>>

相关问题 更多 >

    热门问题