<p>您的问题是,您提供的选项是<code>1, 2, 3</code>,而您使用<code>randint</code>来选择<code>0, 1, 2, 3, 4</code>不匹配的选项</p>
<pre><code>if difficulty == 4:
difficulty = random.randint(0,4)
if difficulty == 1:
difficult = "Easy"
elif difficulty == 2:
difficult = "Medium"
elif difficulty == 3:
difficult = "Hard"
</code></pre>
<p>总的来说,我认为在这种情况下使用<code>dictionaries</code>来消除你所面临的所有重复性会有好处。你可以设置两个字典,一个用来处理最后一个句子的<code>parts</code>。我们可以使用列表中的键和值。接下来我们可以设置我们的<code>options</code>,它将是来自<code>parts</code>的<code>keys</code>。然后我们可以创建另一个字典<code>mode</code>,它将告诉我们将使用哪些键通过切片<code>option</code>从<code>parts</code>中进行选择</p>
<pre><code>from random import randint, choice
parts = {
'Heroes': ['Spiderman, ', 'Superman, ', 'Batman, '],
'Villians': [
'fighting the Green Goblin, ', 'fighting Doomsday, ', 'fighting the Joker, '
],
'Circumstances': [
'on top of a Skyscraper ', 'in the Streets of Metropolis ', 'inside The Batcave '
],
'Powers': [
'with weather control powers, ', 'with sound control powers, ', 'without superpowers, ' ],
'Villian Powers': [
'who is invisible.', 'who has a big laser-beam. ',
'who has a remotely controlled tornado. '
]
}
options = list(parts.keys())
mode = {1: options[:-2], 2: options[:-1], 3: options}
diff = int(input('Choose difficulty 1 - 3 (4 == random): '))
if diff == 4:
diff = randint(1, 3)
final_s = ''
for i in mode[diff]:
final_s += choice(parts[i])
print(final_s)
</code></pre>
<blockquote>
<pre><code>Choose difficulty 1 - 3 (4 == random): 4
Spiderman, fighting Doomsday, inside The Batcave
Choose difficulty 1 - 3 (4 == random): 3
Superman, fighting the Joker, inside The Batcave with weather control powers, who is invisible.
</code></pre>
</blockquote>