[Tutor] GC content: Help with if/else statements:
Mihir Kharate
kharatemihir at gmail.com
Sun Oct 13 11:52:11 EDT 2019
@Joel Goldstick , I tried what you suggested. Its still returning the first
if statement. If I input a sequence which has a different letter than
A/T/G/C (for example, if I input ATFGC as my input when prompted) , it does
not return the error message: "Invalid base-pair in your Sequence".
It seems like the second if statement (or else statement, if I change it
that way) does not run at all.
On Sun, Oct 13, 2019 at 2:42 AM Joel Goldstick <joel.goldstick at gmail.com>
wrote:
> On Sun, Oct 13, 2019 at 3:35 AM Mihir Kharate <kharatemihir at gmail.com>
> wrote:
> >
> > Hi,
> >
> > Following is part of the code I am working on in Python3. I am trying to
> > calculate the GC content of the input DNA sequence. I want the function
> to
> > return "Invalid base-pair in your sequence" if the input sequence has
> > letters other than A, T, G and C.
> >
> > ######################################################
> > input_sequence = input("Input your sequence here: ")
> > input_sequence = input_sequence.upper()
> > print("\nYour sequence is: " + input_sequence)
> > print("\n")
> > a=t=g=c=0
> > def gc_content():
> > global a,g,t,c
> > for character in input_sequence:
> > if character == 'G':
> > g+=1
> > if character == 'C':
> > c+=1
> > if character == 'T':
> > t+=1
> > if character == 'A':
> > a+=1
> > gc_cont = (g+c)/(a+g+t+c)*100
> > if character == 'A' or 'T' or 'G' or 'C':
>
> The if statement isn't doing what you think it is.
> Try:
> if character in ('A', 'T', 'G', 'C'):
> ....
>
>
> > print ("The GC content is: " + str(gc_cont) + " %")
> > else :
> > print("Invalid base-pair in your Sequence")
> >
> > gc_content()
> >
> > ############################################
> > *Question 1*: When I use the else statement as I have in the code above,
> it
> > is ineffective. Even if I input other letters in my input sequence, it
> > still returns the GC content.
> >
> > *Question 2*: When I use another if statement like below, it returns the
> GC
> > content and "Invalid base-pair in your Sequence" both. No matter whether
> > the input has any other characters than A,T,G,C or not.
> >
> > if character == 'A' or 'T' or 'G' or 'C':
> > print ("The GC content is: " + str(gc_cont) + " %")
> > if character is not 'A' or 'T' or 'G' or 'C':
> > print("Invalid base-pair in your Sequence")
> >
> > *Question 3*: How do I fix this?
> >
> > Thank you for any suggestions and help!
> > ~Mihir
> > _______________________________________________
> > Tutor maillist - Tutor at python.org
> > To unsubscribe or change subscription options:
> > https://mail.python.org/mailman/listinfo/tutor
>
>
>
> --
> Joel Goldstick
> http://joelgoldstick.com/blog
> http://cc-baseballstats.info/stats/birthdays
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list