2017-03-14 4 views
0

Ich bin wirklich neu in der Programmierung im Allgemeinen, aber ich bin ein schneller Lerner. Ich habe an einem Projekt gearbeitet. Ich wollte ein einfaches Hangman-Spiel machen, aber ich traf eine Straßensperre und ich würde es gerne herausfinden, bevor ich fortfahre.Wie man Element einer Zeichenfolge in Python zuweisen

Ich versuche, eine leere Variable korrekte Annahmen zuzuweisen und Drucken ist wie sie gehen, aber es scheint, ich kann "Elemente" nicht zuordnen. Gibt es eine alternative Methode, die ich verwenden könnte?

Hier ist der Code

switch = True 

    def hangman(): 
     guess_number = 0  # Var that keeps track of the guesses 


     secret_word = input("What is the secret word?\n>") # Gets the secret word 

     print("The secret word is %d characters long." % len(secret_word)) # Lenght of secretword 

     answer = "-" * len(secret_word)  # Create empty answer for assigning characters 

     while switch is True: 
      guess_number = guess_number + 1  # Counts the guesses 
      index_num = 0   # Tring to use this to assign correct guesses to answer 
      user_guess = input("Guess #%d >" % guess_number) # Gets user guess 
      print("Secret word: " + answer)      # prints empty answer as "----" 

      for each_char in secret_word: 
       index_num = index_num + 1  # Counting index for assigning to answer variable 
       print("testing index #" + str(index_num)) 

       if user_guess is each_char: 
        print("Correct Guess for index #" + str(index_num)) 
#------>   answer[index_num] = each_char <-------- 

    hangman() 
+0

Es wäre einfacher, denke ich, wenn Sie tatsächlich die Schnur in eine Liste, wo jedes Element in der Liste ein einziger Brief war. Dann könnten Sie es indizieren, wie Sie es wollten. Wenn Sie es dann als ein Wort drucken wollten: 'print (''. Join (Element für Element in meiner_Liste))' – roganjosh

+0

Sie sollten ein Wörterbuch anstelle einer Zeichenfolge für 'Antwort' verwenden, wenn Sie das Zeichen jeder Antwort speichern möchten . Sie sollten zuerst Python-Datenstrukturen nachschlagen. Bitte posten Sie die erwartete Ausgabe – nir0s

Antwort

0

Python Strings unveränderlich sind, können sie nicht geändert werden. Sie können Ihre Zeichenfolge als Liste

answer = list("-" * len(secret_word))

Dann Zeichen behandeln miteinander verbinden answer_str="".join(answer)

0

Es gibt einige andere Möglichkeiten, die vorgeschlagen wurden. Wenn Sie bestimmt sind die Zeichenfolge Antwort zu halten, versuchen Sie dies:

answer = answer[:index_num] + each_char + answer[index_num+1:] 

Diese eine neue Zeichenfolge erstellt durch Hinzufügen (string add ist Verkettung) zusammen drei Teil: Zunächst erstellt der Teil von slicing die ursprünglichen Zeichenfolge von null (Standard: [:) bis index_num, nicht inklusive. Das heißt, antworte [0] ... antworte [index_num-1]. Dann die each_char, die eine Zeichenfolge (oder ein Zeichen, der gleiche Unterschied) ist. Zum Schluss noch eine Teilkette, die von index_num+1 bis zum Ende läuft (Standard: :]).

+0

Dies funktionierte für mich, danke euch allen für die Antworten! Es scheint, dass Listen der leichtere Weg sind, also gehe ich zurück zum Lernen! – Brandon

Verwandte Themen