#encoding=utf-8import os,sys
def check_ip(ipaddr):
addr = ipaddr.strip().split('.') #切割ip位址為乙個列表
#print addr
if len(addr) != 4: #切割後列表必須有4個引數
print "check ip address failed1!"
sys.exit()
for i in range(4):
try:
addr[i]=int(addr[i]) #每個引數必須為數字,否則校驗失敗
except:
print "check ip address failed!"
sys.exit()
if addr[i]<=255 and addr[i]>=0: #每個引數值必須在0-255之間
pass
else:
print "check ip address failed!"
sys.exit()
print "check ip address success!"
if __name__ == '__main__':
ip = raw_input("please input check ip:")
# ip = "172.29.41.57"
check_ip(ip)
import socketdef valid_ip(address):
try:
socket.inet_aton(address)
return true
except:
return false
此方法存在侷限性,可以檢測ip位址每個欄位的合法性,無法檢查字段個數。
print valid_ip('10.10.20.30')
-> true
print valid_ip('999.10.20.30')
-> false
print valid_ip('gibberish')
-> false
print valid_ip('172.29.41')
-> true
健壯性與正確性
健壯性 robustness 與正確性 correctness 健壯性 robustness 表示系統在不正常輸入或不正常外部環境 下仍能夠表現正常的程度。當出錯後,會退出並提示資訊,或者容錯並轉為正常。乙個具有良好健壯性的軟體會讓使用者變得更容易,因為即使他們出錯也可以容忍,因為程式內部已經有容錯...
驗證正確性的方法
驗證正確性的方法 1 bug和除錯 bug的 嗎?除錯,就是找出程式中的錯誤並改正 演算法錯誤 是指乙個演算法中引起該演算法不能實現其預定目標的熱病和錯誤。主要包括四種基本型別 二義性,語法錯誤,語義錯誤,邏輯錯誤 1.1二義性,演算法中比較容易消除的一類。一般體現在指令表達不準確或者不明確。1.2...
補碼正確性的證明
雖然不知道大牛怎麼想到這樣解決補碼的正負表示問題1,但這種解決辦法的正確性倒是可以嘗試證明一下。首先需要明確什麼叫正確性,充要條件暫時沒有想到,先列舉幾個必要條件,至少這些條件需要能成立 本身的值表示正確 本身的符號表示正確 運算結果的值表示正確 運算結果的符號表示正確 接下來證明每乙個條件 一定正...