これがあなたがそれを行うことができる基本的な方法です。これは、効率的な方法でリストを生成するために、いわゆるリスト内包表記の概念を使用します。.format()
は文字列の書式設定を示します。これにより、変数をさまざまな形式の文字列に渡すことができます (ドキュメントはこちらですが、今のところ、 が{0}
の最初の引数を参照していることがわかりますformat()
)。
names
前述のリスト内包表記を使用して生成され、構文的には次と同等です。
names = []
for i in range(6):
names.append(raw_input('Enter a name: ')
このパターンは、キラーや以前の推測なしでリストを生成するために後で使用されます。意味をなさない部分を喜んで説明します(私がそこに残した奇妙な点を指摘してくれた@JonClementsに感謝します):
import random
# Choose your names
names = [raw_input('Enter killer name: ') for i in xrange(6)]
# Choose a killer
killer = random.choice(names)
# Run for as many times as you want (here we do 6; could also be len(names)
max_guesses = 6
for guessno in xrange(max_guesses):
guess = raw_input('Guess the killer: ')
# If the guess is not the killer...
if guess != killer:
# This line creates a list that does not include the killer nor the guess
hint = random.choice([n for n in names if n not in [killer, guess]])
print 'Hint, the killer is not {0}'.format(hint)
else:
print 'Correct! The killer is {0}'.format(guess)
break