簡體   English   中英

Python 將 IP 地址存儲在變量中

[英]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.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
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM