天天看點

Python練手題目(九)

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'))           

複制