FAQ: Linear Search: Python - Finding the Maximum Value

This community-built FAQ covers the “Finding the Maximum Value” exercise from the lesson “Linear Search: Python”.

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

Search Algorithms

FAQs on the exercise Finding the Maximum Value

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 (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.

Ask or answer a question about this exercise by clicking reply (reply) below!

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

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

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!

Note, order matters in the conditional statement:

   if  search_list[idx] > search_list[maximum_score_index] or maximum_score_index == None :
      maximum_score_index = idx

Will raise an TypeError for search_list[None] TypeError: list indices must be integers or slices, not NoneType.

But this one since it hits the “maximum_score_index == None” first, it goes down to the conditional statement and skips the 2nd half.

   if maximum_score_index == None or search_list[idx] > search_list[maximum_score_index]:
      maximum_score_index = idx

I just learned this… thought I’d share.

6 Likes

You should use this instead because I’ve heard that == sometimes behaves strangely:
if maximum_score_index is None

On the quiz at the end of this lesson, the question came up: “what will this snipped of code do?”

def greaterSearch(searchList, targetValue):
  result = []
  for i in range(len(searchList)):
    if (searchList[i] > targetValue):
      result.append(searchList[i])
   return result

Now…
My first instinct was to look for an answer that just said “throws an indentation error” because even in the browser it was easy to see that return result wasn’t indented as part of the if condition or of the for loop. (I copied it verbatim from the quiz here, it’s easy to see that it has 3 spaces of indentation before it)

That wasn’t an option though, so I next looked for an answer that said something along the lines of “returns an empty list if the first element in searchList is smaller or equal than targetValue, or returns a list with the first element of searchList if it is bigger than targetValue.”

That wasn’t an option either. The quiz says the answer is “returns a list of all values greater than targetValue in searchList” and how the actual ■■■■ is it supposed to do that if we are always returning out of the function in the first iteration of the for loop?

Probably just an accidental tab while writing the question prompt but it got me by surprise since at the start of the course it was somewhat common to see questions of “what will this code do” that included sometimes hard to spot syntax or even variable name errors.

why don t we use maximum_score_index = 0 right away and we have to give first a None value which needs an extra line of code to circumvent it? I don t see the reason to make it complicated…