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