我目前有以下代碼:輸入一個字符串後,計算機將隨機抽取字母並嘗試將其與字符串中的字母進行匹配。這會重複,並且每次迭代計算機都會更接近猜測您的字符串。我想輸出輸入的初始字符串或「目標」以及爲獲得正確匹配所花費的迭代次數的字符串格式。我想輸出這個文本文件。到目前爲止,腳本生成一個文本文檔,但不輸出到它。我希望它在主循環的每次迭代之後保存數據。我有工作計劃,我只需要輸出的幫助,關於如何完成的任何想法?將循環數據輸出到python中的文本文檔中
這裏是我所取得的進展:解決這兩個原來的問題和一個在評論
import string
import random
possibleCharacters = string.ascii_lowercase + string.digits + string.ascii_uppercase + ' .,!?;:£$^%&*|'
file = open('out.txt', 'w')
again = 'Y'
while again == 'Y' or again == 'y':
target = input("Enter your target text: ")
attemptThis = ''.join(random.choice(possibleCharacters) for i in range(len(target)))
attemptNext = ''
completed = False
generation = 0
while completed == False:
print(attemptThis)
attemptNext = ''
completed = True
for i in range(len(target)):
if attemptThis[i] != target[i]:
completed = False
attemptNext += random.choice(possibleCharacters)
else:
attemptNext += target[i]
generation += 1
attemptThis = attemptNext
genstr = str(generation)
print("Target matched! That took " + genstr + " generation(s)")
file.write(target)
file.write(genstr)
again = input("please enter Y to try again: ")
file.close()
你的錯誤是不在文件寫作。你沒有顯示你的整個代碼,很難說它還有什麼錯誤。它應該寫入文件很好,除非你的循環在此之前終止。 – sashkello
您的寫作代碼看起來很好。請注意,它可能不會實際寫入文件,直到調用file.close()爲止,例如。當再次!='Y',它退出循環。要在匹配目標後強制寫入文件,請在調用file.write之後調用''file.flush()''。 – Moritz
@sashkello這是整個代碼,它沒有在IDE中出現錯誤,但它創建的文件,但不寫入它 – Downdog555