Learn String Manipulation by Building a Cipher - Step 83

Tell us what’s happening:

Describe your issue in detail here.

Your code so far

text = 'mrttaqrhknsw ih puggrur'
custom_key = 'python'

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

    for char in message.lower():

        # Append any non-letter character to the message
        if not char.isalpha():
            final_message += char
        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

def encrypt(message, key):
    return vigenere(message, key)
    
def decrypt(message, key):
    return vigenere(message, key, -1)

# User Editable Region

encryption = encrypt(text, custom_key)
print('Encrypted text:')
decryption = decrypt(encryption, custom_key)


# User Editable Region

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 83

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

Hey, what kind of help do you need?

Hello Sir, I tried running the code as per the Instructions given to me, but I’m unable to get the output despite trying multiple times could you please help me with it?

Step 83 says:

Delete the pass keyword, and return vigenere(message, key) from your new function.

You posted a code that contains other lines from the following steps. The project has been updated few hours ago so I don’t know exactly what step you are referring to.

okay Sir let me try it once and I’ll get back to you

text = ‘mrttaqrhknsw ih puggrur’
custom_key = ‘python’

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

for char in message.lower():

    # Append any non-letter character to the message
    if not char.isalpha():
        final_message += char
    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

def encrypt(message, key):
return vigenere(message, key)

def decrypt(message, key):
return vigenere(message, key, -1)
encryption = encrypt(text, custom_key)
print(“Encrypted text:”, " " +text)
decryption = decrypt(encryption, custom_key)
print(decryption)

Step: 83
Two or more strings can be concatenated by using the + operator. For example: 'Hello' + ' there!' results in 'Hello there!.

Modify print(encryption) to print Encrypted text: mrttaqrhknsw ih puggrur. Use the + operator to concatenate text to your string and pay attention to the spacing.

Sir, after multiple attempts of trying, I’m not getting it, could you please help me with it

Hey @somadharanidhar, could you share what you’ve tried so far?

You need to do it concatenating a string and the text variable. For example:
print('string' + text)

tried it but it did not work I even tried str(“Value”) + text still it did not work

Please, share the updated code.

print(str(“Encrypted text:”), " " +text)

*** SOLUTION REMOVED *****************

Glad you solved it! Please don’t share the solution code, thank you!

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.