#python-2.7
#python-2.7
Вопрос:
Привет, ребята, я пытаюсь подсчитать, сколько раз слово и его сокращения (например, вы и вы). Проблема в том, что я тоже не вижу способа уловить сокращение моего слова.
def paraula(file,palabrabuscar):
abrirLetra = open(file) #Open the file
palabras = ""
vegades = 0
for palabras in abrirLetra.read().split():#I split all words in text
if (palabras == palabrabuscar) :#Look for coincidence
vegades = vegades 1
abrirLetra.close()
return vegades
file = 'lletra.txt'
print paraula(file,"you")
Комментарии:
1. Простите меня, если я ошибаюсь, но не будет ли вызов string.split() разделять его по символам?
Ответ №1:
Возможно, вам захочется разбить файл на апострофы, пробелы, а также любые другие знаки препинания. Чтобы разделить на несколько разделителей, вам необходимо import re
и использовать регулярные выражения.
Если вы также хотите сопоставить слова с другим регистром (например, ‘you и ‘YOU’), тогда вам нужно будет использовать lower()
.
import re # use regular expressions
def paraula(file,palabrabuscar):
abrirLetra = open(file) #Open the file
palabras = ""
vegades = 0
for palabras in re.split(r'[s'".,;] ', abrirLetra.read()):
# split at every: s whitespace
# ' apostrophe
# " quotation mark
# . full stop
# , comma
# ; semi-colon
#
# The plus sign at the end splits at one or more delimiters in
# a row (for example "Hello. Hi." has a full stop and a space
# together between Hello and Hi).
#
# Backslashes are added before special characters
# (for example s matches the letter s, but s matches whitespace).
if (palabras.lower() == palabrabuscar.lower()): #Look for coincidence
# Convert both to lowercase if you want to match
# you, You and YOU.
vegades = vegades 1
abrirLetra.close()
return vegades
file = 'lletra.txt'
print paraula(file,"you")