title: TypeError: Can't convert 'NoneType' object to str implicitly
body: <p>I am new to Python, so i don not understand why i am getting the following error: TypeError: Can't convert 'NoneType' object to str implicitly</p>
  
  <pre><code>import math, os
  try:
      while True:
          loadfile = input ("Get a string from input or file: ").lower()
          if loadfile == "":
              print("You need to enter whether you want the string from input or a file. Please try again")
          elif loadfile[0] != "i" and loadfile[0] != "s" and loadfile[0] != "f":
              print("You can only choose to get the string from input or a file. Please try again")
          else:
              loadfile = loadfile[0] == "f"
              raise Execption
  except Exception:
      pass
  
  if loadfile:
      while True:
          filename = input ("Enter a file name containing a string: ")
          if filename == "":
              print("You need to enter a file name, you can not leave it blank. Please try again")
          elif not os.path.isfile(filename):
              print ("This file does not exist. Please try again")
          else:
              try:
                  file = open(filename, "r")
              except OSError:
                  print("Your operating system threw an error")
                  print("The file may be in use, or your filename may be invalid")
              else:
                  string = file.read()
                  file.close()
                  if os.path.getsize(filename) == 0:
                          print("Found the file vut the file is empty. Enter another file")
                  else:
                      flag = False
                      for x in string:
                          if x.isalpha():
                              flag = True
                      if flag:
                          break
                      else:
                          print("The string inside this file does not contain a character from the alphabet. Please try again")
      if (len(string) &lt;= 200):
          print ("Found the string: " + string)
      else:
          print("String found, but not being printed since it it greater than 200 characters")
  else:
      try:
          while True:
              string = input ("Enter your string: ");
              if string == "":
                  print ("Invalid response. You need to enter a plaintext message to be able to continue")
              else:
                  for x in string:
                      if x.isalpha():
                          raise Exception;
                  print ("You did not enter a character from the alphabet in your plaintext message. Please try again");
      except Exception:
          pass
  
  string2 = ""
  string3 = ""
  
  try:
      while True:
          keyword = input ("Enter your KEYWORD: ");
          if keyword == "":
              print ("You need to enter a keyword. Please try again");
          elif keyword.isalpha():
              raise Exception;
          else:
              print ("Your keyword cannot contain any numbers, spaces, or symbols. Please try again");
  except Exception:
      pass
  
  keywordRepeated = (keyword * math.ceil(len(string)/len(keyword))).upper()
  
  try:
      while True:
          keyword2 = input ("Enter your second KEYWORD: ");
          if keyword2 == "":
              print ("You need to enter a keyword. Please try again");
          elif keyword2.isalpha():
              raise Exception;
          else:
              print ("Your keyword cannot contain any numbers, spaces, or symbols. Please try again");
  except Exception:
      pass
  
  keyword2Repeated = (keyword2 * math.ceil(len(string)/len(keyword2))).upper()        
  
  try:
      while True:
          decryption = input("Would you like to encrypt or decrypt?: ").lower()
          if decryption == "":
              print("You need to enter whether you want to undergo the encryption or decryption process. Please try again")
          elif decryption[0] != "d" and decryption[0] != "e":
              print("You can only choose encryption or decryption. Please try again")
          else:
              decryption = decryption[0] == "d"
              raise Exception
  except Exception:
      pass
  
  try:
      while True:
          savefile = input("Should the string be saved ot the file, or displayed on screen?: ").lower()
          if savefile == "":
              print("You need to enter whether to save the string to a file or display it on screen")
          elif savefile[0] != "d" and savefile[0] != "s" and savefile[0] != "f":
              print("You can only choose to save the string to a file or display it on screen")
          else:
              savefile = savefile[0] != "d"
              raise Exception
  except Exception:
      pass
  
  firstuppercase = ord("A"); firstlowercase = ord("a"); lastuppercase = ord("Z"); lastlowercase = ord("z");
  
  def encryptedChar(position, parString, parKeyword):
      if not parString[position].isalpha():
          return parString[position]
      charnum = ord(parString[position])
      modifier = ord(parKeyword[position].upper()) + 1 - firstuppercase
      modifier *= -1 if decryption else 1
      charnum2 = charnum + modifier
  
      if decryption:
          if charnum &lt;= lastuppercase and charnum2 &lt; firstuppercase:
              charnum += 26
          elif charnum &gt;= firstlowercase and charnum2 &lt; fisrtlowercase:
              charnum += 26
      else:
          if charnum &lt;= lastuppercase and charnum2 &gt; lastuppercase:
              charnum2 -= 26
          elif charnum &gt;= firstlowercase and charnum2 &gt; lastlowercase:
              charnum2 -= 26
  for x in range(len(string)):
      string2 += encryptedChar(x, string, keywordRepeated)
      string3 += encryptedChar(x, string2, keyword2Repeated)
  
  if savefile:
      while True:
          try:
              while True:
                  filename = input ("Enter a filename to save to: ")
                  if filename == "":
                      print("You need to enter a file name, you cannot leave it blank")
                  else:
                      raise Exception
          except Exception:
              pass
  
          try:
              file = open(filename, "w")
              raise Exception
          except OSError:
              print("Your operating system threw an error")
              print("The file may be in use, or your file may be invalid")
          except Exception:
              file.write(string3)
              file.close()
              print("Save successful!")
              break
  else:
      print(string3)
  </code></pre>
  
  <p>i want the code to run as it is below, but i keep getting this typeerror</p>
  
  <pre><code>Get a string from input or file: i
  Enter your string: letters
  Enter your KEYWORD: working
  Enter your second KEYWORD: code
  Would you like to encrypt or decrypt?: e
  Should the string be saved ot the file, or displayed on screen?: d
  Traceback (most recent call last):
    File "C:\Users\User\Documents\task 3.py", line 138, in &lt;module&gt;
      string2 += encryptedChar(x, string, keywordRepeated)
  TypeError: Can't convert 'NoneType' object to str implicitly
  &gt;&gt;&gt; 
  </code></pre>