# FAQ: Code Challenge: Control Flow - In Range

This community-built FAQ covers the “In Range” exercise from the lesson “Code Challenge: Control Flow”.

Paths and Courses
This exercise can be found in the following Codecademy content:

## FAQs on the exercise In Range

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

## Join the Discussion. Help a fellow learner on their journey.

Agree with a comment or answer? Like () to up-vote the contribution!

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

# Write your in_range function here:

def in_range(num, lower, upper):
if(num >= lower and num <= upper):
return True
return False

# Uncomment these function calls to test your in_range function:

print(in_range(10, 10, 10))

# should print True

print(in_range(5, 10, 20))

# should print False

Why is there no “else” used in this function?

2 Likes

Whenever our if branch contains a `return`, and there is only a default return otherwise, we don’t need else.

``````if something:
return True
return False
``````

Control flow that does not pass the conditional will fall to the last line, which line will execute and send back the default return.

3 Likes

why if I write

if something:
return True
else:
return False

it doesn’t give any False output? It comes “None” instead of False…

Interesting. How am I able to tell if the return is a default?

``````if something:
return True
return False
``````

Here,`return False` is the default, because if none of the operands to any preceding `if:` or `elif:` expressions is True, that is the line to which control will ultimately be passed.

1 Like

Can someone tell me why this doesn’t work?

``````def in_range(num, lower, upper):
if (num >= lower) and (num >= upper):
return True
else:
return False
``````

I know, based on the solution, that the else statement isn’t really necessary but shouldn’t it work anyway?

Take another look at the two conditions which must be true for ‘if’ to trigger. I don’t think that’s quite what you mean.

1 Like

Hi there,
I have a problem with the following code:

``````# Write your in_range function here:
def in_range(num,lower,upper):
return True if num >= lower and num <= upper
else return False
``````

the error output is as follows:

``````  File "script.py", line 3
return True if num >= lower and num <= upper
^
SyntaxError: invalid syntax
``````

The `SyntaxError` doesn`t help much, the error is in line 3 alright. But I have no Idea what went wrong.

Is this supposed to be Python? That is not how conditional statements are structured.

``````if condition:
# do something
else:
# do something else
``````
1 Like

Anyone know why this doesn’t work? It returned True and False correctly with the prompts but was not accepted as correct.

def in_range(num, lower, upper):
__return num >= lower and num <= upper (underscores used to show indent-not in actual code)

1 Like

It works fine!!

Two notes:

1. You can reproduce code properly by using the </> icon found in the menu bar in the text box where you type

2. Python understands a construction like: `lower <= num <= upper`, which I find easier to read than the use of and with two comparisons. For one thing, if the carats are pointed left, it creates an analogy to the number line that is illuminating.

2 Likes