Python練習冊第07題

2021-10-08 05:15:31 字數 1669 閱讀 1174

跟前面的題目一樣,依舊是遍歷資料夾裡的檔案,比記錄單詞容易多了,唯一需要注意的是python裡面的3引號多行注釋』』』,我平時都不用的,為了記錄特地改了幾個多行注釋

import os, re

if __name__ ==

'__main__'

:#分別計算總行數,空行數,注釋行數

count, ept_line, comment =0,

0,0#**檔案都放在test資料夾裡

os.chdir(

'test'

) file_names = os.listdir(

)for f in file_names:

with

open

(f,'r'

, encoding =

'utf-8')as

file

:while

true

: buf =

file

.readline(

)#因為我tab是設定成4個空格的,所以這樣能把前面的tab刪除掉

buf = re.sub(

' ',

'', buf)

#讀到檔案尾就結束

if buf =='':

break

#記錄空行數

elif buf ==

'\n'

: count +=

1 ept_line +=

1#記錄注釋行數,因為前面的空格已經刪除了,所以可以用match來匹配第乙個#

elif re.match(

'#', buf)

: count +=

1 comment +=

1#記錄多行注釋,'''本身的一行也算作注釋行

elif re.match(

"'''"

, buf)

: count +=

1 comment +=

1#'''裡面所有的行都是注釋

while

true

: buf =

file

.readline(

) count +=

1 comment +=

1#第2次找到'''就退出

if re.search(

"'''"

, buf)

:break

else

: count +=

1print

('count:'

, count)

print

('empty lines:'

, ept_line)

print

('comment:'

, comment)

(可憐)的執行結果:

count: 827

empty lines: 109

comment: 77

python練習冊 第0002題

將 0001 題生成的 200 個啟用碼 或者優惠券 儲存到 mysql 關係型資料庫中。這道題是送分題,就是讓人熟悉一下鏈結資料庫以及mysql的使用。import pymysql import random import string def generate length s join ran...

Python練習冊第01題

我就假定啟用碼是 ta0e8 e9zvk urwgb jiklx 這樣的形式的 import random,string defgencdk num 隨機種子範圍取所有大小寫字母和數字 str base string.ascii letters string.digits 建乙個列表用來存放最終20...

python練習冊0004題

在任意乙個英文文件中,統計單詞出現的次數,分析 本題不是很難,單詞通常以空格隔開,但是有些單詞後面跟一些特殊符號,只需把這些特殊符號替換掉就可以了,一 1 importre2 3 file name code.txt 4 5 lines count 0 6 words count 0 7 chars...