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
  Loop back through loop based on user input, keeping previous changes loop made? hbkpancakes 2 136 Nov-21-2020, 02:35 AM
Last Post: hbkpancakes
  calling a function and argument in an input phillup7 3 198 Oct-25-2020, 02:12 PM
Last Post: jefsummers
  user input for multi-dimentional list without a prior iteration using input() Parshaw 6 351 Sep-22-2020, 04:46 PM
Last Post: Parshaw
  How to time a user's input Tbot1000 2 278 Aug-31-2020, 09:39 PM
Last Post: Larz60+
  converting user input to float troubles RecklessTechGuy 3 397 Aug-17-2020, 12:41 PM
Last Post: deanhystad
  Validating user input WJSwan 2 359 Jul-06-2020, 07:21 AM
Last Post: menator01
  Hi, I need help with defining user's input and applying it to code. jlmorenoc 2 453 Jun-24-2020, 02:10 PM
Last Post: pyzyx3qwerty
  taking input doesnt print as list bntayfur 2 354 Jun-04-2020, 02:48 AM
Last Post: bntayfur
  if the input is not number, let user input again teatea 14 968 Jun-02-2020, 07:03 PM
Last Post: ibutun
  How to allow user input only if certain requirements are met vininhosts 3 458 May-28-2020, 06:15 PM
Last Post: micseydel

Forum Jump:

User Panel Messages

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