原題目是這樣的:某個公司采用公用電話傳遞數(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日