1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
pychu [463]
3 years ago
6

Write two methods: encrypt and decrypt. encrypt should #take as input a string, and return an encrypted version #of it according

to the rules above. # #To encrypt the string, you would: # # - Convert the string to uppercase. # - Replace all Js with Is. # - Remove all non-letter characters. # - Add an X to the end if the length if odd. # - Break the string into character pairs. # - Replace the second letter of any same-character # pair with X (e.g. LL -> LX). # - Encrypt it. # #decrypt should, in turn, take as input a string and #return the unencrypted version, just undoing the last #step. You don't need to worry about Js and Is, duplicate #letters, or odd numbers of characters in decrypt. # #For example: # # encrypt("PS. Hello, world") -> "QLGRQTVZIBTYQZ" # decrypt("QLGRQTVZIBTYQZ") -> "PSHELXOWORLDSX" # #HINT: You might find it easier if you implement some #helper functions, like a find_letter function that #returns the row and column of a letter in the cipher.
Computers and Technology
1 answer:
Harman [31]3 years ago
5 0

Answer:

The code is given below with appropriate comments

Explanation:

CIPHER = (("D", "A", "V", "I", "O"),

         ("Y", "N", "E", "R", "B"),

         ("C", "F", "G", "H", "K"),

         ("L", "M", "P", "Q", "S"),

         ("T", "U", "W", "X", "Z"))

# Add your code here!

def encrypt(plaintext):

   theList = []

   for char in plaintext:

       if char.isalpha():

           char = char.upper()

           if char == "J":

               char = "I"

           theList.append(char)

   if len(theList) % 2 == 1:

       theList.append("X")

   for i in range(0, len(theList), 2):

       if theList[i] == theList[i + 1]:

           theList[i + 1] = "X"

       findex = [-1, -1]

       sindex = [-1, -1]

       for j in range(len(CIPHER)):

           for k in range(len(CIPHER)):

               if theList[i] == CIPHER[j][k]:

                   findex = [j, k]

               if theList[i + 1] == CIPHER[j][k]:

                   sindex = [j, k]

       # same row

       if (findex[0] == sindex[0]):

           findex[1] += 1

           sindex[1] += 1

           if findex[1] == 5:

               findex[1] = 0

           if sindex[1] == 5:

               sindex[1] = 0

           theList[i] = CIPHER[findex[0]][findex[1]]

           theList[i + 1] = CIPHER[sindex[0]][sindex[1]]

       # same column

       elif (findex[1] == sindex[1]):

           findex[0] += 1

           sindex[0] += 1

           if findex[0] == 5:

               findex[0] = 0

           if sindex[0] == 5:

               sindex[0] = 0

           theList[i] = CIPHER[findex[0]][findex[1]]

           theList[i + 1] = CIPHER[sindex[0]][sindex[1]]

       else:

           theList[i] = CIPHER[findex[0]][sindex[1]]

           theList[i + 1] = CIPHER[sindex[0]][findex[1]]

   return "".join(theList)

def decrypt(ciphertext):

   theString = ""

   findex = [-1, -1]

   sindex = [-1, -1]

   for i in range(0, len(ciphertext), 2):

       for j in range(len(CIPHER)):

           for k in range(len(CIPHER)):

               if ciphertext[i] == CIPHER[j][k]:

                   findex = [j, k]

               if ciphertext[i + 1] == CIPHER[j][k]:

                   sindex = [j, k]

       if (findex[0] == sindex[0]):

           findex[1] -= 1

           sindex[1] -= 1

           if findex[1] == -1:

               findex[1] = 4

           if sindex[1] == -1:

               sindex[1] = 4

           theString += CIPHER[findex[0]][findex[1]]

           theString += CIPHER[sindex[0]][sindex[1]]

       # same column

       elif (findex[1] == sindex[1]):

           findex[0] -= 1

           sindex[0] -= 1

           if findex[0] == -1:

               findex[0] = 4

           if sindex[0] == -1:

               sindex[0] = 4

           theString += CIPHER[findex[0]][findex[1]]

           theString += CIPHER[sindex[0]][sindex[1]]

       else:

           theString += CIPHER[findex[0]][sindex[1]]

           theString += CIPHER[sindex[0]][findex[1]]

   return theString

# Below are some lines of code that will test your function.

# You can change the value of the variable(s) to test your

# function with different inputs.

#

# If your function works correctly, this will originally

# print: QLGRQTVZIBTYQZ, then PSHELXOWORLDSX

print(encrypt("PS. Hello, worlds"))

print(decrypt("QLGRQTVZIBTYQZ"))

You might be interested in
The _________ indicates the number of elements, or values, an array can hold
Stolb23 [73]
The size declarator indicates the number of elements, or values, an array can hold.It is used in a definition of an array.<span>The size declarator must be a constant integer expression with a value greater than zero. </span>A subscript is used to access a specific element in an array. 
8 0
3 years ago
What is a critique of the feature detector model of object recognition?​?
Leya [2.2K]
Found a similar question that had choices, here are the choices:
a.Specific neurons that respond to round, square or irregular shapes do not integrate their signals to recognize multi-shaped objects.
b. It accounts only for the recognition of simple two dimensional shapes, not more complex three-dimensional shapes.
c.Feature detector neurons have been found in non-human primates, but not in humans themselves.
<span>d. It does not account for the fact that our expectations influence what we see.

My answer:
d. It does not account for the fact that our expectations influence what we see.

We all have different expectations, thus, our view on certain object is subjective. It is a product of said expectations. </span>
4 0
3 years ago
Write a program that converts or calculates values. Use the following guidelines to write your program:
Setler [38]

Answer:

In Section 2.2 “Expressing Units”, we showed some examples of how to ... with other units of the same type to get a numerical value that is easier to comprehend. ... The rules of algebra say that you can change (i.e., multiply or divide or add or ... We see that one-half of a yard equals 3/2, or one and a half, feet—something Explanation:

8 0
3 years ago
Alternating Current or AC is better for use in ___________, while DC direct current is needed in _________ .
PIT_PIT [208]
<span>C electric power transmisson and electronics</span>
6 0
3 years ago
Read 2 more answers
What Two external audio recorders are most commonly used ??
zimovet [89]

Answer:

Very few recorders have built-in microphones that are useful for field reporting. Does the recorder have XLR (professional grade) input, Tip-Ring Sleeve (TRS) input or just a mini jack? Format – There are two types of audio files: compressed and uncompressed. Cheap audio recorders will compress all of the audio it captures.

Explanation:

hope this helps mark as brainiest.

3 0
3 years ago
Other questions:
  • Which forensics tool would you use to reveal recent pages viewed via the internet explorer browser?
    10·1 answer
  • How was windows 3 installed on a pc?
    11·1 answer
  • \What will the weather most likely be like the day after a warm front? (4 points) The temperature will be cool or cold, and ther
    7·2 answers
  • Software that was designed to serve the needs of a specific company or organization is called:
    11·1 answer
  • Electronic mail is best used to:
    5·2 answers
  • Assume there are two variables, k and m, each already associated with a positive integer value and further assume that k's value
    13·1 answer
  • Accenture has put together a coalition of several ecosystem partners to implement the principles of blockchain and Multi-party S
    5·1 answer
  • Hola, alguien aquí me podría ayudar dándome ideas a cerca de office (Word, PowerPoint o Excel) estoy desesperada no puedo pensar
    11·1 answer
  • The contrast ratio of green-60 text on a yellow-10 background is ___ to 1.
    5·1 answer
  • The sdlc phase in which functional data specifications and processing rules are created is the ______________ phase.
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!