<p>我会重新排序您的代码,使控制流更清晰</p>
<p>为了比较“if<em>a</em><code>in</code><em>多个元素</em>”,应该使用<a href="https://docs.python.org/3.7/library/stdtypes.html#set" rel="nofollow noreferrer">set()s</a>-当查找其中是否有内容(以及其他集合操作)时,它们非常有效</p>
<p>要打印,请查阅<a href="https://docs.python.org/3.7/library/string.html#formatspec" rel="nofollow noreferrer">str.format()</a>或<a href="https://www.python.org/dev/peps/pep-0498/" rel="nofollow noreferrer">python 3.6+ string interpolation: PEP-498</a></p>
<p>如果只使用2个随机数的和,可以使用<a href="https://docs.python.org/3/library/random.html#random.choices" rel="nofollow noreferrer">random.choices(iterable, k=2)</a>一次性获得它们</p>
<pre><code>from random import choices
cash = 20
winAmount = 3
lossAmount = 2
#Starting game
print("""Welcome to, Gambling for School!
You have $20 and must earn as much money as possible
If you roll a 3, 7, 11, or 17, you will win $3, else you loose $2
You have a 20% chance of winning
""")
x = input("Press ENTER to start.")
lucky_numbers = {3,7,11,17}
# needed for outputting text
pluralize = {8,11,18}
win = False
loop = "y"
while loop and loop[0]== "y":
sum_dice = sum(choices(range(1,11), k=2))
if sum_dice in lucky_numbers:
win = True
cash += winAmount
else:
win = False
cash -= lossAmount
print("You {}. You rolled a{} {}!".format(
"won" if win else "lost",
"n" if sum_dice in pluralize else "",
sum_dice))
print("")
print("Cash - $" + str(cash))
loop = input("Continue? (Y/N) ").lower().strip()
</code></pre>
<p>输出:</p>
<pre><code>Welcome to, Gambling for School!
You have $20 and must earn as much money as possible
If you roll a 3, 7, 11, or 17, you will win $3, else you loose $2
You have a 20% of winning
Press ENTER to start.
You lost. You rolled a 6!
Cash - $18
Continue? (Y/N) y
You lost. You rolled a 16!
Cash - $16
Continue? (Y/N) y
You lost. You rolled a 16!
Cash - $14
Continue? (Y/N) y
You lost. You rolled a 15!
Cash - $12
Continue? (Y/N) y
You won. You rolled a 7!
Cash - $15
Continue? (Y/N) n
</code></pre>
<p>除了打印格式化之外,输出还使用三元运算符(do<em>x</em>如果不是这样<em>y</em>)。更多信息:<a href="https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator">Does Python have a ternary conditional operator?</a></p>