Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Writing a basic shift code
#1
I'm trying to write a basic shift code using this code:
print("1) Make a code")
print("2) Decode a message")
print("3) Quit")

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',]

def shift():
    message = input("Please enter a message")
    number = int(input('Please enter the number that you would like to shift by:'))
    for letter in message:
        letter = letter.lower()
        if letter.isalpha():
            new_position = alphabet.index(letter) + number
            if new_position > 26:
                new_position = new_position - 26
            new_letter = alphabet.index(new_position)
            for letter in message:
                print(new_letter)
        elif letter.isnumeric():
            letter = letter
            print(letter)
        elif letter == " " or letter == "," or letter == "." or letter == ";" or letter == ":":
            letter = letter
            print(letter)
        else:
            print("Error in message please try a different message")
    choice = int(input("Enter your selection:"))

def decode():
    message = input("Please enter a message to decode")
    number = int(input('Please enter the number shift key'))
    for letter in message:
        letter = letter.lower()
        if letter.isalpha():
            new_position = alphabet.index(letter) - number
            new_letter = alphabet.index(new_position)
            for letter in message:
                print(new_letter)
        elif letter.isnumeric():
            letter = letter
            print(letter)
        elif letter == " " or letter == "," or letter == "." or letter == ";" or letter == ":":
            letter = letter
            print(letter)
        else:
            print("Error in message please try a different message")
    choice = int(input("Enter your selection:"))


def main():
    repeat = True
    choice = int(input("Enter your selection:"))
    while repeat == True:
        if choice == 1:
            shift()
        elif choice == 2:
            decode()
        elif choice == 3:
            repeat = False
        else:
            print("Incorrect choice please try again")
            choice = int(input("Enter your selection:"))

main()
    
But I get this error:
Error:
File "c:/Users/djwil/Documents/python/learning python/Chapter 19 - Chunky Challenges/Shift Code.py", line 64, in <module> main() File "c:/Users/djwil/Documents/python/learning python/Chapter 19 - Chunky Challenges/Shift Code.py", line 55, in main shift() File "c:/Users/djwil/Documents/python/learning python/Chapter 19 - Chunky Challenges/Shift Code.py", line 16, in shift new_letter = alphabet.index(new_position) ValueError: 4 is not in list
Can someone help me fix this?
Reply
#2
index method from docs is:
Quote:Return zero-based index in the list of the first item whose value is equal to x. Raises a ValueError if there is no such item.
-- meaning that if you want to know at what index is f.e. char 'd' alphabet.index('d') would return:
Output:
3
and if I understand right you want new_letter to be a letter at the index of new_position from alphabet, so you should rewrite this line:
new_letter = alphabet.index(new_position)
to this:
new_letter = alphabet[new_position]
Reply
#3
Thanks :)
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  writing and running code in vscode without saving it akbarza 1 380 Jan-11-2024, 02:59 PM
Last Post: deanhystad
  Find a shift between 2 pictures TazFleck 0 1,142 Jan-18-2023, 09:56 PM
Last Post: TazFleck
  Unable to bit shift and logical OR bytes and ints? MysticLord 7 6,983 Sep-01-2020, 03:31 PM
Last Post: deanhystad
  Help with writing or plan part of code Merlin_1 1 1,806 Aug-24-2020, 03:28 AM
Last Post: Larz60+
  List index out of range error when attempting to make a basic shift code djwilson0495 4 2,996 Aug-16-2020, 08:56 PM
Last Post: deanhystad
  a better way of writing code Than999 6 3,354 Jun-13-2020, 08:02 AM
Last Post: pyzyx3qwerty
  code not writing to projNameVal portion of code. umkc1 1 1,671 Feb-05-2020, 10:05 PM
Last Post: Larz60+
  C API: Writing Executed Code to a File myanrueller 0 1,701 Nov-17-2019, 09:35 PM
Last Post: myanrueller
  i am getting error while writing code for exception logging rkgupta51179 1 1,845 Nov-03-2019, 05:12 AM
Last Post: buran
  Problem with Basic Rock Paper Scissors code BirinderSingh 3 2,438 Sep-13-2019, 03:28 PM
Last Post: ichabod801

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020