Python Forum
Help with calling list from user input
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help with calling list from user input
#1
I am new to python and need help. I tried to call the list using an input from the user but I got creating a new list instead of calling the existing one. Here is the previous code:

aa = input("please enter the 3 letter amino acid to view the codon: ")
print(list(aa))

Then I used multiple "if" statement to solve it but I think there is a better way to solve it. Please help me if you have better way or a suggestion for more efficient code, I really appreciate it. Here is the code I wrote:

phe = ["UUU", "UUC"]
leu = ["UUA", "UUG", "CUU", "CUC", "CUA", "CUG"]
ile = ["AUU", "AUC", "AUA"]
met = ["AUG"]
val = ["GUU", "GUC", "GUA", "GUG"]
ser = ["UCU", "UCC", "UCA", "UCG"]
pro = ["CCU", "CCC", "CCA", "CCG"]
thr = ["ACU", "ACC", "ACA", "ACG"]
ala = ["GCU", "GCC", "GCA", "GCG"]
tyr = ["UAU", "UAC"]
stop = ["UAA", "UAG", "UGA"]
his = ["CAU", "CAC"]
gln = ["CAA", "CAG"]
asn = ["AAU", "AAC"]
lys = ["AAA", "AAG"]
asp = ["GAU", "GAC"]
glu = ["GAA", "GAG"]
cys = ["UGU", "UGC"]
trp = ["UGG"]
arg = ["CGU", "CGC", "CGA", "CGG", "AGA", "AGG"]
ser = ["AGU", "AGC"]
gly = ["GGU", "GGC", "GGA", "GGG"]
print("Welcome to Amino Acid sequence Codon")
print()
while 1==1:
    aa = input("please enter the 3 letter amino acid to view the codon: ")
    if aa == "phe":
        print(list(phe))
    if aa == "leu":
        print(list(leu))
    if aa == "ile":
        print(list(ile))
    if aa == "met":
        print(list(met))
    if aa == "val":
        print(list(val))
    if aa == "ser":
        print(list(ser))
    if aa == "pro":
        print(list(pro))
    if aa == "thr":
        print(list(thr))
    if aa == "ala":
        print(list(ala))
    if aa == "tyr":
        print(list(tyr))
    if aa == "stop":
        print(list(stop))
    if aa == "his":
        print(list(his))
    if aa == "gln":
        print(list(gln))
    if aa == "asn":
        print(list(asn))
    if aa == "lys":
        print(list(lys))
    if aa == "asp":
        print(list(asp))
    if aa == "glu":
        print(list(glu))
    if aa == "cys":
        print(list(cys))
    if aa == "trp":
        print(list(trp))
    if aa == "arg":
        print(list(arg))
    if aa == "gly":
        print(list(gly))
    quit=input("Quit: y/n? ")
    if quit == "y":
        break
    if quit == "n":
        continue
    else:
        print("error")
        break
Reply
#2
A better way is to use a dictionary
database = {
    "phe": ["UUU", "UUC"],
    "leu": ["UUA", "UUG", "CUU", "CUC", "CUA", "CUG"],
    "ile": ["AUU", "AUC", "AUA"],
    ...
}
Then later in code
    aa = input(...).strip()
    print(database[aa])
Reply
#3
(Nov-03-2019, 08:09 AM)Gribouillis Wrote: A better way is to use a dictionary
database = {
    "phe": ["UUU", "UUC"],
    "leu": ["UUA", "UUG", "CUU", "CUC", "CUA", "CUG"],
    "ile": ["AUU", "AUC", "AUA"],
    ...
}
Then later in code
    aa = input(...).strip()
    print(database[aa])
database = {
    "phe": ["UUU", "UUC"],
    "leu": ["UUA", "UUG", "CUU", "CUC", "CUA", "CUG"],
    "ile": ["AUU", "AUC", "AUA"],
    "met": ["AUG"],
    "val": ["GUU", "GUC", "GUA", "GUG"],
    "ser": ["UCU", "UCC", "UCA", "UCG"],
    "pro": ["CCU", "CCC", "CCA", "CCG"],
    "thr": ["ACU", "ACC", "ACA", "ACG"],
    "ala": ["GCU", "GCC", "GCA", "GCG"],
    "tyr": ["UAU", "UAC"],
    "stop": ["UAA", "UAG", "UGA"],
    "his": ["CAU", "CAC"],
    "gln": ["CAA", "CAG"],
    "asn": ["AAU", "AAC"],
    "lys": ["AAA", "AAG"],
    "asp": ["GAU", "GAC"],
    "glu": ["GAA", "GAG"],
    "cys": ["UGU", "UGC"],
    "trp": ["UGG"],
    "arg": ["CGU", "CGC", "CGA", "CGG", "AGA", "AGG"],
    "ser": ["AGU", "AGC"],
    "gly": ["GGU", "GGC", "GGA", "GGG"],
}
print("Welcome to Amino Acid sequence Codon")
print()
while 1==1:
    aa = input("please enter the 3 letter amino acid to view the codon: ").strip()
    print(database[aa])
    if aa not in database:
        continue
    quit = input("Quit: y/n? ")
    if quit == "y":
        break
    if quit == "n":
        continue
    else:
        print("error")
        break
