Python練習之IP位址合法性判斷

2021-10-04 04:51:37 字數 1596 閱讀 1093

網際網路上的每台計算機都有-乙個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...