<p>如您所见,<code>random.randint()</code>只接受<b>int</b>s(整数)。在</p>
<pre><code>>>> import random
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
2
</code></pre>
<p>但是,如果使用<strong>浮点</strong>,则会产生相同的错误:</p>
^{pr2}$
<p>这是你更新的代码</p>
<pre><code>import math
#Question 1
def playNovice(marbles):
import random
rand = random.randint(1,math.floor(0.5*marbles))
print('Computer takes: ', rand)
#Question 2
def userPlay(marbles):
userAmount = marbles
while userAmount > (marbles * 0.5):
userAmount = int(input("Input Number of Marbles you want to take from pile: "))
return userAmount
#Question 4
import random
marbles = random.randint(10,100)
print("Size of Marble Pile: ", marbles)
OneOrZero = random.randint(0,1)
starter = int(input("Enter a Number between 0 and 1 to decide who starts: "))
while marbles > 1:
if starter == OneOrZero:
while marbles > 1:
print("Your Turn!")
rand = userPlay(marbles)
marbles = (marbles - rand)
print(marbles, 'Marbles Remaining')
print("Computers Turn!")
rand = playNovice(marbles)
marbles = (marbles - rand)
print(marbles, 'Marbles Remaining')
elif starter != OneOrZero:
while marbles > 1:
print("Computers Turn!")
rand = playNovice(marbles)
marbles = (marbles - rand)
print(marbles, 'Marbles Remaining')
print("Your Turn!")
rand = userPlay(marbles)
marbles = (marbles - rand)
print(marbles, 'Marbles Remaining')
</code></pre>
<p>它使用<a href="https://docs.python.org/2.7/library/math.html#math.floor" rel="nofollow">math.floor</a>来获得底部整数,因此如果<code>marbles</code>是11,我们不希望它取更高(6)的<code>randint</code>。在</p>