In: Computer Science
Please fix this python script, I keep getting a return outside function error and cannot get it to run:
def caesar(plainText, shift):
    cipherText = ""
for char in plainText:
    newChar = ord(char) + shift
    if newChar > 128:
      newChar = newChar % 128
    finalChar = chr(newChar)
    cipherText += finalChar
return cipherText
text = input("Enter a message: ");
s = input("Enter the distance value: ");
print (caesar(text, int(s)));
The problem with your code was bad indentation. The spacing was incorrect. Fixed it. Please find the updated code below.
def caesar(plainText, shift):
    cipherText = ""
    for char in plainText:
        newChar = ord(char) + shift
        if newChar > 128:
          newChar = newChar % 128
        finalChar = chr(newChar)
        cipherText += finalChar
    return cipherText
text = input("Enter a message: ");
s = input("Enter the distance value: ");
print (caesar(text, int(s)));
#end of code
But the above method lacks correctness. A better and correct method of implementing Caesar cipher would be as follows. Use this method if you want, else ignore it
def caesar(plainText, shift):
    cipherText=""
    #looping through each character
    for char in plainText:
        #checking if char is upper case
        if char.isupper():
            #checking if shifting will go beyond 'Z'
            if (ord(char)+shift) > ord('Z'):
                #finding how many spaces it will be moved away from 'Z'
                index=ord(char)+shift-ord('Z')-1
                #adding that distance to 'A' to get wrapped around, adding this
                #value to cipherText
                cipherText+=chr(ord('A')+index)
            else:
                #shifting normally
                cipherText+=chr(ord(char)+shift)
        elif char.islower():
            #doing the same for lower case
            if (ord(char)+shift) > ord('z'):
                index=ord(char)+shift-ord('z')-1
                cipherText+=chr(ord('a')+index)
            else:
                cipherText+=chr(ord(char)+shift)
        else:
            #other characters are not encrypted, simply appending to cipherText
            cipherText+=char
    #returning
    return cipherText