在python中将循环数据输出到文本文档

2024-06-26 17:47:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有以下代码:你输入一个字符串,然后计算机随机抽取字母,并试图将其与字符串中的字母匹配。这个过程会重复,并且随着每次迭代,计算机更接近于猜测字符串。我想输出输入的初始字符串或'target'以及获得正确匹配所需的迭代次数的字符串格式。我想把它输出到一个文本文档。到目前为止,脚本生成了一个文本文档,但没有输出到它。我想它保存数据后,每次迭代从主循环。我有工作计划,我只需要协助输出,有什么想法,如何可以做到这一点?你知道吗

以下是我取得的进展:

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()

Tags: 字符串falsetargetstring计算机字母randomgeneration
1条回答
网友
1楼 · 发布于 2024-06-26 17:47:44

同时解决原始问题和评论中的问题:

  • 如何在循环每次迭代后写入文件:在file.write(...)之后调用file.flush()

    file.write(target)
    file.write(genstr)
    file.flush() # flushes the output buffer to the file
    
  • 要在您编写的每个“target”和“genstring”后面添加一个换行符,那么,在字符串中添加一个换行符(或者您想要的任何其他输出格式):)

    file.write(target + '\n')
    file.write(genstr + '\n')
    

相关问题 更多 >