2016-09-14 2 views
1

Я новичок в python, и я не уверен, как я могу заставить эту программу игнорировать пунктуацию; Я знаю, что это действительно неэффективно, но я не беспокоюсь об этом в этот момент времени.Как я могу заставить эту программу игнорировать пунктуацию

while True: 
y="y" 
n="n" 

Sentence=input("Please enter your sentence: ").upper() 
print("Your sentence is:",Sentence) 
Correct=input("Is your sentence correct? y/n ") 
if Correct==n: 
    break 
elif Correct==y: 
    Location=0 

    SplitSentence = Sentence.split(" ") 
    for word in SplitSentence: 
     locals()[word] = Location 
     Location+=1 
    print("") 

    FindWord=input("What word would you like to search? ").upper() 
    if FindWord not in SplitSentence: 
     print("Your chosen word is not in your sentence") 
    else: 
     iterate=0 
     WordBank=[] 
     for word in SplitSentence: 
      iterate=iterate+1 
      if word == FindWord: 
       WordBank.append(iterate) 
     print(FindWord, WordBank) 

    break 

Я признателен за любую помощь, вы можете дать мне

+0

вы просто хотите вычеркнуть все не так: a-zA-Z0-9 или у вас есть набор знаков препинания для тестирования? – Fallenreaper

ответ

1

Вы можете использовать string модуль Python, чтобы помочь тест для пунктуации.

>> import string 
>> print string.punctuation 
!"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~ 
>> sentence = "I am a sentence, and; I haven't been punctuated well.!" 

Вы можете split предложения в каждом пространстве, чтобы получить отдельные слова из вашего предложения, а затем удалить знаки препинания из каждого слова. Или вы можете сначала удалить пунктуацию из предложения, а затем переформатировать отдельные слова. Мы сделаем опцию 2 - создадим список всех символов в предложении, кроме знаков препинания, затем соединим этот список вместе.

>> cleaned_sentence = ''.join([c for c in sentence if c not in string.punctuation]) 
>> print cleaned_sentence 
'I am a sentence and I havent been punctuated well' 

Обратите внимание, что апостроф с «не» был удален - побочный эффект, игнорируя знаки препинания в целом.

Смежные вопросы