python 3.4 3 unindent does not match any outer indentation level error

486 Views Asked by At
import random

secret = random.randint(1, 99)
guess = 0
tries = 0

print ("AHOY! I´m the dread pirate Roberts, and I have a secret!")
print ("It is a number from 1 to 99. I´ll give you 6 tries.")

while guess != secret and tries < 6:
    guess = input ("what´s yer guess?")
    if guess < secret:
        print ("Too low, ye scurvy dog!")
    elif guess > secret:
        print ("Too high, lamdlubber!")
    tries = tries + 1

    if guess == secret:
         print ("Avast! Ye got it! Found my secret, ye did!")
         else:
         print ("No more guesses! Better luck next time matey!")
         print ("The secret number was", secret)

What am I doing wrong? Im using the book helloworld book to learn how to programme, its the first "task" and it keeps telling me python 3.4 3 unindent does not match any outer indentation level. Pls help

2

There are 2 best solutions below

2
On

You forgot to un-indent the else at line 20.

Correction:

import random

secret = random.randint(1, 99)
guess = 0
tries = 0

print ("AHOY! I´m the dread pirate Roberts, and I have a secret!")
print ("It is a number from 1 to 99. I´ll give you 6 tries.")

while guess != secret and tries < 6:
    guess = input ("what´s yer guess?")
    if guess < secret:
        print ("Too low, ye scurvy dog!")
    elif guess > secret:
        print ("Too high, lamdlubber!")
    tries = tries + 1

    if guess == secret:
         print ("Avast! Ye got it! Found my secret, ye did!")
    else: # THIS was indented
         print ("No more guesses! Better luck next time matey!")
         print ("The secret number was", secret)
1
On

A few issues:

  1. I suppose it worked on your build, but I corrected the backtick to a regular quote '.
  2. You weren't changing the guess to an integer, so the comparison failed.
  3. The if guess == secret check and its corresponding else were indented too much. They needed to be completely out of the while loop.
  4. The content of the if guess == secret block was indented five spaces instead of four. Not a problem this time, but these inconsistencies can create problems sometimes.

 

import random

secret = random.randint(1, 99)
guess = 0
tries = 0

print ("AHOY! I'm the dread pirate Roberts, and I have a secret!")
print ("It is a number from 1 to 99. I'll give you 6 tries.")

while guess != secret and tries < 6:
    guess = int(input ("what's yer guess?"))
    if guess < secret:
        print ("Too low, ye scurvy dog!")
    elif guess > secret:
        print ("Too high, landlubber!")
    tries = tries + 1

if guess == secret:
    print ("Avast! Ye got it! Found my secret, ye did!")
else:
    print ("No more guesses! Better luck next time matey!")
    print ("The secret number was", secret)