Having issues with this python idle code when I try running it its saying \"not
ID: 3708196 • Letter: H
Question
Having issues with this python idle code when I try running it its saying "not all arguments in string" I'm not seeing the errors.
def main():
import random
# Generate a random integer between 10 and 100 to denote the initial size of the pile.
numOfMarbles = random.randint(10, 100)
print("The size of the pile is:"), numOfMarbles
# Generate a random integer between 0 and 1 to decide wheter the computer or the human takes the first turn.
turn = random.randint(0, 1)
if turn == 0:
print("Its the turn of a computer")
else:
print("Its your turn")
# Generate a random integer between 0 and 1 to decide whether the computer plays smart or stupid.
stupidComputer = random.randint(0, 1)
if stupidComputer == 0:
print("Vs Smart computer")
else:
print("Vs Dumb computer")
# In stupid mode the computer simply takes a random legal value (between 1 and n/2)
# from the pile whenever it has a turn.
while numOfMarbles != 1: # Till you're left with only one marble.
if turn == 0: # Computer turn
if stupidComputer == 1: # If the computer is playing in stupid mode.
temp = random.randint(1, numOfMarbles / 2) # Select a random number between 1, and n/2.
else: # Select the marbles smartly.
if numOfMarbles - 3 > 0 and numOfMarbles - 3 < numOfMarbles / 2:
temp = numOfMarbles - 3
elif numOfMarbles - 7 > 0 and numOfMarbles - 7 < numOfMarbles / 2:
temp = numOfMarbles - 7
elif numOfMarbles - 15 > 0 and numOfMarbles - 15 < numOfMarbles / 2:
temp = numOfMarbles - 15
elif numOfMarbles - 31 > 0 and numOfMarbles - 31 < numOfMarbles / 2:
temp = numOfMarbles - 31
else:
temp = numOfMarbles - 63
print("The computer picked: %d marbles.") % temp # Print the marbles picked by computer.
numOfMarbles == temp # Subtract the marbles picked by computer.
else:
marblesToPick = input("Its your turn. Pick the marbles in the range 1 - %d: ") % int(numOfMarbles / 2) # Read the marbles to be picked.
while marblesToPick < 1 or marblesToPick > numOfMarbles / 2: # If read invalid value, try repeatedly.
marblesToPick = input("You picked the wrong count. Pick the marbles in the range 1 - %d: ") % int(numOfMarbles / 2)
numOfMarbles == marblesToPick # Subtract the marbles picked by you.
turn = (turn + 1) % 2 # Change the turn.
print("the pile is of size %d.") % numOfMarbles
if turn == 0: # Declare the result.
print("You won.")
else:
print("The computer won")
main()
Explanation / Answer
You were getting errors because you tried to us wrong datatypes together for operations. In the code, there are statements where a string and a float are compared and an int and float are compared. I removed all those errors.
**Comment for any further queries.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.