1. 翻轉一個數字
給定一個數字,寫一個函數輸出其反向數字。(例如,給出123答案是321),數字應該保留他們的标志,即反轉時負數仍應為負數。
大家看到翻轉會不會想到reverse函數呢?如果沒有想到也沒關系,我們可以想另一種辦法 ,需要做的首先對輸入的數字進行正負判斷,并将輸入的數字轉化為字元串,然後對字元串進行操作,比如前面用到的join函數,以及format函數。
代碼如下:
def reverse_number(num):
if num >= 0:
re_num = int(''.join(str(num)[::-1]))
else:
re_num = int(''.join('-{}'.format(str(-num)[::-1])))
return re_num
print(reverse_number(123))
print(reverse_number(-456))
print(reverse_number(1000))
複制
2. 檢查IP
編寫一種算法,以十進制格式識别有效的IPv4位址。如果IP由四個八位位元組組成,其值在0和之間255,則應視為有效。該函數的輸入保證是單個字元串。
例如:有效輸入
1.2.3.4
123.45.67.89
無效輸入
1.2.3
1.2.3.4.5
123.456.78.90
123.045.067.089
此外,還需要注意的是,前導零(例如01.02.03.04)被視為無效。
我們需要用if判斷語句把幾種輸出為false的情況列舉出來,那麼其他情況則為True.
代碼如下:
def is_valid_IP(IP):
ip = IP.split('.')
if ' ' in IP:
return False
if len(ip) != 4:
return False
for i in ip:
if len(i) >1 and i[0] == '0':
return False
elif eval(i) < 0 or eval(i) >255 or len(i) >3:
return False
return True
print(is_valid_IP('12.255.56.1'))
複制