網際網路上的每台計算機都有-乙個ip,合法的ip格式為: a.b.c.d。 其中
a、b、c、d均為[0, 255]中的整數。為了簡單起見,我們規定這四個整數中不允許有前導零存在,如001。 現在給你-乙個字串s (s不含空白符),請你判斷s是不是合法ip,若是,輸出yes,否則輸出no。如: s=「202.115.32.24」, 則輸出yes; s=「a.11.11.11」, 則輸出no
'''
切分ip位址
判斷第i個是否符合要求
先判斷是否為整數
再判斷首位是否為0
再判斷是否在0-255內
都符合 為yes
'''
loc=
input()
mem=loc.split(
'.')
isip=
false
iflen
(mem)!=4
:#如果個數不為4
isip=
false
else
:#此時有4位
for i in
range(4
):try:
a=int(mem[i]
)#判斷是否為整數,並賦值
if(mem[i][0
]==0)
: isip=
false
break
else:if
(a>
255or a<0)
: isip=
false
break
else
: isip=
true
except
: isip=
false
break
if isip==
true
:print
("yes"
)else
:print
("no"
)
一、運用知識點:
1.列表拆分split方法
2.先設定「真」「假」變數,最後再進行判斷(亮點)
3.try 與except用法
4.系統自帶isinstance()函式,判斷是否為int型別
二、一些嘗試
1.想得到二維陣列,於是split了兩次:
第一次是mem=loc.split(』.』)
第二次又用了icon=mem.split()
但後來發現無需如此操作,只需「mem[i][0]==0」直接當二維陣列使用即可
可見,pythton 比 c++更接近自然語言
2.python中且和或不是(&&)和(||)而是(and)和(or)
3.int(i)只能轉化全由數字組成的str為int
4.本來用的是exit(),但是會在spyder環境下會直接重啟,其退出執行整個程式的效果只能在編譯器中顯現。所以後來用break,替代了exit。
判斷IP位址是否合法
1 字串切割判斷 def legalip ip ip ip.split m len ip if m 4or not ip 0 isdigit orint ip 0 0or int ip 0 255 print illegal else for i in range 1 m if ip i isdig...
Shel 檢測合法的IP位址
0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 1.利用電腦ip測試下 ifconfig grep color o 0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 0 9 1 9 0 9...
IP位址合法性校驗
我們一般用cidr來表示一段ip位址。cidr是這樣乙個字串 先是乙個ipv4的位址的字串表示,加乙個 分隔符,再加乙個13 含 到27 含 之間的整數。比如 192.128.1.134 25 表示從192.128.1.128 含 到192.128.1.255 含 的128個ip位址。前的字段 19...