## 編寫乙個程式,讀取乙個python源程式檔案,將檔案中所有除保留字之外的小寫字母換成字母,並且生成檔案要能夠被python直譯器正確執行。 ##
以下給出程式:
# -*- coding :utf-8 -*-
import keyword
f = open('test.py')
content = f.read()
f.close()
table = ['range','print','list','set','keyword','kwlist','end']
fs = '' #用於儲存改變後的內容
temp = '' #臨時字串,用於判斷和處理
for ch in content:
if ch.isalpha(): #如果是字母,則加到temp後面,用於後面處理
temp +=ch
else: #如果不是字母,表示乙個連續的字母構成的字串結束,此時ch非字母
if (not keyword.iskeyword(temp)) and (temp not in table): #如果不是保留字和內建方法,將其變成大寫
temp = temp.upper()
fs+=temp #將temp新增到fs
fs+=ch #新增 非字母ch 注意不能和 fs+=temp 位置顛倒
temp = '' #清空臨時字串,用於下次使用
f = open('test','w')
f.write(fs)
f.close()
這裡我們首先需要匯入keyword模組,因為根據題目的意思,我們不能改寫保留字母,使用kwlist就可以列舉出所有的保留字母(注意返回的是乙個list),同時也可以用iskeyword判斷是不是乙個保留字
注意:table 列表是除了保留字之外的關鍵字,如果要使用某些模組的某些方法,就應該把相應的關鍵字寫到table裡,不然改變後的源程式就不能被python直譯器執行。
測試如下:
初始的程式及結果:
改變後的程式及結果:
Python原始檔的字元編碼
預設情況下,python 原始碼檔案以 utf 8 編碼方式處理。在這種編碼方式中,世界上大多數語言的字元都可以同時用於字串字面值 變數或函式名稱以及注釋中 儘管標準庫中只用常規的 ascii 字元作為變數或函式名,而且任何可移植的 都應該遵守此約定。要正確顯示這些字元,你的編輯器必須能識別 utf...
mysql 原始檔安裝 Mysql原始檔安裝
mysql原始檔安裝 1 安裝準備 a 刪除linux自帶的mysql資料庫,命令為 root localhost rpm qa grep mysql root localhost rpm e nodpes mysql 這裡的 號貌似不能用需要完整的安裝檔名 b 刪除已存在的mysql使用者及使用者...
歸檔原始檔
歸檔原始檔 1.doxygen 是乙個程式的檔案產生工具,可將程式中的特定批註轉換成為說明檔案。通常我們在寫程式時,或多或少都會寫上批註,但是對於其它人而言,要直接探索程式裡的批註,與打撈鐵達尼號同樣的辛苦。大部分有用的批註都是屬於針對函式 型別等等的說明。所以,如果能依據程式本身的結構,將批註經過...