[Tutor] GC content: Help with if/else statements:

Joel Goldstick joel.goldstick at gmail.com
Sun Oct 13 03:41:58 EDT 2019


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


More information about the Tutor mailing list