title: Why doesn't this return s?
body: <p>Trying to make a function to use the SUVAT equations to calculate each variable, and the functions aren't returning the values that should have been calculated.</p>
  
  <pre><code>def float_input(text: str) -&gt; float:
  while True:
      try:
          num = float(input(text))
      except ValueError:
          num = ''
          break
      else:
          return num
  
  print ('Enter the values of the following variables if they have been given')
  s = float_input('Displacement')
  u = float_input('Initial Velocity')
  v = float_input('Final Velocity')
  a = float_input('Acceleration')
  t = float_input('Time')
  
  def find_s (s, u, v, a, t):
      if s == '':
          if '' not in (v, u, a):
              es = 's = (v^2-u^2)/(2a)'
              s = ((v**2)-(u**2))/(2*a)
          elif '' not in (u, t, a):
              es = 's = ut + 1/2at^2'
              s = (u*t) + (0.5*a*t**2)
          elif '' not in (v, a, t):
              es = 's = vt - 1/2at^2'
              s = (v*t)-(0.5*a*t**2)
          elif '' not in (v, u, t):
              es = 's = t(v+u)/2'
              s = (0.5*(v+u))*t
          return (s, es)
      else:
          es = ''
          return (s, es)
  
  s, es = find_s (s, u, v, a, t)
  print (s)
  </code></pre>
  
  <p>I've input values for u, v, and a, which should mean s is calculated, but this prints 'None' instead of the value of s based on the calculations, why, and how would I fix it?</p>