2017-02-04 5 views
0

Я пытаюсь создать цикл, где вместо завершения программы, когда слово не найдено в предложении, оно попросит перезапустить программу. Вот мой код:A453 Task 1 help while true loop

UserSen = input("Please type in a sentence without punctuation: ") #This will allow the user to input a sentence 
UserSen = UserSen.lower() #This will covert the whole sentence to lower case 
UserSen = str.split(UserSen) #This will return all the words in the UserSen as a list using str. as a separator 

Word_To_Find = input("Please enter a word you want to search for in the sentence: ") #This will allow the user to input a word to find 
Word_To_Find = Word_To_Find.lower() #This will covert the word to be searched into lower case 

Position = [] #Variable position is declared so it can be used later in the search part (for loop) 
Sentence_length = (len(UserSen)) #Measure length of sentence 

while True: 
    while True: 
     if Word_To_Find not in UserSen: #If the word to search is not in sentence 
      print ("Error this word: ",Word_To_Find,"isn`t in the sentence")#Display error message if word is not in the sentence 
      answer = raw_input('Run again? (y/n): ') 
      if answer in ('y', 'n'): 
       break 
      print ("Invalid input") 
     if answer == ("y"): 
      continue 
     elif: 
      print ("Goodbye") 
else: # But if the word is found starts another iteration 
    for i in range(0,Sentence_length): # Range will generate sequences of numbers in the form of a list and select the position withing the sentence and store it in the (i)ndex. 
     if UserSen[i] == Word_To_Find: #if the index is equivalent to the word 
      Position.append(i+1) # this will fill the empty variable i declared earlier with position(s) as this will add the word to the position list 
print ("Search successful. The word",Word_To_Find,"' has been found in position:",Position) # This will display the position of the word if the word is found 

Может ли кто-нибудь помочь, пожалуйста?

ответ

0

Если вы хотите, чтобы код, который будет повторно по какой-то причине вы всегда можете просто выполнить повторный вызов функции:

def function_containing_what_you_want_to_rerun(necessary_arguments): 
    #code you would want to rerun 


while condition_for_rerun: 
    function_containing_what_you_want_to_rerun(args) 
    #Reevaluate condition_for_rerun