0
guessesRemaining=12
Summary=[]


code=['1','2','3','4']



while guessesRemaining > 0:
report=[]
guess=validateInput()
guessesRemaining -= 1
if guess[0] == code[0]:
    report.append("X")
if guess[1] == code[1]:
    report.append("X")
if guess[2] == code[2]:
    report.append("X")
if guess[3] == code[3]:
    report.append("X")

tempCode=list(code)
tempGuess=list(guess)

if tempGuess[0] in tempCode:
    report.append("O")
if tempGuess[1] in tempCode:
    report.append("O")
if tempGuess[2] in tempCode:
    report.append("O")
if tempGuess[3] in tempCode:
    report.append("O")

ListCount=report.count("X")
if ListCount > 0:
    del report[-ListCount:]

report2=report[0:4]
dash=["-","-","-","-"]
report2=report+dash
report3=report2[0:4]
report4="".join(report3)
guess2="".join(guess)
Summary+=[guess2,report4]

print(Summary)

validateInput() 调用了一个我没有在这里添加的函数。我试图弄清楚如何在 12 次猜测的过程中一次打印一行结果。通过三个猜测,我收到...

['4715', 'OO--', '8457', 'O---', '4658', 'O---']

当我想收到...

['4715', 'OO--'] 
['8457', 'O---']
['4658', 'O---'] 

我尝试以多种方式添加 \n ,但我不知道如何实现它。非常感谢任何和所有帮助。

4

3 回答 3

1

我尝试以多种方式添加 \n ,但我不知道如何实现它。

如果您首先正确地构建数据,这将有很大帮助。

Summary+=[guess2,report4]

这意味着“将 中的每个项目分别附加[guess2,report4]Summary”。

看来您的意思是“将[guess2,report4]其视为要附加到的单个项目Summary”。为此,您需要使用append列表的方法:

Summary.append([guess2, report4])

现在我们有了一个配对列表,我们希望将每个配对显示在单独的行上,这样会容易得多:

for pair in Summary:
    print(pair)
于 2013-03-28T04:28:58.380 回答
0

ifSummary仅用于打印,不用于后续步骤,

Summary+=[guess2,report4,'\n']

for i in Summary:
  print i,

另一种方法是使用如何将列表拆分为大小均匀的块中的一种解决方案?

于 2013-03-28T04:26:07.137 回答
0

我认为你需要类似的东西

In [1]: l = ['4715', 'OO--', '8457', 'O---', '4658', 'O---']

In [2]: l1 = l[::2] # makes a list ['4715', '8457', '4658']

In [3]: l2 = l[1::2] # makes ['OO--', 'O---', 'O---']

In [4]: for i in zip(l1, l2):
   ...:     print i
   ...:
('4715', 'OO--')
('8457', 'O---')
('4658', 'O---')
于 2013-03-28T03:45:27.493 回答