2016-07-02 9 views
0

Dies ist mein erster Versuch, etwas in Python zu schreiben. Ich verstehe nicht, warum der Text in die nächste Zeile geht. Ich möchte es sein:Text in die nächste Zeile verschieben Python 3.4

Möchten Sie "Ereignis" löschen?
Y oder N

Aber es druckt als:

Möchten Sie löschen möchten "event
"? Y oder N

Dank

# picks a random string from ideas34.txt 
event = random.choice(open('ideas34.txt', 'r').readlines()) 

choice = int(input('\n' "What would you like to do?" '\n' "1 Random event" '\n' "2 Add a new event" '\n' 
        "3 Show all events" '\n' "4 Quit" '\n')) 
# prints a random event from ideas34.txt 
if choice == 1: 
    print(event) 
    d = input("Would you like to delete " "\"" + event + "\"? \n Y or N" '\n') 
    # deletes the event picked 
    if d == 'Y' or d == 'y': 
     f = open('ideas34.txt', 'r') 
     a = [event] 
     lst = [] 
     for line in f: 
      for word in a: 
       if word in line: 
        line = line.replace(word, '') # deletes event picked from ideas34.txt 
      lst.append(line) 
     f.close() 
     f = open('ideas34.txt', 'w') 
     for line in lst: 
      f.write(line) 
     f.close() 
+1

Mai b coz Sie haben '\ n' vorher? Y oder N –

+0

Hinweis: '.readlines()' behält die Zeilenumbrüche in den gelesenen Zeilen bei. Es gibt ein paar Möglichkeiten, um damit umzugehen, aber werfen Sie einen Blick auf die Methoden '.strip' und' .rstrip' des 'str'-Typs. –

+0

@PM 2Ring Danke, das war es. 'event.rstrip()' hat den Job erledigt. – catroaring

Antwort

0

Der Grund dafür ist die aus den einfachen und doppelten Anführungszeichen mischen, dann entweicht die newLine und das doppelte Anführungszeichen alle zusammen in der gleichen Zeile

versuchen Sie stattdessen etwas wie

input('Would you like to delete ' '\"' + event + '\"?' '\n' Y or N' '\n')