input: Write a function to scrape photos and captions from a given website and return a list of tuples where each tuple contains a photo URL and its corresponding caption. If no caption is present, the tuple should contain the URL and the string "No caption".
  
  def scrape_photos_and_captions(url):
      from bs4 import BeautifulSoup
      import requests
  
      req = requests.get(url)
      html = req.text
      soup = BeautifulSoup(html, features='lxml')
      image_divs = soup.find_all('div', {'class': 'image-gallery__image'})
  
      results = []
      for image_div in image_divs:
          figure = image_div.find('figure')
          src = figure.find('img')['src']
          caption = figure.find('figcaption')
          if caption:
              results.append((src, caption.text))
          else:
              results.append((src, "No caption"))
      
      return results
  
  assert scrape_photos_and_captions('https://example.com/webpage') == [('http://example.com/image1.jpg', 'Caption1'), ('http://example.com/image2.jpg', 'Caption2'), ('http://example.com/image3.jpg', 'No caption')]
output: def scrape_photos_and_captions(url):
      from bs4 import BeautifulSoup
      import requests
  
      req = requests.get(url)
      html = req.text
      soup = BeautifulSoup(html, features='lxml')
      image_divs = soup.find_all('div', {'class': 'image-gallery__image'})
  
      results = []
      for image_div in image_divs:
          figure = image_div.find('figure')
          src = figure.find('img')['src']
          caption = figure.find('figcaption')
          if caption:
              results.append((src, caption.text))
          else:
              results.append((src, "No caption"))
      
      return results