Week1《情報密碼鎖》作業

2021-09-25 20:31:31 字數 3759 閱讀 5963

自己寫乙個加密程式,能夠加密的內容是英文和漢字。同時加密並且解密 就是說,一段話中既有中文又有英文,標點符號不用處理。 加密規則,獲取ascii碼數字,中間用|分割

思路提示

print(ord("我"))

print(chr(25105))

擴充套件內容:自定義規則玩起來

# 加密檔案

defencode

(old_filename, new_filename)

:with

open

(f'./'

, encoding=

'utf-8'

)as f1:

old_chars =

list

(f1.read())

new_chars =

for char in old_chars:

t =ord(char)

# 判斷是否為英文本母或漢字if(

'a'<= char <=

'z')|(

'a'<= char <=

'z')|(

0x4e00

<= t <=

0x9fa5):

str(t)

)else

: result =

'|'.join(new_chars)

with

open

(f'./'

,'w'

)as f2:

f2.write(result)

# 解密檔案

defdecode

(old_filename, new_filename)

:with

open

(f'./'

,'r'

, encoding=

'utf-8'

)as f1:

old_chars = f1.read(

).split(

'|')

new_chars =

for char in old_chars:

if char.isdigit():

chr(

int(char)))

else

: result =

''.join(new_chars)

with

open

(f'./'

,'w'

)as f2:

f2.write(result)

if __name__ ==

'__main__'

:while

true

:print

('-'*30

,'請輸入你想進行的操作:'

,'1. 加密檔案'

,'2. 解密檔案'

,'3. 退出'

, sep=

'\n'

) ans =

input

('請選擇:'

)if ans ==

'1':

file

=input

('請輸入待加密檔名: '

) new_file =

input

(r'請輸入加密後檔名(.txt): '

)try

: encode(f'./'

, f'.txt'

)print

('\033[0;32m'

,'加密成功,請到原目錄下檢視\n'

,'\033[0m'

, sep='')

except filenotfounderror:

print

('\033[0;31m'

,'輸入檔名有誤,請重新輸入!'

,'\033[0m'

, sep='')

elif ans ==

'2':

file

=input

('請輸入待解密檔名: '

) new_file =

input

(r'請輸入解密後檔名(.txt): '

)try

: decode(f'./'

, f'.txt'

)print

('\033[0;32m'

,'解密成功,請到原目錄下檢視\n'

,'\033[0m'

, sep='')

except filenotfounderror:

print

('\033[0;31m'

,'輸入檔名有誤,請重新輸入!'

,'\033[0m'

, sep='')

elif ans ==

'3':

break

else

:print

('\033[0;31m'

,"無此選項,請重新輸入!"

檔案遍歷

# 開啟檔案

f =open

('./test.txt'

,'r'

)

方法一:直接遍歷

for line in f:

print

(line)

方法二:.readline(), 一次讀一行

line = f.readline(

)while line:

print

(line)

line = f.readline(

)

方法三:.readlines(),一次讀取所有行,返回乙個列表

lines = f.readlines(

)for line in lines:

print

(line)

方法四:.read(),一次讀取所有內容,返回乙個字串

print

(f.read(

))

終端字元顏色

終端的字元顏色是用轉義序列控制的,是文字模式下的系統顯示功能,和具體的語言無關,shell,python,perl等均可以呼叫。 轉義序列是以 esc 開頭,可以用 \033 完成相同的工作(esc 的 ascii 碼用十進位制表示就是 27, 用八進位制表示是33)。

格式

\033[顯示方式;前景色;背景色m專案

引數顯示方式

0(預設值)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)

前景色(3_)

0(黑色),1(紅色),2(綠色), 3(黃色), 4(藍色), 5(洋紅), 6(青色), 7(白色)

背景色(4_)

0(黑色),1(紅色),2(綠色), 3(黃色), 4(藍色), 5(洋紅), 6(青色), 7(白色)

常用

個人作業 Week1

在超大的軟體工程中如何在測試和成本中找到平衡點?軟體工程師在入職後大概擁有多少的學習時間進行自我提公升?如何克服 複審 文件撰寫這類工作的枯燥?專案經理與程式設計師之間的矛盾如何處理,該如何看待這種關係?團隊中技術差距與思路不同如何進行磨合?軟體 software 最早出現在出版物中是由richar...

個人作業 Week1

問題1 程式設計師的優劣是否在軟體開發中已經不重要了?使用者實際關心的 外形,使用的樂趣和效率,自我形象,個人滿足感,回憶,這麼多條中,僅有效率與 有關,而實際上使用者比起效率卻更在意其他這些 么蛾子 qq,支付寶等諸多流行的 功能,複雜度並不高但卻十分成功。3.軟體開發更重要的管理與分工,是否超出...

個人作業 week1

1 問題 1 與軟體學院相比,電腦科學更偏向理論研究,本系開設軟體工程課程的意圖是否是為了平衡理論與應用的比重?2 bug的定義根據開發者與使用者的分析角度不同,有著很大的區別,如何使開發者能夠有效的感受使用者的角度,使軟體更具人性化?3 coder和hacker之間原則性的區別是什麼?4 面對 量...