日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何分割纯英文单词

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何分割纯英文单词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何分割純英文單詞

假如有一段英文I'm a boy with passion of writing code.,現在讓你寫一個程序來統計這句話有幾個單詞,每個單詞是什么,你會怎么做呢?讓我猜一猜,有些人應該會使用字符串的split方法,比如sentence = '...', split_words = sentence.split(' '),這樣分割貌似做到了大部分分解的要求,但是這種方法有很多問題,因為英文字符串的分割并不是總用空格分割的,比如用,分割單詞或者其他符號分割,那你又該怎么辦呢?

所以,用split分割單詞并不能每次都正確。要找到一個正確的方法就要明白一個單詞的構成,一個英文單詞包含26個英文字母,大小寫不限,其中可能含有'和-,單詞兩邊會碰到多個分割符,這些分割符總結一下有' '、','、'.'、'!'、'?'、':'、'"'、';'。現在讓我們再來想一想如何分割單詞,給定一句英文,可以一個字符一個字符地判斷,字符如果是單詞自身構成,那還屬于單詞范疇,記錄下來,字符如果是分割符,那標志這個單詞結束,字符如果不屬于單詞構成和分割符,拋出異常。

源碼如下:

""" 分割純英文字符串為單詞單詞集合 [a-z][A-Z][-] 分割符集合 [ ,:;.?!'"]分辨當前字符的狀態來判斷單詞的所屬范圍the statistics of this file: lines(count) understand_level(h/m/l) classes(count) functions(count) fields(count) 000000000070 ----------------------m 00000000000000 0000000000000001 ~~~~~~~~~~~~2 """import time import string__author__ = '與C同行' english_word_set = set(string.ascii_letters+'\'-') english_separator_set = set(' ,".!?:;')def split_words(words):""" 分割給定的字符串為單詞:param words: 給定的字符串:return: 分割之后的單詞列表和單詞個數"""# 給字符串加一個空格結束標志words += ' 'split_words_list = []new_word = ''for english_chr in words:if english_chr in english_word_set:new_word += english_chrelif english_chr in english_separator_set:if new_word == '':passelse:split_words_list.append(new_word)new_word = ''else:raise ValueError('字符串中的值超出了判斷范圍')return split_words_list, len(split_words_list)if __name__ == '__main__':print(f'當前時間:{time.ctime()}')print()print('測試第一組字符串:')first_words = ' I want to say:"hello, you are a beautiful-girl!".'first_split_word_list, first_words_len = split_words(first_words)print('first_words分割之后的單詞列表:')print(first_split_word_list)print(f'first_words分割之后單詞個數:{first_words_len}')print()print('測試第二組字符串:')second_words = 'ABCD,EFGHI:JKLMNO;PQRSTUVWXYZ abc\'def"ghijk.lmnopq?rstuv!wxyz -'second_split_word_list, second_words_len = split_words(second_words)print('second_words分割之后的單詞列表:')print(second_split_word_list)print(f'second_words分割之后單詞個數:{second_words_len}')print()print('測試非規定范圍中的字符串,將拋出錯誤:')invalid_words = 'I want go 家.'split_word_list, words_len = split_words(invalid_words)print('invalid_words分割之后的單詞列表:')print(split_word_list)print(f'invalid_words分割之后單詞個數:{words_len}')

結果如下:

有兩點要說一下:第一,該程序用到了標準模塊string,這個模塊定義了很多字符集,該程序用到了其中的26個英文字符;第二,這個程序只是按照一定的規則分割英文單詞,所以無法識別單詞的拼寫錯誤。

喜歡python的朋友可以關注微信公眾號“與C同行”:

總結

以上是生活随笔為你收集整理的如何分割纯英文单词的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。