Help with calling list from user input - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Help with calling list from user input (/thread-22194.html) |
Help with calling list from user input - farispython - Nov-03-2019 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 RE: Help with calling list from user input - Gribouillis - Nov-03-2019 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]) RE: Help with calling list from user input - farispython - Nov-03-2019 (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"], "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") breakI got error when I input the wrong value for example "sea". Here is the error: Can I make it to repeat the input when the value is not in the dictionary, instead of being error?
RE: Help with calling list from user input - Gribouillis - Nov-03-2019 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]) RE: Help with calling list from user input - farispython - Nov-03-2019 (Nov-03-2019, 09:55 AM)Gribouillis Wrote:Thanks a lot , 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.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 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
RE: Help with calling list from user input - Gribouillis - Nov-03-2019 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. |