Bird
Raised Fist0
Intro to Computingfundamentals~10 mins

Search and find operations in Intro to Computing - Draw & Build Visually

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Draw This - beginner

Draw a flowchart to search for a number 7 in the list: [3, 5, 7, 9, 11]. Show each step of checking elements until the number is found or the list ends.

7 minutes
Hint 1
Hint 2
Hint 3
Hint 4
Hint 5
Grading Criteria
Start and End symbols present
Initialization of index variable shown
Decision diamond for index < list length present
Decision diamond for element == 7 present
Correct loop back to index check
Outputs 'Found' or 'Not Found' correctly
Solution
  +-------+
  | Start |
  +-------+
      |
      v
  +-----------------+
  | Set index = 0   |
  +-----------------+
      |
      v
  +-----------------------------+
  | Is index < length of list?  |----No----->+------------+
  +-----------------------------+            | Not Found  |
      |Yes                                      +------------+
      v
  +-----------------------------+
  | Is list[index] == 7?        |----Yes----->+---------+
  +-----------------------------+              | Found   |
      |No                                       +---------+
      v
  +-----------------+
  | index = index+1 |
  +-----------------+
      |
      v
  (loop back to check index < length)

This flowchart starts by setting an index to 0, which points to the first element in the list.

It checks if the index is still within the list length. If not, it means the number 7 was not found, so it ends with 'Not Found'.

If the index is valid, it compares the current element with 7. If they match, it ends with 'Found'.

If not, it increases the index by 1 and repeats the check until it finds 7 or reaches the end.

Variations - 2 Challenges
[beginner] Draw a flowchart to search for the number 10 in the list: [2, 4, 6, 8, 10, 12]. Show each step until found or list ends.
[intermediate] Draw a flowchart to search for a word 'apple' in the list: ['banana', 'apple', 'cherry', 'date']. Show each step until found or list ends.

Practice

(1/5)
1. What is the main idea behind a linear search in a list?
easy
A. Check each item one by one until the target is found
B. Jump directly to the middle item and check only there
C. Sort the list first before searching
D. Use a map to find the item instantly

Solution

  1. Step 1: Understand linear search method

    Linear search means looking at each item in order, one after another.
  2. Step 2: Identify the correct description

    Only Check each item one by one until the target is found describes checking items one by one until the target is found.
  3. Final Answer:

    Check each item one by one until the target is found -> Option A
  4. Quick Check:

    Linear search = check items one by one [OK]
Hint: Linear search checks items in order until found [OK]
Common Mistakes:
  • Thinking linear search jumps to middle item
  • Confusing linear search with binary search
  • Assuming list must be sorted first
2. Which of the following is the correct syntax to find the index of element 5 in a Python list named numbers?
easy
A. numbers.index(5)
B. index(numbers, 5)
C. numbers.find(5)
D. find(numbers, 5)

Solution

  1. Step 1: Recall Python list method for finding index

    Python lists use the index() method to find the position of an element.
  2. Step 2: Match method to syntax

    Only numbers.index(5) is correct syntax to find element 5's index.
  3. Final Answer:

    numbers.index(5) -> Option A
  4. Quick Check:

    List method to find index = index() [OK]
Hint: Use list.index(value) to find element position [OK]
Common Mistakes:
  • Using find() which is for strings, not lists
  • Trying to call index as a standalone function
  • Confusing method name with other languages
3. What will be the output of the following Python code?
items = [3, 7, 1, 9, 7]
print(items.index(7))
medium
A. Error
B. 3
C. 4
D. 1

Solution

  1. Step 1: Understand list and index method

    The list items contains [3, 7, 1, 9, 7]. The index() method returns the first position of the value.
  2. Step 2: Find first occurrence of 7

    7 appears first at position 1 (0-based index).
  3. Final Answer:

    1 -> Option D
  4. Quick Check:

    First 7 at index 1 [OK]
Hint: index() returns first match position [OK]
Common Mistakes:
  • Choosing last occurrence index instead of first
  • Confusing value with index
  • Expecting error due to duplicate values
4. The following code is intended to find the index of 10 in the list data. What is wrong?
data = [4, 8, 10, 15]
position = data.find(10)
print(position)
medium
A. The list is missing the element 10
B. The list method should be index(), not find()
C. The print statement syntax is incorrect
D. The variable name 'position' is invalid

Solution

  1. Step 1: Check method used on list

    Python lists do not have a find() method; they use index() to find element positions.
  2. Step 2: Identify correct method

    Replacing find() with index() fixes the error.
  3. Final Answer:

    The list method should be index(), not find() -> Option B
  4. Quick Check:

    List search method = index() [OK]
Hint: Use index() for lists, find() is for strings [OK]
Common Mistakes:
  • Assuming find() works on lists
  • Thinking element 10 is missing
  • Believing print syntax is wrong
5. You have a list of student names: students = ['Anna', 'Bob', 'Cara', 'Dan', 'Eli']. You want to check if 'Zoe' is in the list and print her position if found, otherwise print -1. Which code snippet correctly does this efficiently?
hard
A. print(students.find('Zoe'))
B. for i in range(len(students)): if students[i] == 'Zoe': print(i) break
C. print(students.index('Zoe') if 'Zoe' in students else -1)
D. if 'Zoe' in students: print(students.index('Zoe'))

Solution

  1. Step 1: Understand the goal

    We want to check if 'Zoe' is in the list ('Zoe' not present) and print her position if found, else -1, efficiently without errors.
  2. Step 2: Analyze options for correctness and efficiency

    print(students.index('Zoe') if 'Zoe' in students else -1) uses conditional expression to print index or -1 safely and efficiently. for i in range(len(students)): if students[i] == 'Zoe': print(i) break loops but prints nothing if not found. print(students.find('Zoe')) uses invalid find() for lists. if 'Zoe' in students: print(students.index('Zoe')) prints only if found, nothing otherwise.
  3. Final Answer:

    print(students.index('Zoe') if 'Zoe' in students else -1) -> Option C
  4. Quick Check:

    Safe check and index with conditional expression [OK]
Hint: Use conditional index with membership check to avoid errors [OK]
Common Mistakes:
  • Using find() on list causing error
  • Not printing -1 when element missing
  • Writing longer loops instead of simple condition