I got error when I input the wrong value for example "sea". Here is the error:
Error:
Traceback (most recent call last): File "C:/Users/faris/PycharmProjects/Beginner projects/AA Codon dictionary.py", line 29, in <module> print(database[aa]) KeyError: 'sea'
Can I make it to repeat the input when the value is not in the dictionary, instead of being error?
Reply
#4
farispython Wrote:Can I make it to repeat the input when the value is not in the dictionary, instead of being error?
Yes, you only need to change 3 lines
    if aa not in database: # <--- this first
        print('Invalid value, try again')
        continue
    print(database[aa])
Reply
#5
(Nov-03-2019, 09:55 AM)Gribouillis Wrote:
farispython Wrote:Can I make it to repeat the input when the value is not in the dictionary, instead of being error?
Yes, you only need to change 3 lines
    if aa not in database: # <--- this first
        print('Invalid value, try again')
        continue
    print(database[aa])
Thanks a lot Big Grin , I finished my code. I am actually a medical laboratory student and I try to learn coding during my free time. I love genetic subject and I find it is related with coding.
database = {
    "phe": ["UUU", "UUC"],
    "leu": ["UUA", "UUG", "CUU", "CUC", "CUA", "CUG"],
    "ile": ["AUU", "AUC", "AUA"],
    "met": ["AUG"],
    "val": ["GUU", "GUC", "GUA", "GUG"],
    "ser": ["UCU", "UCC", "UCA", "UCG"],
    "pro": ["CCU", "CCC", "CCA", "CCG"],
    "thr": ["ACU", "ACC", "ACA", "ACG"],
    "ala": ["GCU", "GCC", "GCA", "GCG"],
    "tyr": ["UAU", "UAC"],
    "stop": ["UAA", "UAG", "UGA"],
    "his": ["CAU", "CAC"],
    "gln": ["CAA", "CAG"],
    "asn": ["AAU", "AAC"],
    "lys": ["AAA", "AAG"],
    "asp": ["GAU", "GAC"],
    "glu": ["GAA", "GAG"],
    "cys": ["UGU", "UGC"],
    "trp": ["UGG"],
    "arg": ["CGU", "CGC", "CGA", "CGG", "AGA", "AGG"],
    "ser": ["AGU", "AGC"],
    "gly": ["GGU", "GGC", "GGA", "GGG"],
}
print("Welcome to Amino Acid sequence Codon")
print()
while 1==1:
    aa = input("please enter the 3 letter amino acid to view the codon: ").strip()
    if aa not in database:
        print("Wrong amino acid. Please input the correct amino acid and try again")
        continue
    print(database[aa])
    while 1 == 1:
        quit = input("Quit: y/n? ")
        if quit == "n":
            break
        if quit == "y":
            break
        else:
            print("Answer with y/n")
            continue
    if quit == "y":
        break
Output:
Welcome to Amino Acid sequence Codon please enter the 3 letter amino acid to view the codon: ser ['AGU', 'AGC'] Quit: y/n? a Answer with y/n Quit: y/n? n please enter the 3 letter amino acid to view the codon: sar Wrong amino acid. Please input the correct amino acid and try again please enter the 3 letter amino acid to view the codon: glu ['GAA', 'GAG'] Quit: y/n? y Process finished with exit code 0
Reply
#6
farispython Wrote:I am actually a medical laboratory student and I try to learn coding during my free time.
Good luck with your learning python. I find software applications for medicine and biology particularly impressive and python can do a lot in this field.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  difference between forms of input a list to function akbarza 6 928 Feb-21-2024, 08:02 PM
Last Post: bterwijn
  WHILE LOOP NOT RETURNING USER INPUT AFTER ZerroDivisionError! HELP! ayodele_martins1 7 990 Oct-01-2023, 07:36 PM
Last Post: ayodele_martins1
  pyscript index error while calling input from html form pyscript_dude 2 938 May-21-2023, 08:17 AM
Last Post: snippsat
  restrict user input to numerical values MCL169 2 869 Apr-08-2023, 05:40 PM
Last Post: MCL169
  user input values into list of lists tauros73 3 1,025 Dec-29-2022, 05:54 PM
Last Post: deanhystad
Information How to take url in telegram bot user input and put it as an argument in a function? askfriends 0 1,026 Dec-25-2022, 03:00 PM
Last Post: askfriends
Question Take user input and split files using 7z in python askfriends 2 1,029 Dec-11-2022, 07:39 PM
Last Post: snippsat
Sad how to validate user input from database johnconar 3 1,837 Sep-11-2022, 12:36 PM
Last Post: ndc85430
  functional LEDs in an array or list? // RPi user Doczu 5 1,521 Aug-23-2022, 05:37 PM
Last Post: Yoriz
  How to split the input taken from user into a single character? mHosseinDS86 3 1,137 Aug-17-2022, 12:43 PM
Last Post: Pedroski55

Forum Jump:

User Panel Messages

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