自己寫乙個加密程式,能夠加密的內容是英文和漢字。同時加密並且解密 就是說,一段話中既有中文又有英文,標點符號不用處理。 加密規則,獲取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 面對 量...