2016-03-19 12 views
-1

Wie kann ich es so machen, dass beide Zeichenfolgen korrekt vergleichen? Also gibt es eine Ausgabe, wenn die Zeichenkette Answers eine 'N' drin enthält?Finden von Vorkommen von 'Y' oder 'N' in einer Zeichenfolge

def stringSearcher():    #Seperates and returns 2 strings from .txt file 
    f = open("QuestionTree.txt", "r") 
    currentLine = f.readline() 
    for line in f: 
     if Answer in line: 
      yesnos, answerOrQuestion = line.split(',') 
      return answerOrQuestion, yesnos 

while True: 

    Answer = raw_input("Y or N: ")    #User input 
    answerOrQuestion, yesnos = stringSearcher() #allows usage of Return variables 

    if yesnos == Answer:  #Will compare the 'Y' in string but not 
     print answerOrQuestion 

Dies ist, was die Ausgabe wie folgt aussieht:


Y or N: N #Not print the N in the text file 
Y or N: Y 
In the Towers? 

Y or N: YN 
Y or N: YY 
Old Tower? 

Y or N: YYY 
7 floors tall? 

Y or N: ^CTraceback (most recent call last): 
    File "TestCode.py", line 11, in <module> 
    Answer = raw_input("Y or N: ") 

Dies ist, was Textdatei wie folgt aussieht:


ist es ein Wohnheim? Y, In den Türmen? YY, Alter Turm? YYY, 7 Stockwerke hoch? JJJJ, ist es Carey? JJJJJ, Carey Hall YYYYN, Troutman Hall YYYN, ist es Wheeler? N, westlich der Mission? NY, S von Broomfield? NYY, CMU gehört? NYYY, Kewadin NYYN, B-Ball Gericht? NYYNY, ist es Lexington?

+1

Was ist Ihre Frage? – anthropomorphic

+0

Wenn ich mein Programm ausführe, gibt es nur Ausgabe für "Y". –

+1

Ja, aber was ist deine Frage? – anthropomorphic

Antwort

1

Änderung

def stringSearcher(): 

zu

def stringSearcher(Answer): 
+0

Es hat nicht funktioniert ... TypeError: String Searcher() nimmt genau 1 Argument (0 gegeben) –

+0

auch String (String) in der While-Schleife zu stringSearcher (Antwort) ändern. – Yunhe

+0

Die Änderungen änderten nicht die Ausgabe für die Zeichenfolge einschließlich "N", wie würde ich das beheben? –

0
import re 

def stringSearcher(Answer): 
    f = open("QuestionTree.txt", "r") 
    currentLine = f.readline() 
    for line in f: 
     if re.match(Answer, line): 
      yesnos, answerOrQuestion = line.split(',') 
      return answerOrQuestion, yesnos 

while True: 

    Answer = raw_input("Y or N: ") 
    answerOrQuestion, yesnos = stringSearcher(Answer) 

    if Answer == yesnos:  #Will compare the 'Y' in string but not 
     print answerOrQuestion 
Verwandte Themen