input: Write a function to find the smallest number in a list of numbers. The function should return this smallest number. If the list is empty, the function should return None.
  
  def find_smallest_number(numbers):
      if not numbers:
          return None
      smallest = numbers[0]
      for num in numbers:
          if num < smallest:
              smallest = num
      return smallest
  
  assert find_smallest_number([5, 4, 12, 17, 9])==4
  assert find_smallest_number([10, 2, 3, 5, 1])==1
  assert find_smallest_number([7])==7
  assert find_smallest_number([])==None
  assert find_smallest_number([8, 9, 10, 11, 12])==8
output: def find_smallest_number(numbers):
      if not numbers:
          return None
      smallest = numbers[0]
      for num in numbers:
          if num < smallest:
              smallest = num
      return smallest