Learn String Manipulation by Building a Cipher - Step 76

Hello, I’m confuse with this part. I’m asked to perform the following task but when I apply (1) script, I get the message below. However, when I tried different variation of the script (2-4), I get a different error message. Can someone please help?

Task: Add the not operator to the if condition to check if the character is not alphabetic.

  1. if != char.isalpha():

Error Message:
Sorry, your code does not pass. Try again.
Your code raised an error before any tests could run. Please fix it and try again.

  1. if char.isalpha() != char:
  2. if char.isalpha() != alphabet:
  3. if alphabet != char.isalpha():

Error Message:
Sorry, your code does not pass. Keep trying.
You should use the not operator in the condition of your if statement.

Your code so far

text = 'Hello Zaira!'
custom_key = 'python'

def vigenere(message, key, direction=1):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    final_message = ''

    for char in message.lower():

# User Editable Region

        # Append space to the message
        if char.isalpha() != char:
            final_message += char

# User Editable Region

        else:        
            # Find the right key character to encode/decode
            key_char = key[key_index % len(key)]
            key_index += 1

            # Define the offset and the encrypted/decrypted letter
            offset = alphabet.index(key_char)
            index = alphabet.find(char)
            new_index = (index + offset*direction) % len(alphabet)
            final_message += alphabet[new_index]
    
    return final_message
    
encryption = vigenere(text, custom_key)
print(encryption)
decryption = vigenere(encryption, custom_key, -1)
print(decryption)

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Challenge Information:

Learn String Manipulation by Building a Cipher - Step 76

Hello sonnyhot,

I am also very used to using != or just !, but the not operator the question is talking about is literally just the word not. So all you have to do is add the not at the right place in the if statement, not add anything else.

2 Likes

I figured it out… I used the (=!) operator. I didnt realize it is asking to use the actual word [NOT] in the script. I hope this help someone that comes across this same problem… :slight_smile:

1 Like

I just figured it out and added my findings to my question… Thank you for the quick response by the way!

No worries and good job on finding it!