Remember the movie with David Bowie: 'The Labyrinth'?

You can remember your childhood here: https://www.youtube.com/watch?v=2dgmgub8mHw

In this scene the girl is faced with two 'Knights" and two doors. One door leads the castle where the Goblin King and her kid brother is, the other leads to certain death. She can ask the 'Knights'  a question to find out which door is the right one to go in. But...

One of them always tells the truth, and the other one always lies.


In this Kata one of the 'Knights' is on a coffee break, leaving the other one to watch the doors. You have to determine if the one there is the Knight(Truth teller) or Knave(Liar) based off of what he ```says```

Create a function:
```
def knight_or_knave(says):
  # returns if knight or knave 
```
Your function should determine if the input '''says''' is True or False and then return:
```'Knight!'``` if True or ```'Knave! Do not trust.'``` if False

Input will be either boolean values, or strings.
The strings will be simple statements that will be either true or false, or evaluate to True or False. 

See example test cases for, well... examples

You will porbably need to ```eval(says)```

But note: Eval is evil, and is only here for this Kata as a game.

And remember the number one rule of The Labyrinth, even if it is easy, Don't ever say 'that was easy.'

Difficulty: introductory

Starter code:

def knight_or_knave(said):
	

Solutions:
def knight_or_knave(said):
    return "Knight!" if eval(str(said)) else "Knave! Do not trust."

def knight_or_knave(said):
    try:
        return 'Knight!' if eval(said) else 'Knave! Do not trust.'
    except:
        return 'Knight!' if said else 'Knave! Do not trust.'

knight_or_knave = lambda said: 'Knight!' if eval(str(said)) else 'Knave! Do not trust.'

def knight_or_knave(said):
    return eval(str(said)) and "Knight!" or 'Knave! Do not trust.'

def knight_or_knave(said):
    if type(said)==str: 
        said=eval(said)
    return ['Knave! Do not trust.', 'Knight!'][said]

def knight_or_knave(said):
    f,t="Knave! Do not trust.","Knight!"
    if isinstance(said,bool):return [f,t][said]
    elif isinstance(said,str):return [f,t][eval(said)]

def knight_or_knave(said):
    if said==True:
        return 'Knight!'
    elif said==False:
        return 'Knave! Do not trust.'
    elif eval(said)==True:
        return 'Knight!'
    return 'Knave! Do not trust.'

knight_or_knave = lambda said: ('Knave! Do not trust.', 'Knight!')[eval(said) if isinstance(said, str) else said]

def knight_or_knave(said):
    if isinstance(said, str):
        return 'Knight!' if eval(said) == True else 'Knave! Do not trust.'
    else:
        return 'Knight!' if bool(said) == True else 'Knave! Do not trust.'

def knight_or_knave(said):
    return 'Knight!' if bool(eval(str(said))) else 'Knave! Do not trust.'