Python練習(xí)實例89 | 關(guān)于數(shù)字加密算法

原題目是這樣的:某個公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。

輕騎,一騎絕塵!.jpg

多余的話就不多說了,我們直接看下面的代碼吧!

if __name__ == '__main__': # 定義程序入口
    num = input("請輸入需加密的數(shù)字:") # 輸入需要加密的數(shù)字
    str_num = '' # 創(chuàng)建一個空的字符串
    for i in range(4): # 創(chuàng)建一個循環(huán)
        str_num += str(int((int(num[i])+5)%10)) # 輸入的數(shù)字中,每一個數(shù)字轉(zhuǎn)換為整型,加上5,然后再對其進(jìn)行求余。
    i,j,k,l = str_num[0],str_num[1],str_num[2],str_num[3] # 將控制好的變量,分別賦值給i,j,k,l
    print('加密后的數(shù)據(jù)為:%s'%str_num[::-1]) # 打印出結(jié)果,并逆序輸出結(jié)果

具體的結(jié)果如下所示:

C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 練習(xí)實例100題/練習(xí)實例89.py"
請輸入需加密的數(shù)字:2535
加密后的數(shù)據(jù)為:0807

Process finished with exit code 0

當(dāng)然,除了這種方法之外,我們還有另外一種方法,這種方法從邏輯上,相對來說更加容易一些。

num = int(input("請輸入一個數(shù)字:"))
list_num = [] # 創(chuàng)建一個空列表
list_num.append(int(num / 1000)) # 將輸入數(shù)字的千分位添加到空列表中
list_num.append(int(num % 1000) / 100 ) # 將輸入數(shù)字的百分位添加到空列表中
list_num.append(int(num % 100) / 10) # 將輸入數(shù)字的十分位添加到空列表中
list_num.append(int(num % 10)) # # 將輸入數(shù)字的個分位添加到空列表中
for i in range(4): # 逐個對列表中的元素進(jìn)行+5,并做求余處理
    list_num[i] = int((list_num[i] + 5) % 10)
print("加密后的數(shù)據(jù)為:",end='')
for i in range(-1,-5,-1): # 對列表當(dāng)中的元素逐個進(jìn)行逆向的訪問,并輸出。
    print(list_num[i],end='')

下面我們來看下最終輸出的結(jié)果:

C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 練習(xí)實例100題/練習(xí)實例89 方法二.py"
請輸入一個數(shù)字:0564
加密后的數(shù)據(jù)為:9105
Process finished with exit code 0

北京市通州區(qū)京貿(mào)中心
2020年6月28日

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容