小程序需求說明
敏感詞文本文件 filtered_words.txt,裏面的內容爲以下內容:
北京
程序員
公務員
領導
牛比
牛逼
你娘
你媽
love
sex
jiangge
當用戶輸入敏感詞語時,則打印出 Freedom,否則打印出 Human Rights。
思路及程序編寫
##
#流程敲定:
# 1. 用戶輸入一句話
# 2. 檢查裏面沒有沒有敏感詞彙
# 2.1 將敏感詞彙讀取出來。使用readline(),或者直接使用文件管理器。
# 2.2 檢測用戶輸入是否含有敏感詞 in
# 3.判斷是否有後進行反應
##
user_input=input('Please say something:')
print(user_input)
for filter_word in open('filtered_words.txt'):
#這裏碰到一個東西就是,使用open()文件迭代器的方法,會自動在讀取的對象後面增加一個跨行符號\n ,
#所以這裏需要一個rstrip()去掉右邊的跨行符。
if filter_word.rstrip() in user_input:
print('Freedom!')
break
else:
print('Human Rights!')
#如果不使用跨行符,那麼結果就是 filter_word in user_input 永遠是false, Freedom不會被打印。
#下面示範沒有rstrip()的形式。
print('這是分割線,哦啦啦啦啦')
user_input=input('Please say something:')
print(user_input)
for filter_word in open('filtered_words.txt'):
if filter_word in user_input:
print('Freedom!')
break
else:
print('Human Rights!')
執行後的輸出
Please say something:sexy
sexy
Freedom!
這是分割線,哦啦啦啦啦
Please say something:sexy
sexy
Human Rights!
小結(always continue…)
整個小程序的重點:
1.文件的讀取。
這裏我們使用了文件迭代器:
for col in open('文件名')
在使用文件迭代器的時候,我們需要直到,每次迭代是按照行來讀取,並且讀取的內容後面會有一個跨行符號。
移除跨行符號我們有多種方法,常見的有:
- 分片
- strip,lstrip,rstrip
這裏我們推薦rstrip方法,因爲分片即使最後沒有跨行符,也會讓其少一截。
#使用分片去除跨行符(空格同理)
>>> s='abcd\n'
>>> print(s)
abcd
>>> print(s[:-1])
abcd
>>> s='abcd'
>>> print(s[:-1])
abc
>>>
2.判斷時候含有敏感詞
這個時候就用到了成員測試in 就可以輕鬆解決。
小程序其他方案
1.讀取文件方面,我們還可以readline(),不過文件迭代器是按照行讀取文件的最方便的方法。