統計乙個文字的字元 單詞數

2022-03-29 04:01:47 字數 1868 閱讀 6776

文字操作是最常見的,以例子的形式來驅動程式的編寫

#

-*-encoding:utf-8-*-

import

time

keep =

defnormalize(s):

#大寫轉換成小寫,並且剔除數字等開頭或不在列表中的字元,返回正常字串

result = ''

for c in

s.lower():

if c in

keep:

result +=c

return

result

defmake_freq_dict(s):

#計算頻率次數,將字串轉化成次數字典

s =normalize(s)

words =s.split()

d ={}

for w in

words:

if w in

d: d[w] +=1

else

: d[w] = 1

return

d

defprint_file_stats(fname):

s = open(fname,'r'

).read()

num_chars =len(s)

num_lines = s.count('\n'

) d = make_freq_dict(s) #

一層一層往上呼叫函式

num_words = sum(d[w] for w in

d) lst = [(d[w],w) for w in

d] lst.sort()

lst.reverse()

print("

the file '%s' has:

" %fname)

print("

%s characters

" %num_chars)

print("

%s lines

" %num_lines)

print("

%s words

" %num_words)

print("

\nthe top 10 most frequent words are:")

i=1for count,word in lst[:10]:#

將字典轉換成元組

print('

%2s. %4s個 %s

' %(i,count,word))

i +=1

defmain():

start =time.time()

print_file_stats(

'bill.txt')

end =time.time()

use = end -start

print('

一共花了%s 秒的時間

' %use)

if__name__=='

__main__':

main()

以上為未使用正規表示式的版本

例二:針對之前寫的c語言版本,統計單詞數

#include "

stdio.h

"int count_word(char *str);

void

main()

int count_word(char *str)

p++; //

這裡是拋開上面的flag=0,繼續加一。沒有遇到空格的時候 。直到繼續遇到空格或結尾的時候,才不加一了。

}

return

count;

}

統計文字行單詞數

1 include2 include3 using namespace std 4 5 bool rowcount int chars,int words 識別並規範只有乙個狹義字元 不包括分隔符 的文字行13 14 for int i 0 i15 if str i a str i z str i ...

統計一行字元的單詞數

題目 輸入一行字元,統計其中包括多少單詞,單詞之間用空格分隔。要求 輸入格式 a b c d回車 空格可在任意位置,列如行頭行尾可能會有空格。另外數字和字母一樣,也可作為單詞 輸出格式 單詞數 輸入的字串長度最長為256個字元 測試輸入 空格 a a 112 c 空格 回車 輸出 4 用乙個字元陣列...

統計單詞中出現的單詞數

描述 笨小熊的詞彙量很小,所以每次做英語選擇題的時候都很頭疼。但是他找到了一種方法,經試驗證明,用這種方法去選擇選項的時候選對的機率非常大!這種方法的具體描述如下 假設maxn是單詞中出現次數最多的字母的出現次數,minn是單詞中出現次數最少的字母的出現次數,如果maxn minn是乙個質數,那麼笨...