Ok, also schreibe ich einen Code, der zehn Dungeon- und Drachencharaktere generiert. Ich muss zehn Zeichen generieren, deren Zeichen auf jeder Zeile stehen sollten. Hier sind die Anweisungen von meinem Lehrer: "Ändern Sie das Programm, um 10 Namen zu generieren und speichern Sie sie in einem Array. Dann Schreiben Sie eine Funktion, dumpFile, die das Array in eine Datei namens" CharacterNames.txt "schreibt Es sollte ein Charaktername auf jedem sein Zeile in der Datei. "Wie erhalte ich meinen Code, um einen Charakternamen zehn Mal in verschiedenen Zeilen auszudrucken?
Also hier ist mein Originalcode.
import random
def main():
txt1 = loadFile("names.txt")
name_txt1 = random.randint(0, len(txt1))
name2_txt1 = random.randint(0, len(txt1))
txt2 = loadFile("titles.txt")
titles_txt2 = random.randint(0, len(txt2))
txt3 = loadFile("descriptors.txt")
descriptors_txt3 = random.randint(0, len(txt3))
print(txt2[titles_txt2], txt1[name_txt1], txt1[name2_txt1],"the", txt3[descriptors_txt3])
def loadFile(fileName):
array = []
file = open(fileName, "r")
for line in file:
array.append(line.strip())
file.close()
return(array)
main()
Hier ist mein modifizierter Code so weit.
import random
def main():
txt1 = loadFile ("names.txt")
txt2 = loadFile ("titles.txt")
txt3 = loadFile ("descriptors.txt")
array = []
for _ in range (10):
name_txt1 = dumpFile2 (txt1)
name2_txt1 = dumpFile2 (txt1)
titles_txt2 = dumpFile2 (txt2)
descriptors_txt3 = dumpFile2(txt3)
x = " ".join ((titles_txt2, name_txt1, name2_txt1, "the", descriptors_txt3))
array.append (x.strip())
dumpFile (array)
def loadFile (fileName):
with open (fileName) as file1: return file1.read().splitlines()
def dumpFile (arr):
file = open ("CharacterNames.txt", "w")
file.close()
print(arr)
def dumpFile2(arr):
return arr [random.randint(0, len(arr)- 1)]
main()
Hier ist die Ausgabe ich von meinem modifizierten Code bekommen: This image shows the output I am getting from my modified code. I'm getting a bunch of lines when I'm supposed to only generate ten character names with one on each line
Sie die Datei öffnen und die Linien drucken, aber Sie sie nie in die Datei schreiben. –
Sie rufen dumpFile bei jeder Schleife Iteration, die Array für _ = 1, _ = 2 usw. dedent ist. Die Zeile dumpFile (Array) – dodell
Danke, dass ich auch meine Aufmerksamkeit hatte, hatte ich ursprünglich aus der for-Schleife aber irgendwie habe ich nicht gemerkt, dass ich es wieder eingerückt habe. Danke, dass du darauf hingewiesen hast. –