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回の推測の過程で、一度に1行ずつ結果を出力する方法を見つけようとしています。3つの推測を通して、私は受け取ります...

['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

次のようなものが必要だと思います

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 に答える
0

Summary印刷のみを目的とし、後続のステップで使用しない場合、

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

for i in Summary:
  print i,

別の方法は、「リストを均等なサイズのチャンクに分割するにはどうすればよいですか?」のソリューションの 1 つを使用することです。

于 2013-03-28T04:26:07.137 に答える